先从vcst-lint的一个warning开始:
up-paired block waiver pragma defined for rule 'flopEConst'
这个含义是存在不配对的块waiver语法,flopEConst。什么叫不配对的语法呢?我们打开对应的verilog代码可以看到有下面的语句
//spyglass disable_block FlopEConst
但是没有找到对应的enable_block语句。这就表示一个disable_block会一直起作用到当前module的endmodule。对于lint来说disable一个规则 一般是有下面几种用法:
spyglass disable
-
在代码中添加注释: 在 Verilog 或 VHDL 代码中,你可以使用特定的注释语法来禁用规则。例如,在 Verilog 中,可以使用
// spyglass disable_block
注释来实现:
// spyglass disable_block flopEConst
// ... [代码区域]
// spyglass enable_block flopEConst
这段注释会告诉 Spyglass 在这两个注释之间的代码块中禁用 flopEConst
规则。
-
使用 Spyglass 属性文件: 在 Spyglass 的属性文件中,你可以定义全局或局部的规则禁用。例如,你可以添加以下行来禁用
flopEConst
规则:
disable flopEConst
这将在整个设计中禁用该规则,或者你可以使用更具体的模式匹配来局部禁用它。
-
使用 Spyglass 命令行参数: 在运行 Spyglass 时,可以使用命令行参数来禁用特定的规则。例如:
sh
spyglass -disable_rule flopEConst ...
这将为整个分析会话禁用 flopEConst
规则。
-
在 Spyglass 项目配置中设置: 如果你使用 Spyglass 的图形用户界面或项目配置文件,可以在项目设置中找到规则配置部分,并在那里禁用
flopEConst
规则。