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
Unresolved $_TBUF_ cells after Yosys synthesis #1668
Comments
FYI @litghost |
Okay, so the example you have here can be expressed in the hardware. I wonder if the |
Here is an update on the
|
I synthesized the examples above with SymbiFlow. |
@rw1nkler So you get the I remember that I've read a part of discussion about how Yosys should detect where to insert an IO buffer. Basically it has to be a direct connection to a top-level port. If you do two or more assigns in the way then it is not considered a top level port. The indirect connection forms when the design is flattened. |
You might be right @mkurc. It seems that the only difference between the:
and
is this intermediate |
To be more specific, the Verilog spec says that module/cell port connections are "buffered", hence the intermediate wire. However from a practical purpose, that buffer doesn't really exist. |
I think that this branch is fixing this issue https://github.com/antmicro/yosys/commits/issue-1737-tbuf-fix
broken output (should be like input ILANG):
output:
This patch is not a perfect solution as it addresses only one case (output ports). Proper solution would fix this assignment mapping: https://github.com/antmicro/yosys/blob/issue-1737-tbuf-fix/passes/opt/opt_clean.cc#L305. But I think it fixes this issue.
|
Here is the minimal example that presents the problem with unresolved
$_TBUF_
cells, after the Yosys synthesis.This problem can be observed i.e., in EarlGrey design files produced by sv2v. It is worth to note that the
assign
statementvisible bellow does not produce unresolved cells, whereas the
pad_wrapper
module does.top.v
:The result of Yosys synthesis:
cmd:
yosys design hierarchy:
The text was updated successfully, but these errors were encountered: