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
GHDL assertions end up in json, nextpnr complains #2068
Comments
Duplicate of #177. |
Thanks, I guess the SystemVerilog reproducer was a bit of a red herring. Should GHDL not emit Assert entries at all, or have an option to not emit them? It seems a bit strange to be doing it there, vs yosys or nextpnr. |
It wouldn't be too problematic to drop these cells in the nextpnr frontend, if that is the consensus then I'm happy to do that. But I don't know what would happen with synth_xilinx and the EDIF backend, or xilinx/ice40 going into VPR or arachne-pnr via BLIF. |
Should we perhaps just delete formal cells at the end of every device-specific flow? I'm not sure what the downsides to that are. |
Hypothetically I suppose some kind of post-synthesis verification might need them? |
Is there any movement on this? I retested with the latest docker images in ghdl/synth:nextpnr-ecp5 and we are still hitting this. |
This was rejected in #177. |
@whitequark I'm a bit confused, these are runtime asserts in the VHDL, and GHDL is passing them through to yosys. Should we get GHDL to strip them all out? |
The Verilog backend also passes the asserts through to Yosys. The solution offered in #177 was to use the Verilog preprocessor to strip asserts for synthesis. Does VHDL have one? |
|
@tgingold IMHO a |
Wait, you don't use formal? Why do you get assertions in the input netlist then? |
@whitequark we just use asserts. An example that's causing us problems is here. |
@whitequark The possibility to use assertions in VHDL exists since the first standard (1987) and is not exactly considered as formal methods. It is now possible to use the |
Add --no-formal as suggested by @tgingold here: YosysHQ/yosys#2068 (comment) Which fixes synthesis for yosys/nextpnr Reduce speed to 40MHz for now so we build. nextpnr will leave a config file around even when it errors out, so build to a tmp file and move it when we succeed so we don't confuse make. Signed-off-by: Michael Neuling <mikey@neuling.org>
@tgingold this works with microwatt. Thanks. |
Add --no-formal as suggested by @tgingold here: YosysHQ/yosys#2068 (comment) Which fixes synthesis for yosys/nextpnr Reduce speed to 40MHz for now so we build. nextpnr will leave a config file around even when it errors out, so build to a tmp file and move it when we succeed so we don't confuse make. Signed-off-by: Michael Neuling <mikey@neuling.org>
Add --no-formal as suggested by @tgingold here: YosysHQ/yosys#2068 (comment) Which fixes synthesis for yosys/nextpnr Reduce speed to 40MHz for now so we build. nextpnr will leave a config file around even when it errors out, so build to a tmp file and move it when we succeed so we don't confuse make. Signed-off-by: Michael Neuling <mikey@neuling.org>
Add --no-formal as suggested by @tgingold here: YosysHQ/yosys#2068 (comment) Which fixes synthesis for yosys/nextpnr nextpnr will leave a config file around even when it errors out, so build to a tmp file and move it when we succeed so we don't confuse make. Signed-off-by: Michael Neuling <mikey@neuling.org>
Add --no-formal as suggested by @tgingold here: YosysHQ/yosys#2068 (comment) Which fixes synthesis for yosys/nextpnr nextpnr will leave a config file around even when it errors out, so build to a tmp file and move it when we succeed so we don't confuse make. Signed-off-by: Michael Neuling <mikey@neuling.org>
Add --no-formal so that asserts are removed by yosys as nextpnr doesn't like them. This was suggested by @tgingold here: YosysHQ/yosys#2068 (comment) Signed-off-by: Michael Neuling <mikey@neuling.org>
FWIW, the equivalent flag for |
I'm hitting an issue building microwatt with ghdl/yosys/nextpnr where nextpnr complains about an assertion. I'm not sure if yosys shouldn't emit them, if nextpnr should ignore them, or if they are unsupported and ghdl shouldn't emit them.
A simple example:
The text was updated successfully, but these errors were encountered: