Replies: 3 comments 18 replies
-
The third buffer buffer looks to have been from yosys. I imagine the incoming netlist was a single buffer (776). The other two come from buffer_ports. You could skip that if you want a single buffer. |
Beta Was this translation helpful? Give feedback.
-
Yep.
Surprisingly, the input output buffers go away if I disable yosys buffer insertions. Any thoughts about why that is happening? It sounds like you only expected input/output buffers in this case... How can I disable output/input buffers for only in-out paths and is it a good idea in this case? Also, I didn't expect zero propagation time when there are no buffers, is that expected? |
Beta Was this translation helpful? Give feedback.
-
@maliberty One last question, why is this line in synth.tcl? I understand what it does, I just don't know why it is there.
|
Beta Was this translation helpful? Give feedback.
-
Using The-OpenROAD-Project/OpenROAD-flow-scripts#1322 to be merged, but the same issue exists in master), I looked at a path going through Element (no registers, just a signal going from left to right through the Element):
There are three buffers in this path: input, a middle buffer inserted by synthesis, and an output buffer. The input and output buffers are introduced by OpenROAD. What motivates synthesis to introduce this middle buffer? Isn't that the job of resizing?
From 1_synth.v we see the middle buffer:
The buffer is inserted by this code:
https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/4a6fdcebf8361481090acde05d596e8db946c806/flow/scripts/synth.tcl#L96
Overview:
The two nearly back-to-back buffers on the output:
Moreover: there are two buffers(synthesis introduced buffer + output buffer) nearly back to back at the output. The Element is routed by abutment horizontall, so we get a third input buffer immediately from the Element to the right.
If I disable https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/blob/4a6fdcebf8361481090acde05d596e8db946c806/flow/scripts/synth.tcl#L96, I get no buffers, which was unexpected as OpenROAD, not synthesis inserts input and output buffers...
At the mock-array level, I see something unexpected, 0 delay for the in-out paths:
Beta Was this translation helpful? Give feedback.
All reactions