综合后的网表有时候会出现assign
语句,出现这种情况是工具会报VIO-4
错误
Verilog 'assign' or 'tran' statements are written out.
应该保证PR用的网表里只有标准单元,所以需要修复这个问题。工具文档描述产生这个warning的原因是设计中存在port直接连到port的情况,建议使用set_fix_multiple_port_nets来修复这个情况。
该命令有如下几个参数,说明如下
-default
移除set_fix_multiple_port_nets-all
等同于-feedthroughs -outputs -constants
,具体的见下面对这三个参数的描述-feedthroughs
在直连的端口之间添加buffer,这样可以替换掉assign
语句-outputs
如果存在一个单元驱动多个输出port的情况,添加buffer-constants
创造常数的副本(duplicate)避免任何层次存在常数驱动多个输出端口。【这里其实我不太理解这个副本是什么意思】-buffer_constants
常数用buffer替代创造副本。-ignore_dont_touch
如果有些线被设置了dont_touch属性,而这些先本身又会导致multiple port问题,则需要添加这个选项来强制修复design_list
指定该命令的作用范围
synopsys的文档对这些问题的描述其实都很清晰,出问题了根据报错代码查找错误原因,再根据文档给的参考信息查找相应的命令手册即可