Skip to content

Inconsistency between post synthesis BLIF and Verilog netlists #1721

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

Closed
mkurc-ant opened this issue May 7, 2021 · 4 comments
Closed

Inconsistency between post synthesis BLIF and Verilog netlists #1721

mkurc-ant opened this issue May 7, 2021 · 4 comments
Labels

Comments

@mkurc-ant
Copy link
Collaborator

VPR can write post synthesis netlist (it is more of a post-pnr netlist IMO) as BLIF and Verilog. In the BLIF file unconnected input and output ports are tied to special nets named __vpr__unconnXX which is fine. However, in the Verilog file they are not represented correctly.

Expected Behaviour

In post synthesis netlist in Verilog format:

  • unconnected input cell ports should be unconnected or tied to 1'bX or tied to a special net named __vpr__unconnXX.
  • unconnected output cell ports should be either unconnected or tied to a special net named __vpr__unconnXX.

Current Behaviour

In post synthesis netlist in Verilog format:

  • unconnected input cell ports are always tied to 1'b0 which is clearly incorrect
  • all unconnected output cell ports are tied to the same net named DummyOut which is even more incorrect as it results in multi-source nets.

Possible Solution

Fix this part of the code

if (nets[ipin].empty()) {
//Disconnected
if (type == PortType::INPUT || type == PortType::CLOCK) {
os << "1'b0";
} else {
VTR_ASSERT(type == PortType::OUTPUT);
os << "DummyOut";
}
} else {
to achieve the desired behavior

Steps to Reproduce

For any architecture and design run the full VPR flow (pack, place and route) with --analysis and --gen_post_synthesis_netlist on options.

Context

I want the output post-synthesis netlist in Verilog format to be usable for design simulation.

Your Environment

  • VTR revision used: 8.0.0-3452-ge7d45e013 (same issue would occur with the current master)
  • Operating System and version: Linux Ubuntu 18.04
  • Compiler version: GNU 7.3.0 on Linux-4.15.0-1109-azure x86_64
@vaughnbetz
Copy link
Contributor

Discussed in meeting; agreed that we can copy the blif behaviour so long as it doesn't confuse downstream verilog simulators.

  • Also test this to make sure this works with a simple design and a post-routing simulation.
  • Suggestion: allow these unconnect inputs to be driven to 0, 1 or X (leave unconnected) by default.

Copy link

github-actions bot commented May 9, 2025

This issue has been inactive for a year and has been marked as stale. It will be closed in 15 days if it continues to be stale. If you believe this is still an issue, please add a comment.

@github-actions github-actions bot added the Stale label May 9, 2025
Copy link

This issue has been marked stale for 15 days and has been automatically closed.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale May 25, 2025
@vaughnbetz
Copy link
Contributor

This was fixed long ago and should have been closed; leaving it closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants