-
Notifications
You must be signed in to change notification settings - Fork 401
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
Gate Level Simulation Doesn't Work As Expected for sky130_fd_sc_hd__dfbbn #310
Comments
I am not aware of any issues. Can you provide a specific error message? "leaves several things unconnected" is not a very helpful error report. |
Sorry for the confusion. The exact issue is that several wires are undriven for example "RESET_B_DELAYED" on line 78. This causes the flip flop to not work, and then our overall design fails simulation. |
@mithro : The "specify" section was pulled out of all of the verilog files because iverilog does not handle timing. However, the $setuphold() statements work like buffers inserted in front of or after the gate. For example, in the above case, "D" is the gate input, but $setuphold() takes D as input and produces D_delayed; likewise for the delayed reset, set, and clock. To make the file iverilog compatible, if the naming is consistent, then it should suffice to remove the suffix "_delayed" from any signal in the verilog files. I'm not sure if there is any other fallout from doing that, and it needs to be confirmed. |
It is probably worth checking whether or not iverilog handles the signals through the $setuphold() statement, even if it does not handle the actual timing. A bunch of warning statements out of iverilog would be preferable to a broken behavioral simulation. |
Is there a way we could get the specify blocks with timing checks? It would be very useful to be able to run an sdf annotated gate level simulation |
We got affected by this issue too. @RTimothyEdwards I would suggest to automatically generate non-delayed verilog versions of the libraries by open_pdks which are suitable for IVerilog (which remove the _delayed and remove any duplicate RESET wires) |
I have no control over this. |
Ok, I will try to develop it and provide a pull request... |
Expected Behavior
Gate level simulation works by default.
Actual Behavior
Without FUNCTIONAL defined, gate level simulations use uses ".behavioral.pp.v" cells which does not work.
Steps to Reproduce the Problem
Specifications
The text was updated successfully, but these errors were encountered: