*** tpb <[email protected]> has joined #yosys | 00:00 | |
*** stroboko1p <[email protected]> has joined #yosys | 01:48 | |
*** lkcl_ <[email protected]> has quit IRC (Ping timeout: 272 seconds) | 01:48 | |
*** strobokopp <[email protected]> has quit IRC (Ping timeout: 245 seconds) | 01:51 | |
*** lkcl_ <[email protected]> has joined #yosys | 02:02 | |
cr1901 | >Info: Running timing-driven placement optimisation... | 02:29 |
---|---|---|
cr1901 | Is this a new string in nextpnr? | 02:29 |
*** jophish <jophish!~jophish@2001:470:69fc:105::670> has quit IRC (Ping timeout: 264 seconds) | 03:21 | |
*** promach[m] <promach[m]!~promach@2001:470:69fc:105::ca1> has quit IRC (Ping timeout: 244 seconds) | 03:22 | |
*** jryans <jryans!~jryansmat@2001:470:69fc:105::1d> has quit IRC (Ping timeout: 244 seconds) | 03:22 | |
*** emilazy <emilazy!~emilazy@user/emilazy> has quit IRC (Ping timeout: 264 seconds) | 03:22 | |
tnt | cr1901: huh no ? | 05:37 |
tnt | So huh ... even the "good" sim doesn't look all that good when compared with behavioral (like using all source .v) : https://i.imgur.com/KKlVH6b.png | 05:57 |
tnt | At least "latched_store" is present so at least the cpu doesn't seem to mind. | 05:58 |
tnt | FWIW, I've confirmed on hw with a logic analyzer that the working/non-working case look indeed like the sim results above. | 06:32 |
*** FabM <[email protected]> has joined #yosys | 06:59 | |
tnt | So, the difference between behavioral & "good" seem to be solved by using a more recent yosys to pre-build pcpi_mul block. (I had used the first failing revision previously). Confirmed both in sim and on real hw. | 07:00 |
tnt | (summary, now behavioral = synth good and synth bad = missing latched_store) | 07:00 |
*** promach[m] <promach[m]!~promach@2001:470:69fc:105::ca1> has joined #yosys | 07:23 | |
*** jophish <jophish!~jophish@2001:470:69fc:105::670> has joined #yosys | 07:23 | |
*** emilazy <emilazy!~emilazy@user/emilazy> has joined #yosys | 07:23 | |
*** jryans <jryans!~jryansmat@2001:470:69fc:105::1d> has joined #yosys | 07:23 | |
*** lkcl_ <[email protected]> has quit IRC (Ping timeout: 252 seconds) | 07:24 | |
*** lkcl_ <[email protected]> has joined #yosys | 07:25 | |
tnt | removing (* parallel_case *) there https://github.com/cliffordwolf/picorv32/blob/master/picorv32.v#L331 fixes the issue. (or rather doesn't exhibit it anymore) | 07:45 |
tpb | <https://x0.no/4uxpu> (at github.com) | 07:45 |
tnt | Boiled it down to a reproducer in 50 lines of verilog ... https://pastebin.com/NijQ0nz1 | 08:25 |
tpb | Title: `default_nettype nonemodule mini_dut( input wire pcpi_wr, input - Pastebin.com (at pastebin.com) | 08:25 |
tnt | You synth mini_dut_wrap_bad you get the output optimized to 1'b0 (which is wrong). You synth mini_dut_wrap_good, you get the correct logic. | 08:25 |
gatecat | nice, good work! | 08:27 |
tnt | Tx. Creating an issue now with required file / Makefile to reproduce easily. | 08:29 |
*** Martoni42 <[email protected]> has joined #yosys | 08:31 | |
*** FabM <[email protected]> has quit IRC (Read error: Connection reset by peer) | 08:32 | |
tnt | Note that the commit I pointed to earlier (new DFF OPT pass) has nothing to do with it ... it just made better DFF optimization and realized the two FF were the same and so used the same one for both signals, triggering this bug. | 08:46 |
tnt | mwk: so you're in the clear :p | 08:47 |
tnt | https://github.com/YosysHQ/yosys/issues/2824 | 08:55 |
*** Martoni42 is now known as FabM | 09:05 | |
tnt | I'm going to go with OPT_MUXTREE ... this looks suspicious "Replacing known input bits on port B of cell $flatten\dut_I.$procmux$427: { \pcpi_wr 1'0 } -> 2'00" | 09:13 |
gatecat | yeah | 09:13 |
mwk | oh joy | 09:51 |
mwk | okay, good | 09:51 |
mwk | I was looking for an excuse to replace opt_muxtree with something much more powerful | 09:51 |
mwk | ohhh wait, it involves parallel_case | 09:53 |
mwk | ... parallel_case with one input 0, that shouldn't matter | 09:54 |
tnt | yeah, and if you remove that '0' input ... it works. | 09:55 |
gatecat | https://github.com/YosysHQ/yosys/blob/master/passes/opt/opt_muxtree.cc#L375-L376 looks questionable, port_off/port_idx won't be updated for constant inputs, I think | 10:03 |
tpb | <https://x0.no/4uxq9> (at github.com) | 10:03 |
gatecat | don't fully understand its logic though | 10:03 |
mwk | yeah, definitely suspect | 10:04 |
mwk | hm | 10:04 |
mwk | that'd be an easy fix though | 10:04 |
gatecat | mwk: how does https://github.com/YosysHQ/yosys/pull/2825 look ? | 10:11 |
mwk | gatecat: ... just wrote the exact same thing | 10:12 |
gatecat | oops | 10:12 |
mwk | but yeah, looks fine | 10:12 |
mwk | except it may merit a regression test | 10:12 |
mwk | which I'm writing right now | 10:13 |
mwk | gatecat: how about throw in https://gist.github.com/mwkmwkmwk/2a77e94f1194ebfe9822394899c64f63 as tests/opt/bug2824.ys ? | 10:16 |
tpb | <https://x0.no/4uxqb> (at gist.github.com) | 10:17 |
gatecat | sure, do you want to push it to that branch? | 10:17 |
mwk | hmm | 10:17 |
mwk | right, this is just a branch in the main repo, I can check it out and push it, correct? | 10:17 |
gatecat | yeah | 10:18 |
mwk | gatecat: also your PR is missing "Fixes #2824" in the description | 10:18 |
gatecat | updated, thanks | 10:18 |
mwk | I pushed the commit | 10:19 |
*** lkcl_ <[email protected]> has quit IRC (Ping timeout: 244 seconds) | 10:31 | |
*** lkcl_ <[email protected]> has joined #yosys | 10:44 | |
mwk | gatecat: i think the PR is ready to merge? | 11:05 |
gatecat | mwk: yep done | 11:07 |
mwk | good :) | 11:07 |
tnt | Damnit, I built yosys last week but the name/email change triggers a full tree rebuild. | 11:13 |
mwk | welp | 11:15 |
*** lkcl_ <[email protected]> has quit IRC (Ping timeout: 252 seconds) | 11:15 | |
mwk | ... every day spent developing yosys I'm more happy about my decision to get a ryzen last fall | 11:15 |
* tnt is on a 6y old i7-4600U laptop | 11:16 | |
*** lkcl_ <[email protected]> has joined #yosys | 11:29 | |
*** lkcl_ <[email protected]> has quit IRC (Ping timeout: 244 seconds) | 11:41 | |
*** lkcl_ <[email protected]> has joined #yosys | 11:53 | |
tnt | gatecat / mwk: Just confirmed the fix (on all intermediate testbenches I had and on the actual hardware/project I was originally working on). | 11:54 |
tnt | Thanks ! | 11:54 |
*** sm2n <sm2n!~sm2n@user/sm2n> has quit IRC (Ping timeout: 245 seconds) | 11:58 | |
mwk | great, thanks for the report and diagnosis | 12:05 |
mwk | ! | 12:05 |
*** lkcl_ <[email protected]> has quit IRC (Ping timeout: 264 seconds) | 14:26 | |
*** lkcl_ <[email protected]> has joined #yosys | 14:38 | |
*** FabM <[email protected]> has quit IRC (Quit: Leaving) | 15:00 | |
*** Guest43 <Guest43!~Guest43@cpc157431-lee215-2-0-cust373.7-1.cable.virginm.net> has joined #yosys | 15:04 | |
*** lkcl_ <[email protected]> has quit IRC (Ping timeout: 252 seconds) | 16:07 | |
*** lkcl_ <[email protected]> has joined #yosys | 16:19 | |
*** Guest43 <Guest43!~Guest43@cpc157431-lee215-2-0-cust373.7-1.cable.virginm.net> has quit IRC (Quit: Client closed) | 16:23 | |
*** Guest43 <Guest43!~Guest43@cpc157431-lee215-2-0-cust373.7-1.cable.virginm.net> has joined #yosys | 16:23 | |
*** mwk_ <mwk_!~mwk@user/mwk> has joined #yosys | 16:24 | |
*** ZipCPU_ <[email protected]> has joined #yosys | 16:26 | |
*** emilazy <emilazy!~emilazy@user/emilazy> has quit IRC (*.net *.split) | 16:31 | |
*** jryans <jryans!~jryansmat@2001:470:69fc:105::1d> has quit IRC (*.net *.split) | 16:31 | |
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has quit IRC (*.net *.split) | 16:31 | |
*** ZipCPU <[email protected]> has quit IRC (*.net *.split) | 16:31 | |
*** cr1901 <cr1901!~William@2601:8d:8600:911:d04c:7e05:e89e:86f2> has quit IRC (*.net *.split) | 16:31 | |
*** mwk <mwk!~mwk@user/mwk> has quit IRC (*.net *.split) | 16:31 | |
*** ZipCPU_ is now known as ZipCPU | 16:31 | |
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has joined #yosys | 16:51 | |
*** jryans <jryans!~jryansmat@2001:470:69fc:105::1d> has joined #yosys | 17:04 | |
*** emilazy <emilazy!~emilazy@user/emilazy> has joined #yosys | 17:06 | |
*** Guest43 <Guest43!~Guest43@cpc157431-lee215-2-0-cust373.7-1.cable.virginm.net> has quit IRC (Quit: Client closed) | 17:10 | |
*** mwk_ is now known as mwk | 17:31 | |
*** cr1901 <cr1901!~William@2601:8d:8600:911:a043:50b9:61cb:7752> has joined #yosys | 17:52 | |
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has quit IRC (Quit: Leaving) | 17:57 | |
*** GenTooMan <GenTooMan!~cyberman@2601:547:437f:e5c6:21f:5bff:fefe:a883> has joined #yosys | 17:57 | |
*** freemint <freemint!~freemint@2001:638:904:ffe8:2abf:c8f8:8aa3:41d7> has joined #yosys | 20:17 | |
*** stroboko1p <[email protected]> has quit IRC (Ping timeout: 252 seconds) | 21:06 | |
*** strobokopp <[email protected]> has joined #yosys | 21:13 | |
*** strobokopp <[email protected]> has quit IRC (Read error: Connection reset by peer) | 22:51 | |
*** strobokopp <[email protected]> has joined #yosys | 22:52 | |
*** sm2n <sm2n!~sm2n@user/sm2n> has joined #yosys | 22:57 |
Generated by irclog2html.py 2.17.2 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!