Friday, 2024-08-16

*** tpb <[email protected]> has joined #yosys00:00
*** lexano <[email protected]> has quit IRC (Ping timeout: 255 seconds)00:47
*** mewt <[email protected]> has quit IRC (Quit: leaving)02:24
*** mewt <[email protected]> has joined #yosys02:25
famubu[m]Thanks. Using abc9 instead of abc changes the output quite a bit (or so I think).04:39
famubu[m]What's the difference between the two? They are both the same tool, right? I guess it's used in different modes as was mentioned earlier.04:40
famubu[m]And device utilisation report from nextpnr for an trivial example I tried shows LUT5,6,7,8. But my FPGA has only LUT4. Is that a problem?04:42
famubu[m]Sipeed tang nano 9K04:42
famubu[m]is the board I'm trying.04:42
famubu[m]---... (full message at <https://catircservices.org/_matrix/media/v3/download/catircservices.org/LJjYWMtOCgeLmDUePoUEPQih>)05:36
famubu[m]Is there any way by which I can get around this?05:36
famubu[m]These were the yosys commands that I was using: https://bpa.st/4HBQ05:37
tpbTitle: View paste 4HBQ (at bpa.st)05:37
famubu[m]Got error at command 10 (abc9).05:37
famubu[m]It comes from here, I guess: https://github.com/YosysHQ/yosys/blob/main/passes/techmap/abc9_ops.cc05:39
famubu[m]Is it that my design is too big to fit in my FPGA?05:39
famubu[m]Without the abc9 command the error doesn't show up.05:54
*** nak <nak!~nak@yosys/nak> has quit IRC (Ping timeout: 252 seconds)07:38
*** nak <nak!~nak@yosys/nak> has joined #yosys07:39
*** tarikhamedovic <[email protected]> has joined #yosys09:43
*** tarikhamedovic <[email protected]> has quit IRC (Client Quit)09:43
*** tarikhamedovic <[email protected]> has joined #yosys09:43
*** tarikhamedovic <[email protected]> has quit IRC (Client Quit)09:44
*** tarikhamedovic <[email protected]> has joined #yosys09:45
*** tarikhamedovic <tarikhamedovic!~tarikhame@user/tarikhamedovic> has quit IRC (Client Quit)09:47
*** tarikhamedovic <[email protected]> has joined #yosys09:47
*** tarikhamedovic <[email protected]> has quit IRC (Client Quit)09:48
*** tarikhamedovic <tarikhamedovic!~tarikhame@user/tarikhamedovic> has joined #yosys09:48
*** pepijn_web <[email protected]> has joined #yosys10:27
*** tarikhamedovic <tarikhamedovic!~tarikhame@user/tarikhamedovic> has quit IRC (Ping timeout: 256 seconds)11:06
*** lexano <[email protected]> has joined #yosys12:04
*** tarikhamedovic <tarikhamedovic!~tarikhame@user/tarikhamedovic> has joined #yosys12:06
*** tarikhamedovic <tarikhamedovic!~tarikhame@user/tarikhamedovic> has quit IRC (Ping timeout: 256 seconds)12:25
*** tarikhamedovic <tarikhamedovic!~tarikhame@user/tarikhamedovic> has joined #yosys13:23
*** pepijn_web <[email protected]> has quit IRC (Quit: Client closed)14:27
*** bjorkintosh <bjorkintosh!~bjork@user/bjorkintosh> has quit IRC (Quit: "Every day, computers are making people easier to use." David Temkin)14:48
*** tarikhamedovic <tarikhamedovic!~tarikhame@user/tarikhamedovic> has quit IRC (Quit: Client closed)15:13
loftyfamubu[m]: so, there seems to be a fairly big misunderstanding going on here15:18
loftyIf you run "help synth_gowin" you can see all the commands that it runs15:19
loftyWhich includes pretty much all of the commands you're trying to run before it15:19
loftyIf you're doing this to learn how a Yosys synthesis pass works, I'm happy to break everything down for you15:20
loftyBut if you're just trying to synthesise things for your Tang Nano 9K, you only need to run synth_gowin15:21
loftyWith that out the way15:22
loftyabc vs abc9: see https://github.com/Ravenslofty/yosys-cookbook/blob/master/misc/abc9.md15:23
loftyLUT5/6/7/8: it's true that Gowin devices have LUT4s, but they have muxes which let you combine LUT4s into bigger LUTs. so, no problem there.15:25
loftyAnd the ABC9 error: see https://yosyshq.readthedocs.io/projects/yosys/en/latest/yosys_internals/extending_yosys/abc_flow.html15:27
tpbTitle: Setting up a flow for ABC9 - YosysHQ Yosys 0.44-dev documentation (at yosyshq.readthedocs.io)15:27
lofty(which is all done as part of the Gowin simulation library, so you can just do `read_verilog -lib -specify +/gowin/cells_sim.v`)15:29
*** bjorkintosh <bjorkintosh!~bjork@2600:1700:5400:c80:add3:fd09:119b:6332> has joined #yosys15:33
*** Adrien[m] <Adrien[m]!adrienpbma@2a01:4f8:c012:5b7:0:1:0:7e> has joined #yosys16:39
Adrien[m]Hi, about abc9 I'd like to raise a questionWith an intern we've noticed that activating abc9 with `synth_xilinx` can produce a much larger design, by something like 2.5x when summing LUT counts in final resource usage report (will be able to confirm once holidays are over). 16:39
Adrien[m]I know abc9 flow is marked experimental, but to that extent really ?16:39
Adrien[m]RAM usage and processing time are also much higher.16:39
loftyAdrien[m]: I think I might know why16:46
loftymore or less, delay and area are inversely correlated; a lower-delay solution consumes more area because there is less timing slack available16:47
loftymy suspicion is that ABC9 has found a *much* lower-delay solution than ABC, and as a result, area went up16:47
loftyif you add `scratchpad -set abc9.D N` (where N is a delay target in picoseconds; I would say roughly half your intended clock period), then you should be able to recover a lot of area16:49
gatecatthis might also be a consequence of synth_xilinx not flattening the design 18:23
gatecatthis means you generally have more, smaller modules, so the critical path that ABC sees is shorter18:23
gatecatand therefore it's more aggressively optimising for delay than it needs to, particularly as it can't see the "real" critical path as all it sees are the individual submodules18:23
gatecatyou could compare the two with -flatten as well and see if there's a difference - usually I'd expect a decent improvement with abc9 on xilinx, because it tends to be more sensible about using wide LUTs (MUXF7/8)18:24
Adrien[m]lofty gatecat Thank you for the insight. We will have a look.20:11
loftyAdrien[m]: who's "we" in this instance?20:11
Adrien[m]The intern and me. Probably mostly me given that the intern will have his next year to begin20:13
Adrien[m]In the end we decided to always keep the hierarchy in test designs, because designs were not worse, and RAM usage and synth time were much lower. This is critical when doing synthe20:14
Adrien[m]... synthesis within embedded system and under 512 MB of RAM total20:15
*** nonchip <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)22:36
*** nonchip <[email protected]> has joined #yosys22:36
*** lexano <[email protected]> has quit IRC (Ping timeout: 255 seconds)23:34

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