New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Off-by-one error when indexing individual pins of a bus #3078
Comments
This is not an actual error, it's just idiosyncracy of When written to JSON or other output format, the relevant wire should have the right annotations to be handled correctly |
I'm not convinced. When I synthesize the whole circuit end-to-end, targeting a Xilinx 7 dev board, the only way I can get it to work is if I shift the definition of |
Then please give an instruction for how to reproduce the problem end-to-end |
Sure, here it is: https://github.com/gergoerdi/yosys-issue-3078/tree/1eb7b9a88b678087e7ace0e3ade7c45e13e39c34 Build with |
I have a much simplified version at https://github.com/gergoerdi/yosys-issue-3078/tree/81f4cd6878574614f08269e44ec8df72a857c640 that doesn't require any external peripherals:
With Vivado this lights up LEDs 2, 4 and 5; with Symbiflow using Yosys, it lights up only LED 2.
|
I've got no idea what all the Symbiflow bits are doing, but running
which looks like correct BLIF output to me |
Thanks, I've reported this to the Symbiflow project as well. |
I'd be curious what the |
|
I'll take care of the |
Steps to reproduce the issue
Verilog source:
I have a keypad connected to the
JA
port, so some of the bits in theJA
bus are output (to select the scanned columns) and some are input (to read in the currently selected column from all rows).Expected behavior
The state of the selected (0-th) column should show up on the LEDs.
Actual behavior
If we look at the Yosys synthesis result, we can see that
COLS
gets assigned toJA[3:0]
instead ofJA[4:1]
. Similarly, the pins read fromJA
are off by one, so instead of10:7
,ROWS
(and consequently,LED
) gets assigned from9:6
:The text was updated successfully, but these errors were encountered: