The-OpenROAD-Project / The-OpenROAD-Project/OpenSTA
`VerilogWriter::writeAssigns()` omitted `assign` statement when a feed-through net name matches output port name
Open
@dsengupta0628 is already working on this.
Since Mar 24, 2026.
- Dominant language
- Verilog
- Stars
- 619
- Forks
- 270
- Avg merge
- 5d 15h
- Merged PRs (30d)
- 4
Description
VerilogWriter::writeAssigns(const Instance *inst) assumes that a feed-through net name should match its input port name.
- If a feed-through net name matches its input port name,
assignstatement is correctly generated whenwrite_verilogcommand is exectued because the net name is different to its output port name.
Case 1.
(input term name: IN) --> (feed-through wire name: IN) --> (output term name: OUT)
[ Verilog output by write_verilog command ]
module sub (IN, OUT);
input IN;
output OUT;
assign OUT = IN; // Correct
endmodule
- But if a feed-through net name matches its output port name,
assignstatement is not generated.
Case 2.
(input term name: IN) --> (feed-through wire name: OUT) --> (output term name: OUT)
[ Verilog output by write_verilog command ]
module sub (IN, OUT);
input IN;
output OUT;
// ERROR. assign statement is missing
endmodule
It would be nice if VerilogWriter::writeAssigns() can generate the assign statement correctly even if the feed-through net name is the same as the output term name.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.