Saturday, 2023-09-30

*** tpb <[email protected]> has joined #yosys00:00
*** peepsalot <peepsalot!~peepsalot@openscad/peepsalot> has joined #yosys00:52
*** notgull <notgull!~notgull@ec2-50-112-148-23.us-west-2.compute.amazonaws.com> has quit IRC (Ping timeout: 255 seconds)02:24
*** notgull <notgull!~notgull@2600:1f14:8f4:3100:e2a2:c920:847d:d23> has joined #yosys02:26
*** kristianpaul <kristianpaul!~paul@user/kristianpaul> has quit IRC (Ping timeout: 240 seconds)05:53
*** notgull <notgull!~notgull@2600:1f14:8f4:3100:e2a2:c920:847d:d23> has quit IRC (Ping timeout: 272 seconds)07:01
*** notgull <notgull!~notgull@2600:1f14:8f4:3100:e2a2:c920:847d:d23> has joined #yosys07:06
*** killjoy <killjoy!~nameless@user/killjoy> has quit IRC (Ping timeout: 240 seconds)09:04
*** killjoy <[email protected]> has joined #yosys09:07
*** unkraut <[email protected]> has quit IRC (Remote host closed the connection)09:24
*** unkraut <[email protected]> has joined #yosys09:26
*** chaoticryptidz <chaoticryptidz!~quassel@static.62.145.21.65.clients.your-server.de> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)10:03
*** chaoticryptidz <chaoticryptidz!~quassel@static.62.145.21.65.clients.your-server.de> has joined #yosys10:03
*** schaeg_ <schaeg_!~anabrid@2a02:3036:266:a7db:e3cc:5849:e40c:3c19> has joined #yosys10:52
*** lexano <[email protected]> has joined #yosys12:50
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has quit IRC (Ping timeout: 248 seconds)13:46
*** kristianpaul <kristianpaul!~paul@user/kristianpaul> has joined #yosys13:53
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has joined #yosys13:58
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has quit IRC (Ping timeout: 260 seconds)15:09
Myrl-sakiIs there a way to tell Yosys to not assume anything about the values?15:11
Myrl-sakiOr rather, assume that all bit representations are valid or something.15:11
Myrl-sakiSpecifically, I have a rom which is populated by readmemh, and Yosys is apparently smart enough to dead code eliminate everything else based on the contents of the ROM.15:12
*** cybernaut <cybernaut!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has joined #yosys15:22
*** chaoticryptidz <chaoticryptidz!~quassel@static.62.145.21.65.clients.your-server.de> has quit IRC (Ping timeout: 264 seconds)16:03
*** chaoticryptidz <chaoticryptidz!~quassel@static.62.145.21.65.clients.your-server.de> has joined #yosys16:13
*** cybernaut <cybernaut!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has quit IRC (Ping timeout: 272 seconds)16:21
loftyMyrl-saki: invariably the answer is "fix the bug in your code" :p16:29
*** cybernaut <cybernaut!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has joined #yosys16:33
tntlofty: Not sure there is a bug in the code ...16:35
loftytnt: Yosys should not be able to optimise out an entire design if there isn't16:35
tntlofty: not entire design ... but possibly some path because it sees the rom content never has that bit at 1 for instance. But maybe that rom content is meant to be replaced dynamically post PNR.16:36
tntso it'd be nice if you could tell it "don't optimize anything based on the content of the ROM".16:36
loftyYosys will pretty much always want to map a ROM to LUTs16:37
tntyeah, which is another problem in itself ...16:38
tntbut maybe it accepts ram_style16:38
tntIdeally for postpnr replace the content would be filled with random so it's "unlikely" that it find any content dependent optimization, but still would be nice to be sure.16:39
jixI'm not sure what optimizations in which passes are the issue here, but what should work in any case is to keep the rom in a separate module that's loaded as a blackbox during synth and then only afterwards you read the module contents with the rom in it16:40
*** cybernaut <cybernaut!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has quit IRC (Quit: Leaving)17:02
*** cybernaut <cybernaut!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has joined #yosys17:03
*** cybernaut <cybernaut!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has quit IRC (Read error: Connection reset by peer)17:03
*** chaoticryptidz <chaoticryptidz!~quassel@static.62.145.21.65.clients.your-server.de> has quit IRC (Ping timeout: 255 seconds)17:06
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has joined #yosys17:07
*** chaoticryptidz <chaoticryptidz!~quassel@static.62.145.21.65.clients.your-server.de> has joined #yosys17:14
*** chaoticryptidz <chaoticryptidz!~quassel@static.62.145.21.65.clients.your-server.de> has quit IRC (Read error: Connection reset by peer)17:33
*** chaoticryptidz <chaoticryptidz!~quassel@static.62.145.21.65.clients.your-server.de> has joined #yosys17:34
*** schaeg <schaeg!~anabrid@2a02:3036:265:3080:68e7:fe5e:34a6:8e52> has joined #yosys19:15
*** schaeg_ <schaeg_!~anabrid@2a02:3036:266:a7db:e3cc:5849:e40c:3c19> has quit IRC (Ping timeout: 260 seconds)19:16
Myrl-sakiYosys is making ALUs for this: wire ram_select = addr - 256 < 256; // 256 <= addr && addr < 256 + 256;20:00
Myrl-sakiAh wait.20:00
loftyComparisons are implemented in terms of ALUs20:00
lofty(with some exceptions for very small comparisons)20:01
Myrl-sakiI think it's because I'm calling alumacc too early.20:01
Myrl-sakiMhm, though isn't this faster with just a bunch of LUTs?20:01
loftyWith interconnect delay for LUTs compared to fast carry chain? hard to say. 20:02
Myrl-sakiOkay, I called alumacc later, after opt -fine -full, and with the commented version as the expression, and it now no longer uses ALUs.20:05
Myrl-sakiThough, that's interesting though.20:06
Myrl-sakiI think I see what you mean. A comparison would be both wide and deep, since it has to generate partials for each bits, and then it gets collected after. A dedicated carry chain could actually be faster.20:08
Myrl-sakiI think?20:08
*** icee <[email protected]> has joined #yosys20:08
iceeI'm trying to make a workflow with yosys on edaplayground for my students to see decent diagrams of trivial multi-module things20:09
iceeI'm using flatten in my .ys file; but I get bufs going to names of internal signals20:09
iceeHow can i get it to actually eliminate these internal wire names etc20:09
iceei've tried making sure keep attributes are unset (but could be screwing this up); i've tried clean20:10
loftyicee: opt_clean -purge20:10
loftyAt least, if I'm remembering correctly20:11
loftyMyrl-saki: depending on the architecture you can also break down comparisons to be even more efficient than naive subtraction while still using the carry chain20:13
iceenice! one sec, let me try20:18
icee!! thank you20:19
*** schaeg <schaeg!~anabrid@2a02:3036:265:3080:68e7:fe5e:34a6:8e52> has quit IRC (Ping timeout: 260 seconds)22:16
*** nonchip <[email protected]> has quit IRC (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)22:18
*** nonchip <[email protected]> has joined #yosys22:18

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