Monday, 2022-08-01

*** tpb <[email protected]> has joined #yosys00:00
*** AdamHorden <[email protected]> has joined #yosys00:26
*** AdamHorden <[email protected]> has quit IRC (Quit: Adam Horden)00:36
*** AdamHorden <[email protected]> has joined #yosys00:39
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:d1c3:faea:59fb:85d7> has quit IRC (Read error: Connection reset by peer)04:32
*** cr1901 <cr1901!~cr1901@2601:8d:8600:911:b866:a259:fada:a698> has joined #yosys04:32
ikskuhrowang077[m]: thank you! i've read the document you've sent more thoroughly and figured that BB is the right primitive to use06:14
ikskuhwhat i have now is this:06:16
ikskuhBB i2c_sda_io (.I(i2c_sda_out), .T(i2c_sda_tristate), .O(i2c_sda_input), .B(i2c_sda_pin));06:16
*** rowang077[m] <rowang077[m]!~rowang077@2001:470:69fc:105::1:ca9f> has quit IRC (*.net *.split)06:38
*** oldtopman <[email protected]> has quit IRC (*.net *.split)06:38
*** tmiw <[email protected]> has quit IRC (*.net *.split)06:38
*** tmiw <[email protected]> has joined #yosys06:38
*** oldtopman <[email protected]> has joined #yosys06:38
*** rowang077[m] <rowang077[m]!~rowang077@2001:470:69fc:105::1:ca9f> has joined #yosys06:43
*** mathu <mathu!~matt@user/mathu> has quit IRC (*.net *.split)06:50
*** benreynwar <[email protected]> has quit IRC (*.net *.split)06:50
*** esden <[email protected]> has quit IRC (*.net *.split)06:50
*** corecode <[email protected]> has quit IRC (*.net *.split)06:50
*** benreynwar <[email protected]> has joined #yosys06:51
*** mathu <mathu!~matt@user/mathu> has joined #yosys06:51
*** esden <[email protected]> has joined #yosys06:51
*** corecode <[email protected]> has joined #yosys06:52
*** FabM <[email protected]> has joined #yosys07:04
*** vidbina <[email protected]> has joined #yosys08:06
ikskuhrowang077[m]: thank you, using BB works as expected! \o/10:05
pepijndevos[m]<whitequark> "will look in a few hours, ping..." <- ping?10:27
*** vidbina <[email protected]> has quit IRC (Ping timeout: 245 seconds)13:02
*** kraiskil <[email protected]> has joined #yosys13:04
rowang077[m]I would like to implement output register inference for brams in yosys? Anyone can point me in the right direction? 13:50
loftyrowang077[m]: Do you mean "inference" or do you mean "merging"?14:14
loftyConsider that the latter is near-universally tech-dependent14:15
rowang077[m]lofty: I think I mean merging. For example the DP16KD bram primitive for the ECP5 FPGA has an input register and an optional output register. Using the output register greatly reduces propagation delay. What I want is that if a register is placed on the output it will instantiate a DP16KD with the output register enabled. 14:21
loftyrowang077[m]: Okay, this sounds unrelated but isn't - do you know what register retiming is?14:24
rowang077[m]Yes14:24
loftyGiven the possibility of register retiming, isn't it potentially too early to decide to merge the register into the BRAM?14:25
rowang077[m]Because retiming happens primitive mapping? If yes, then possibly. But looking at the propagation delay of the DP16KD it seems quite dramatic. I would expect that that would almost be the sensible choice.  14:27
rowang077[m]http://yosyshq.net/prjtrellis-db/ECP5/timing/cell_timing_6.html#DP16KD:REGMODE_A=OUTREG,REGMODE_B=OUTREG14:27
tpbTitle: ECP5 Speed Grade -6 Cell Timings (at yosyshq.net)14:27
rowang077[m]983 ps with output register vs 5609ps without14:28
loftyThese are quick, actually14:28
lofty(ask me how I know >.>)14:29
rowang077[m]@lofty What do you mean quick :p? I don't think a propagation delay of 5609 ps is that quick. 14:30
loftyrowang077[m]: "hey, lofty, can you write a flow for these QuickLogic chips?"14:31
lofty"oh, yeah, sure, send me the timings"14:31
lofty"sure, a 32x32 multiply takes 25ns"14:31
* lofty looks at camera14:31
loftyWell, anyway14:32
loftyDo you want the good news or the bad news?14:32
rowang077[m]🥲14:32
loftyBad news is that merging things together in Yosys is Tricky14:33
loftyGood news is that Yosys has some amount of infrastructure for this: pmgen14:33
loftyBad news: it's mildly terrifying to pattern match on RTLIL14:34
loftyAt least gatecat made the sensible design choice to abstract the FF models into TRELLIS_FF14:35
loftyI would not want to have to match over every single one of the Lattice flop primitives14:36
loftyrowang077[m]: https://github.com/YosysHQ/yosys/blob/master/passes/pmgen/xilinx_srl.pmg14:36
rowang077[m]Oke so from reading the code. What I would have to do is specify a pmg 14:37
rowang077[m]Ah yes tha's what I was looking at14:37
rowang077[m]hmm Oke 14:38
rowang077[m]lofty: Thanks I will try to play around with this to get a better feel on what I can do14:38
loftyrowang077[m]: AIUI pmgen is hyperspecific, expect pain trying to generalise patterns14:41
*** kraiskil <[email protected]> has quit IRC (Ping timeout: 245 seconds)15:17
jixshouldn't memory_dff already try to merge output reigsters into the read port? or does that somehow get undone when mapping to architecture specific things?15:17
*** FabM <FabM!~FabM@armadeus/team/FabM> has quit IRC (Quit: Leaving)15:20
*** kraiskil <kraiskil!~kraiskil@10.121.104.92.dynamic.wline.res.cust.swisscom.ch> has joined #yosys15:56
*** Raito_Bezarius <Raito_Bezarius!~Raito@wireguard/tunneler/raito-bezarius> has quit IRC (Ping timeout: 240 seconds)16:36
*** Guest72 <Guest72!~Guest72@2a01:e0a:2bd:9660:74df:151a:c54f:f5c5> has joined #yosys16:40
*** Guest72 <Guest72!~Guest72@2a01:e0a:2bd:9660:74df:151a:c54f:f5c5> has quit IRC (Client Quit)16:40
*** Raito_Bezarius <Raito_Bezarius!~Raito@wireguard/tunneler/raito-bezarius> has joined #yosys16:48
*** kraiskil <kraiskil!~kraiskil@10.121.104.92.dynamic.wline.res.cust.swisscom.ch> has quit IRC (Ping timeout: 268 seconds)17:02
gatecatjix: memory_dff will fold in one layer of output register, which is required to map to BRAM at all (which always has a registered output), but the hardware also has an optional second output register for pipelining for improved Fmax that nothing in Yosys can infer currently, and I suspect is what this discussion is about18:00
mwkgatecat: speaking of which, ping on https://github.com/YosysHQ/yosys/pull/3420 ?18:01
gatecatdon't have access to the board atm, sorry, life has been quite chaotic18:01
jixgatecat: ah, makes sense and explains my confusion18:02
mwk.... it be like that18:02
mwk*sigh*18:02
mwk(same)18:03
*** emeb <[email protected]> has joined #yosys18:05
whitequarkpepijndevos: pong19:33
whitequarkpepijndevos: please feed the same inputs to non-yowasp nextpnr-gowin19:34
pepijndevos[m]Catherine: take your pick https://github.com/YosysHQ/apicula/actions20:09
pepijndevos[m]All the ones that don't say yowasp are built with regular nextpnr20:09
whitequarkdoes it return an error?20:09
pepijndevos[m]not on master, master. The latest releases... don't tend to work20:10
whitequarkif you want me to look deeper at it you should test the exact same inputs against yowasp-nextpnr-gowin and normal nextpnr-gowin20:10
whitequarkbuilt from the same sources20:10
pepijndevos[m]Well, what's happening is that we build all the examples on the latest yosys and nextpnr from git, as well as the latest yowasp packages. So the inputs are identical down... the randomness of yosys I guess?20:12
pepijndevos[m]Lemme rerun the yowasp one to see if it's a random failure20:13
pepijndevos[m]If it is a random failure, I won't be able to reproduce it. If it's not, the native and yowaps runs should be from identical inputs. Probably the yowasp commit lags a bit behind the native commit, so if there was a regression, native should fail too. We'll know in half an hour...20:17
pepijndevos[m]The fact that it failed on attosoc rather than a small example makes me fear it's a random failure. So I'm not sure where we'd go from there.20:19
pepijndevos[m]On the other hand it failed right at the start, not halfway during PnR...20:19
*** Raito_Bezarius <Raito_Bezarius!~Raito@wireguard/tunneler/raito-bezarius> has quit IRC (Ping timeout: 268 seconds)20:48
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has quit IRC (Ping timeout: 272 seconds)21:04
*** Raito_Bezarius <Raito_Bezarius!~Raito@wireguard/tunneler/raito-bezarius> has joined #yosys21:06
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has joined #yosys21:07
*** Raito_Bezarius <Raito_Bezarius!~Raito@wireguard/tunneler/raito-bezarius> has quit IRC (Max SendQ exceeded)21:09
*** Raito_Bezarius <Raito_Bezarius!~Raito@wireguard/tunneler/raito-bezarius> has joined #yosys21:11
*** skipwich <skipwich!~skipwich@user/skipwich> has quit IRC (Ping timeout: 252 seconds)21:16
*** skipwich <skipwich!~skipwich@user/skipwich> has joined #yosys21:18
*** svenn_ <[email protected]> has joined #yosys21:40
*** sorear_ <[email protected]> has joined #yosys21:40
*** duck25 <[email protected]> has joined #yosys21:40
*** buhman_ <buhman_!sid411355@user/buhman> has joined #yosys21:41
*** freshmaker666 <[email protected]> has joined #yosys21:41
*** Kamilion|ZNC <Kamilion|[email protected]> has joined #yosys21:41
*** lkcl- <[email protected]> has joined #yosys21:41
*** indy_ <[email protected]> has joined #yosys21:42
*** gruetze_ <gruetze_!~quassel@wireguard/tunneler/gruetzkopf> has joined #yosys21:43
*** chaoticryptidz_ <[email protected]> has joined #yosys21:44
*** indy <[email protected]> has quit IRC (*.net *.split)21:48
*** chaoticryptidz <[email protected]> has quit IRC (*.net *.split)21:48
*** greeb <[email protected]> has quit IRC (*.net *.split)21:48
*** gruetzkopf <gruetzkopf!~quassel@wireguard/tunneler/gruetzkopf> has quit IRC (*.net *.split)21:48
*** Kamilion <[email protected]> has quit IRC (*.net *.split)21:48
*** lkcl <[email protected]> has quit IRC (*.net *.split)21:48
*** sorear <[email protected]> has quit IRC (*.net *.split)21:48
*** buhman <buhman!sid411355@user/buhman> has quit IRC (*.net *.split)21:48
*** svenn <[email protected]> has quit IRC (*.net *.split)21:48
*** duck2 <[email protected]> has quit IRC (*.net *.split)21:48
*** Kamilion|ZNC is now known as Kamilion21:48
*** sorear_ is now known as sorear21:48
*** buhman_ is now known as buhman21:48
*** skipwich <skipwich!~skipwich@user/skipwich> has quit IRC (Quit: DISCONNECT)21:56
*** skipwich <skipwich!~skipwich@user/skipwich> has joined #yosys21:56
*** skipwich <skipwich!~skipwich@user/skipwich> has quit IRC (Ping timeout: 240 seconds)22:01
*** svenn_ is now known as svenn22:03
*** nonchip <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)22:04
*** skipwich <skipwich!~skipwich@user/skipwich> has joined #yosys22:06
*** bwidawsk <[email protected]> has quit IRC (Remote host closed the connection)22:12
*** emeb <[email protected]> has quit IRC (Quit: Leaving.)23:37

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