-
Notifications
You must be signed in to change notification settings - Fork 891
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
Removal of conditional code macro definitions for ABC/ABC9 #2213
Comments
That macro was something that was necessary to work around some ABC9 modelling limitations. It's removal was because -- to my knowledge -- I had fixed those limitations and can now interpret the unmodified simulation model. Please be more direct about what the breakage is, or propose a new PR showing why they would still be necessary for your use case. |
You may not remember, but you are actually the one who suggested using
The underlying hardware in this case is not precisely modeled in either branch, as there is in fact a bitstream configured mux between CIN and CYINIT, rather than a logic The reason for the above logic is in the event that the client of |
I honestly had completely forgotten about that. I would be in favour of putting it back in with a comment that explains its necessity -- go ahead and do so in a PR. It does feel a little fishy to detect unconnected ports by checking equality with |
I'm not sure verilog provides a superior method. It is worth noting that Vivado's unisim uses a similiar construction: https://github.com/Xilinx/XilinxUnisimLibrary/blob/master/verilog/src/unisims/CARRY4.v#L73-L74 The unisim construction is actually a more robust construction, because it handles the "default" case, where both ports are disconnected. I'm open to other suggestions for how to model this kind of construction. |
In earlier versions of the ABC/ABC9 support in yosys, there was a define
_ABC
or_ABC9
that could be used to conditionally select code that is suitable for ABC/ABC9 versus other uses.-D_ABC9
yosys/techlibs/xilinx/synth_xilinx.cc
Lines 286 to 292 in d4212d1
or
-D_ABC
yosys/techlibs/xilinx/synth_xilinx.cc
Lines 286 to 289 in 7959e9d
It appears these were removed in 1dc2260
The question is, why was this removed? In cases where conditional code is desired and/or needed for different needs (abc/abc9/simulation), what is the recommended way to support this?
The text was updated successfully, but these errors were encountered: