综合后的网表有时候会出现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的文档对这些问题的描述其实都很清晰,出问题了根据报错代码查找错误原因,再根据文档给的参考信息查找相应的命令手册即可
