clifford changed the topic of #yosys to: Yosys Open SYnthesis Suite: http://www.clifford.at/yosys/ -- Channel Logs: https://irclog.whitequark.org/yosys
Degi_ has joined #yosys
Degi has quit [Ping timeout: 256 seconds]
Degi_ is now known as Degi
Cerpin has quit [Remote host closed the connection]
dxld has quit [Ping timeout: 246 seconds]
Cerpin has joined #yosys
dxld has joined #yosys
ross_s has joined #yosys
Degi has quit [Ping timeout: 265 seconds]
Degi has joined #yosys
citypw has joined #yosys
emeb has quit [Quit: Leaving.]
az0re has quit [Remote host closed the connection]
Thorn has quit [Quit: Textual IRC Client: www.textualapp.com]
az0re has joined #yosys
dxld has quit [Ping timeout: 252 seconds]
dxld has joined #yosys
sajattack has joined #yosys
<sajattack> matrix bridge broken?
<sajattack> anyway, I'm getting an error message I don't understand from yosys as well
<sajattack> Warning: Async reset value `\r_TX_Byte [7]' is not constant!
<sajattack> I get that warning and then yosys hangs
_whitelogger has joined #yosys
_whitelogger has joined #yosys
<az0re> I didn't look in the yosys source or anything. Dunno if it's supposed to hang.
<az0re> But you should probably get rid of the async reset lol ;)
<az0re> sajattack: ^
<sajattack> ah ok
<sajattack> now I'm getting "Multiple edge sensitive events found for this signal!" but it's not telling me which signal
<sajattack> that seems like a bug
<sajattack> oh it just went to my logfile instead of my terminal
<sajattack> now I can't tell if it was actually hung because I'm looking at the logfile and it's doing stuff
<sajattack> but it seems like maybe the same thing over and over
<sajattack> nope it's just my design is big enough to not compile instantly now I guess
<sajattack> oops
<sajattack> oh
<sajattack> it seems like somehow my memory got inferred as LUTs
<sajattack> and wires
<sajattack> I guess this is like when quartus infers latches?
Thorn has joined #yosys
anticw has quit [Ping timeout: 256 seconds]
anticw has joined #yosys
<sajattack> hmm, my if's have elses and my cases have default, what else could be wrong?
<sajattack> haha, my memory has two different addresses
<sajattack> I guess that's a problem
<sajattack> sorry to bother y'all
emeb_mac has quit [Quit: Leaving.]
jakobwenzel has joined #yosys
jakobwenzel has quit [Quit: jakobwenzel]
jakobwenzel has joined #yosys
jakobwenzel has quit [Client Quit]
jakobwenzel has joined #yosys
adjtm_ has quit [Quit: Leaving]
adjtm has joined #yosys
adjtm has quit [Remote host closed the connection]
adjtm has joined #yosys
dys has quit [Remote host closed the connection]
dys has joined #yosys
emeb has joined #yosys
citypw has quit [Ping timeout: 240 seconds]
jfcaron has joined #yosys
nrossi has left #yosys ["Kicked by @appservice-irc:matrix.org : Idle for 30+ days"]
jakobwenzel has quit [Remote host closed the connection]
<ross_s> Hello, is anyone able to shed some light on some unexpected behaviour of the DP16KD primitive for the ECP5 devices?
<ross_s> Here is a gist containing the critical path report for a clock that I'm using to drive an RGMII interface, and so needs to run at 125MHz:
<ross_s> We have some crc and output data paths that make sense to me, but also a whopping 5.8ns total time spent in `pkt_data.data.0.0.0.DOB7`, which is an inferred block ram containing the ethernet frame data to be sent.
<ross_s> Based on these propagation delays for the -6 speed grade ECP5:
<ross_s> It looks like the 5.8ns value lines up for a DP16KD with NOREG output mode, which is the default. So, based on that, I'd assume that manually instantiating the DP16KD primitive with `.REGMODE_B("OUTREG")` would take the critical path delay down from the 5.8ns value to just below 1ns, looking at the timings lower down with the `OUTREG` option selected:
<ross_s> Alas, when I use this instantiation:
<ross_s> My only theory so far is that the timings for DP16KD parameterized by WRITEMODE are clobbering the timings parameterized by OUTREG? I don't really know enough about the internals to know whether this is barking up the wrong tree, I just notice that it is an extra group under cells.json.
<ross_s> I see no change to the timing output. Is the OUTREG parameter not supported in the yosys flow (yet)? Or am I missing some detail?
<ZirconiumX> daveshah: ^
<daveshah> I don't think nextpnr takes OUTREG into account, yet
<daveshah> because its not inferred by Yosys
<daveshah> Bitstream generation should handle it correctly though
<ross_s> hmm, strange that it doesn't work with the direct primitive instantiation then
<ross_s> is there a way to verify the parameters used by nextpnr are correct?
<ZirconiumX> ross_s: It won't work with direct primitive instantiation because nextpnr does not know about OUTREG
<ZirconiumX> nextpnr doesn't care whether it's inferred or directly instantiated
<ross_s> gotcha. Is there a way to work around that?
<ZirconiumX> I suspect daveshah will possibly write a patch for it, or else you can file a bug report on nextpnr
<daveshah> Yeah, file a bug report so I don't forget and I'll look into it
<ross_s> OK, will do. If there's anything I can do to help out with the patch let me know.
<ross_s> Alright, created issue #422 https://github.com/YosysHQ/nextpnr/issues/422
adjtm_ has joined #yosys
adjtm has quit [Ping timeout: 250 seconds]
ZipCPU has quit [Quit: ZNC 1.6.4 - http://znc.in]
ZipCPU has joined #yosys
<ross_s> I took a look through the nextpnr source to see if I could spot what to change - this patch seems to fix the timing analysis: https://github.com/YosysHQ/nextpnr/compare/master...rschlaikjer:rschlaikjer-regmode-timing-database?expand=1
<ross_s> But I can't spot if/where to alter the bitstream generation
<daveshah> ross_s: hang on, I'll be around in an hour or so
<daveshah> At a glance that patch looks correct but needs a performance improvement (using ArchCellInfo)
<ross_s> ok cool, I'll look into that in the meantime. thanks for taking a peek.
<ross_s> alright; I think I've moved that logic over correctly. No rush: https://github.com/YosysHQ/nextpnr/pull/423
sajattack has quit [Quit: Lost terminal]
<daveshah> ross_s: approach in the PR looks good, left some small style comments
<daveshah> Looks like the bitstream side should be done already - https://github.com/YosysHQ/nextpnr/blob/master/ecp5/bitstream.cc#L1004
Cerpin has quit [Quit: leaving]
<ross_s> OK, I thought that might be taking care of it but wasn't sure. Patch updated per your comments.
Cerpin has joined #yosys
futarisIRCcloud has joined #yosys
emeb_mac has joined #yosys
Cerpin has quit [Ping timeout: 258 seconds]
Vinalon has joined #yosys
jfcaron has quit [Ping timeout: 265 seconds]
Cerpin has joined #yosys
futarisIRCcloud has quit [Quit: Connection closed for inactivity]