Hello,
During a production synthesis run, intended to target a physical design (in this case ASIC), as opposed Formal Verification, Simulation, Design-For-Test and other non-production use cases.
When using hierarchy -check -top top_module_name -nokeep_prints -nokeep_asserts this still creates $check cells. Docs indicate that the options relate to implicit verilog attributes that annotate these pseudo cell types ?
The `read_verilog` has options to remove such items `-noassert -noassume -norestrict` does it make sense to use these options by default for any production synthesis usage ? Should `-nocover` be a option in there as well ?
Issuing a subsequent delete t:$check after the hierarchy command can then remove the cells inserted via assert usage from the design. Is this the correct and only command that needs to be used to resolve the correct view of the design for the flow ?
Are there any other scenarios which should have a similar treatment because they would insert pseudo cells if a particular non-synthesisable construct was present in the design ? For example if SVA was implemented would that also result in t:$check cell types being inserted or is there another type that exists ?
Are there any Design For Test use cases where assert() directives maybe left in circuit, for which presumably a techmap should be available to replace and manage them in the design ? For example attaching them to memory/scan-chain and cataloging them like debug symbols.
What historically are the cell types $print and $assert does a particular front-end create them, does an older Yosys version use them? Are they still in use today ?
When I use a Verilog statement $info(“info”); I get an error of not being table to lookup task. The read_verilog has a -nodisplay option, but its the hierarchy fails, and it does not seem possible to delete them in between. delete p:$info was tried, I was thinking maybe I need to read_rtlil my_null_task_$info.txt which might contain process $info\n end\n to provide a no-op, but maybe this is better available in the hierarchy command option which is the step causing error. Or maybe there is a reason this is a bad idea ? Comments welcome.
Thanks
Darryl