综合网表中有assign怎么办

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

posted on 2025-09-25 12:57  veosat  阅读(87)  评论(0)    收藏  举报