*** tpb <[email protected]> has joined #yosys | 00:00 | |
*** peepsalot <peepsalot!~peepsalot@openscad/peepsalot> has joined #yosys | 00: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 #yosys | 02: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 #yosys | 07:06 | |
*** killjoy <killjoy!~nameless@user/killjoy> has quit IRC (Ping timeout: 240 seconds) | 09:04 | |
*** killjoy <[email protected]> has joined #yosys | 09:07 | |
*** unkraut <[email protected]> has quit IRC (Remote host closed the connection) | 09:24 | |
*** unkraut <[email protected]> has joined #yosys | 09: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 #yosys | 10:03 | |
*** schaeg_ <schaeg_!~anabrid@2a02:3036:266:a7db:e3cc:5849:e40c:3c19> has joined #yosys | 10:52 | |
*** lexano <[email protected]> has joined #yosys | 12: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 #yosys | 13:53 | |
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has joined #yosys | 13:58 | |
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has quit IRC (Ping timeout: 260 seconds) | 15:09 | |
Myrl-saki | Is there a way to tell Yosys to not assume anything about the values? | 15:11 |
---|---|---|
Myrl-saki | Or rather, assume that all bit representations are valid or something. | 15:11 |
Myrl-saki | Specifically, 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 #yosys | 15: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 #yosys | 16:13 | |
*** cybernaut <cybernaut!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has quit IRC (Ping timeout: 272 seconds) | 16:21 | |
lofty | Myrl-saki: invariably the answer is "fix the bug in your code" :p | 16:29 |
*** cybernaut <cybernaut!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has joined #yosys | 16:33 | |
tnt | lofty: Not sure there is a bug in the code ... | 16:35 |
lofty | tnt: Yosys should not be able to optimise out an entire design if there isn't | 16:35 |
tnt | lofty: 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 |
tnt | so it'd be nice if you could tell it "don't optimize anything based on the content of the ROM". | 16:36 |
lofty | Yosys will pretty much always want to map a ROM to LUTs | 16:37 |
tnt | yeah, which is another problem in itself ... | 16:38 |
tnt | but maybe it accepts ram_style | 16:38 |
tnt | Ideally 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 |
jix | I'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 it | 16: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 #yosys | 17: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 #yosys | 17:07 | |
*** chaoticryptidz <chaoticryptidz!~quassel@static.62.145.21.65.clients.your-server.de> has joined #yosys | 17: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 #yosys | 17:34 | |
*** schaeg <schaeg!~anabrid@2a02:3036:265:3080:68e7:fe5e:34a6:8e52> has joined #yosys | 19:15 | |
*** schaeg_ <schaeg_!~anabrid@2a02:3036:266:a7db:e3cc:5849:e40c:3c19> has quit IRC (Ping timeout: 260 seconds) | 19:16 | |
Myrl-saki | Yosys is making ALUs for this: wire ram_select = addr - 256 < 256; // 256 <= addr && addr < 256 + 256; | 20:00 |
Myrl-saki | Ah wait. | 20:00 |
lofty | Comparisons are implemented in terms of ALUs | 20:00 |
lofty | (with some exceptions for very small comparisons) | 20:01 |
Myrl-saki | I think it's because I'm calling alumacc too early. | 20:01 |
Myrl-saki | Mhm, though isn't this faster with just a bunch of LUTs? | 20:01 |
lofty | With interconnect delay for LUTs compared to fast carry chain? hard to say. | 20:02 |
Myrl-saki | Okay, 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-saki | Though, that's interesting though. | 20:06 |
Myrl-saki | I 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-saki | I think? | 20:08 |
*** icee <[email protected]> has joined #yosys | 20:08 | |
icee | I'm trying to make a workflow with yosys on edaplayground for my students to see decent diagrams of trivial multi-module things | 20:09 |
icee | I'm using flatten in my .ys file; but I get bufs going to names of internal signals | 20:09 |
icee | How can i get it to actually eliminate these internal wire names etc | 20:09 |
icee | i've tried making sure keep attributes are unset (but could be screwing this up); i've tried clean | 20:10 |
lofty | icee: opt_clean -purge | 20:10 |
lofty | At least, if I'm remembering correctly | 20:11 |
lofty | Myrl-saki: depending on the architecture you can also break down comparisons to be even more efficient than naive subtraction while still using the carry chain | 20:13 |
icee | nice! one sec, let me try | 20:18 |
icee | !! thank you | 20: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 #yosys | 22:18 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!