clifford changed the topic of #yosys to: Yosys Open SYnthesis Suite: http://www.clifford.at/yosys/ -- Channel Logs: https://irclog.whitequark.org/yosys
_whitelogger has joined #yosys
AlexDaniel has quit [Ping timeout: 248 seconds]
pie_ has joined #yosys
digshadow has quit [Ping timeout: 258 seconds]
adj__ has quit [Ping timeout: 248 seconds]
<ZipCPU> awygle: No, I've never thought of doing it
<ZipCPU> In hind sight, it sounds like it'd be fun to do , though.
adj__ has joined #yosys
<awygle> I was investigating the possibility of leaving my verification asserts in the code for simulation
<awygle> I think it won't actually work though.
<ZipCPU> Why not?
<ZipCPU> I mean ... I can see some things that won't work, such as driving the clock ...
<awygle> I *think* verilator and iverilog won't handle $past
<awygle> I haven't had a chance to try it yet today tho
<awygle> Development documentation for verilator in particular is difficult to follow, I might have been looking at old stuff
bubble_buster has joined #yosys
<ZipCPU> awygle: Looking at Verilator's language parser, I see token recognition for "assert", but not "assume" or "restrict"
digshadow has joined #yosys
digshadow has quit [Ping timeout: 258 seconds]
_whitelogger has joined #yosys
xshock has joined #yosys
xshock has quit [Client Quit]
proteusguy has quit [Ping timeout: 258 seconds]
m_t has joined #yosys
_whitelogger has joined #yosys
gnufan has joined #yosys
nrossi has joined #yosys
AlexDaniel has joined #yosys
qu1j0t3 has quit [Ping timeout: 248 seconds]
qu1j0t3 has joined #yosys
aw- has joined #yosys
dys has joined #yosys
oldtopman has quit [Ping timeout: 255 seconds]
oldtopman has joined #yosys
sklv has quit [Remote host closed the connection]
sklv has joined #yosys
proteusguy has joined #yosys
m_w_ has joined #yosys
m_w_ has quit [Ping timeout: 240 seconds]
eduardo__ has joined #yosys
eduardo_ has quit [Ping timeout: 240 seconds]
aw- has quit [Quit: Leaving.]
m_w_ has joined #yosys
SMDhome has quit [Quit: Leaving.]
SMDhome has joined #yosys
m_w_ has quit [Quit: leaving]
ZipCPU|Laptop has joined #yosys
m_t has quit [Quit: Leaving]
<cr1901_modern> clifford: Does arachne understand false path/maximum delay constraints through attributes?
<cr1901_modern> or icetime (nowadays :P)?
digshadow1 has joined #yosys
<cr1901_modern> Need to convert a number of attributes concerning CDCs to yosys format
m_t has joined #yosys
proteusguy has quit [Remote host closed the connection]
pie_ has quit [Ping timeout: 248 seconds]
ZipCPU|Laptop has quit [Ping timeout: 258 seconds]
pie_ has joined #yosys
ZipCPU|Laptop has joined #yosys
ZipCPU|Laptop has quit [Ping timeout: 240 seconds]
digshadow1 has quit [Ping timeout: 255 seconds]
ZipCPU|Laptop has joined #yosys
digshadow has joined #yosys
ZipCPU|Laptop has quit [Ping timeout: 248 seconds]
dys has quit [Ping timeout: 260 seconds]
nrossi has quit [Quit: Connection closed for inactivity]
puddingpimp has joined #yosys
m_t has quit [Quit: Leaving]
pmezydlo has joined #yosys
<awygle> so SymbiYosys basically plumbs together the Yosys commands and the SMT solver commands? and handles things like "expect to fail" etc?
promach_ has joined #yosys
promach_ has quit [Max SendQ exceeded]
promach_ has joined #yosys
promach_ has quit [Remote host closed the connection]
<promach> ZipCPU: sigh, it has almost be 5 hours, I am only at BMC timestep 3100. I mean UART formal verification
<promach> been 5*
<ZipCPU> Heh ... yeah, there was a reason I only formally verified my UART for a baud rate of 8-clock intervals. ;)
<promach> 8-clock intervals. ? I do not get it ?
<ZipCPU> Your baud rate if 5,000 clock intervals (roughly)
<ZipCPU> That takes a lot of work to verify ... roughly 100k timesteps.
<ZipCPU> If your baud rate, on the other hand, were 8-clocks per baud, you'd then only need about 160 or so time-steps to prove.
<awygle> I wonder how parallel the smt solvers are
<awygle> promach: which solver are you running? Did you try more than one?
<ZipCPU> I have tried all three.
<ZipCPU> Oh, sorry, that's a question for promach.
<promach> yosys-smtbmc --dump-vcd $(TARGET).vcd -g -t 20010 $(TARGET).smt2
<promach> yosys-smtbmc --dump-vcd $(TARGET)_i.vcd -i -g -t 110 $(TARGET).smt2
<awygle> I'm still interested in your observations tho, ZipCPU
<promach> I have not indicated any specific solver in te makefile though
ZipCPU|Laptop has joined #yosys
<ZipCPU> Try using yices. To do that, add "-s yices" to your yosys-smtbmc command line.
<ZipCPU> (Assuming you have yices installed ....)
<awygle> Iirc isn't yices the default?
<awygle> I certainly have to specify Z3 on every run
<ZipCPU> awygle: Either way, 100k plus iterations isn't going to be easy with *any* solver.
<awygle> Sure. I wonder how much spinning up a fat AWS instance would help...
<awygle> In other words, what is the limiting factor in performance and how does it scale
<awygle> I'll add that to the list of things to investigate I suppose
<ZipCPU> Well, consider this ... everything that can toggle will be toggled in a formal solver.
<ZipCPU> Hence, if you can limit your inputs to being well-behaved, that lowers a 2^n search space down to n.
<ZipCPU> For example, when does the transmitter receive its request?
<ZipCPU> If the transmitter is busy, will the module controlling it make requests on one clock, withdraw its request on another, and make an additional request on a following clock?
<ZipCPU> Or will the controller be well behaved, making one request at one out of N time-instants, and then holding that request for the rest of time.
<awygle> Oh I very much agree that shrinking the space to search is a bigger win than throwing compute at it. But there's a fundamental limit on the former and only practical limits on the latter.
<awygle> So I'm curious
<awygle> I would expect it to be compute bound and parallel, but I wouldn't be surprised to learn it was serial or that it was thrashing out to disk a lot.
<ZipCPU> awygle: The big thing I'm struggling with in promach's design is the fractional baud clock divider. It divides the input clock by (roughly) 5000x. My problem is ... I just don't know how to simplify that for the solver.
gnufan has quit [Quit: Leaving.]
<ZipCPU> promach: The difficult part regarding the assertion on line 29 of that module is that it will take roughly 5000 clocks (10k sim timesteps) to prove.
<ZipCPU> To do that, the formal solver will need to maintain 2^32 initial states, and only weed them down to 1-2 after 5000 clock ticks.
<ZipCPU> No, I take that back, ... the 2^32 possible states will be whittled down to roughly 860k after 5k clock ticks, not 1-2.
<awygle> I assume you are proving this module independently? Not as part of the larger system?
<awygle> I wonder what the effect would be if you reversed the order of the if and the assert