-
Notifications
You must be signed in to change notification settings - Fork 854
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
WIP: Adding a pass which splits inout wires (+ports). #588
Conversation
Why in gods name is this a script pass!?!?!?
Because you are trying to add a wire while iterating over the list of wires. Do not do that.
I don't know what this means.
Whenever you made changes to the port indices so that there may be gaps, or indices may not be unique, or ports have no index assigned. |
I've updated this pass quite a bit and it is getting closer to working (as you can see from the following screenshots); However there are a bunch of things I'm still confused about;
|
You don't "need to use a new wire". Unfortunately you don't tell how got the impression you'd need to. You can just use cell->setPort with any existing signal.
Each port wire must have Furthermore, port_id must be unique within a module and there must be no gaps (first port starting with index 1 since 0 is reserved for non-port wires).
It is the same as
You can modify multiple ports and then just call As I said before: "Whenever you made changes to the port indices so that there may be gaps, or indices may not be unique, or ports have no index assigned." So when you add a new port, and don't make sure that you have set up the port indices in a way so that they are continuous and unique then yes, of course of have to call
You just add a wire (using
yosys-tests
There are no BUF cells. There are The BUF things you see in the show output are visualizations of direct wire-to-wire connections, not cells. The We had this conversation before.
I don't know what you are asking, since setting a breakpoint on log_assert is a way (the obvious way) to do that. |
I'm unclear on what problem this PR was intended to solve, but since there hasn't been any activity in almost two years I'm assuming it isn't going to move forward, so I'm going to close it as part of our PR cleanup effort. Tristate support has been improved significantly in the meantime, in case that helps. If you're still having trouble, please file an issue with the problem! |
This pull request is not ready to merge, but I'm stuck and need a review to figure out what I'm doing wrong.
The issues I've run into are;
RTLIL::Module::add(RTLIL::Wire *wire)
. The value is 1 (rather than zero) but I don't understand why.module->fixup_ports();
?My yosys script is;
read_verilog example.v; synth_ice40 -nocarry; ice40_opt -unlut; abc -lut 4; opt_clean; splitinout; show
.The current test Verilog I'm using is as follows;