Monday, 2020-09-21

*** tpb has joined #yosys00:00
*** aaaa has quit IRC00:12
*** Degi has quit IRC03:05
*** Degi has joined #yosys03:07
*** citypw has joined #yosys04:23
*** awordnot has quit IRC04:43
*** awordnot has joined #yosys04:44
*** emeb_mac has quit IRC06:31
*** jakobwenzel has joined #yosys07:12
*** az0re has quit IRC07:51
*** az0re has joined #yosys08:03
*** forrestv has quit IRC08:57
*** forrestv has joined #yosys09:01
*** N2TOH has quit IRC10:22
*** flaviusb has joined #yosys10:35
*** citypw has quit IRC10:35
*** citypw has joined #yosys10:36
*** nengel has quit IRC11:09
*** attie has joined #yosys11:11
*** citypw has quit IRC13:04
*** az0re has quit IRC13:04
*** citypw has joined #yosys13:16
*** kristianpaul has joined #yosys13:54
z0ttelI am somewhat puzzled by what I read about the verific frontend. Does it really allow SymbiYosys to prove sequence expressions? Are these expanded by the frontend and reduced to what the expressions understood by the open-source front-end are capable of, or are there more powerful temporal logic expression understood internally than the regular front-end supports?13:56
daveshahThe expansion code is all open source14:00
daveshahhttps://github.com/YosysHQ/yosys/blob/master/frontends/verific/verificsva.cc14:01
tpbTitle: yosys/verificsva.cc at master · YosysHQ/yosys · GitHub (at github.com)14:01
daveshahaiui, it basically compiles them down to a FSM of sorts14:01
daveshahAll Verific is doing is parsing and elaboration, it doesn't do any of the real 'magic' in compiling these14:01
z0ttelAh, interesting. Thank you :)14:03
*** klotz has joined #yosys14:28
*** az0re has joined #yosys14:31
*** Asu has joined #yosys14:36
*** emeb has joined #yosys15:47
*** somlo has quit IRC16:04
*** somlo has joined #yosys16:05
*** LJ_cache has joined #yosys16:38
*** citypw has quit IRC17:14
ZipCPUz0ttel: You can find a fascinating discussion of sequence properties using the Verific front end here: https://zipcpu.com/formal/2019/02/21/txuart.html18:38
tpbTitle: Using Sequence Properties to Verify a Serial Port Transmitter (at zipcpu.com)18:39
z0ttel@ZipCPU: Already had a look at that today :)18:43
ZipCPUCool.  That should help you understand the power of the sequence properties18:43
z0ttelWell, I haven't touched verific itself yet.18:44
z0ttelUsed to do LTL/CTL* at university tho, so I have some familiarity with temporal logic.18:44
z0ttelMy first attempt at verifying a FIFO: https://gist.github.com/Zottel/6b5075602dfae367be0c8305423e474c18:52
tpbTitle: generic_fifo_proof.sv · GitHub (at gist.github.com)18:52
z0ttelI'm pretty confident that I can trust a FIFO that succeeds in cover and bmc checks with that scaffolding, but somehow, a more integrated version that will help when the FIFO is embedded in a whole system would be nice too.18:53
ZipCPUz0ttel: The typical proof of a FIFO is that you can write an arbitrary two values into it, and then some time later read them back out and in the same order19:27
ZipCPUTo see how you might handle that, feel free to check out the FIFO lesson of my tutorial: https://zipcpu.com/tutorial19:28
tpbTitle: Verilog, Formal Verification and Verilator Beginner's Tutorial (at zipcpu.com)19:28
*** kristianpaul has quit IRC19:35
z0ttelAh, I must've skipped the presentation. cool, thx.19:41
z0ttel@ZipCPU: There's something I thought about when reading your skynet/exchanging asserts/assumes article: Wouldn't a general assert(all assumptions imply property) style solve that issue?19:44
ZipCPUI'm not sure how it would or could19:45
*** kristianpaul has joined #yosys19:52
*** klotz has quit IRC20:08
*** emeb_mac has joined #yosys20:38
ZipCPUz0ttel: The problem with skynet was roughly: assume(A); B = A; assert(B);  If you switch it to B=A; if (A) assert(A) ... you still have the same problem.21:16
z0ttelI meant switch "assume(A) ... assert(B)" to "assert (A -> B)".21:24
z0ttelbut will have another look at the issue tomorrow, EU sleepy time now.21:25
ZipCPUo/21:29
ZipCPUBut ... A = B; assert(A |-> B) is next to tautologous.  So also is: A = B; assert(B |-> A);  It doesn't make a difference21:30
z0ttelbut having assume(A); B=A; assume(B) is just as tautologous^^21:36
z0ttel(the latter assume being an assert)21:37
ZipCPUYes21:48
*** Asu has quit IRC21:53
*** Asuu has joined #yosys21:53
*** Asuu has quit IRC23:03
*** pacak has quit IRC23:17
*** pacak has joined #yosys23:18
*** lf_ has joined #yosys23:25
*** lf has quit IRC23:25
*** FFY00 has quit IRC23:42
*** FFY00 has joined #yosys23:43
*** FFY00 has quit IRC23:47
*** FFY00 has joined #yosys23:48
*** FFY00 has quit IRC23:49
*** FFY00 has joined #yosys23:50

Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!