spyglass-lint关闭(disable/stop/waiver)规则

2024-08-28 08:20

本文主要是介绍spyglass-lint关闭(disable/stop/waiver)规则,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.在verilog中disable检查

spyglass-lint可以在verilog代码中通过注释的方式disable掉某些检查,规则如下:

// spyglass disable_block xxx
// ... 
verilog code// spyglass enable_block xxx

其中xxx就是被disable的某一项规则。在disable_block和enable_block之间的verilog code就是作用区域。

如果没有enable_block语句,则disable_block的默认作用范围到endmodule。而且会报一个un-paired block waiver pragma defined for rule 'xxx'

2.在Spyglass 命令行参数disable

spyglass -disable_rule xxx

这个命令会把当前工程PRJ的xxx rule全部disable掉,lint就不会分析这个rule

3.在配置文件中设置(*.prj文件)

可以通过 Spyglass 的命令行界面启动 Spyglass Lint,并加载配置文件。启动命令可能类似于 spyglass -project your_project.prj -gui,这将打开 GUI 并加载指定的 .prj 配置文件

在prj文件中可以设置做哪些lint的检查,文件读取、设置顶层模块、选择综合模式等操作。

这些语句如下:

使用set_option top <module_name>命令来指定设计中的顶层模块
在Goal Setup选项卡中选择要检查的规则类型,并通过命令如current_goal lint/lint_rtl –top <top_module>和run_goal来设定检查目标并运行检查
set_goal_option addrules {'W120'}
set_goal_option ignorerules {'W446'}
save_project -force project_name.prj
close_project -forceset_option stop {module_name}  关闭module_name对应module的检查
set_option stopfile {file_name} 关闭file_name文件指定的所有module的内部lint检查

3.1 stop命令

这里单独提一下 set_option stop {module_name},这个命令只能写到prj的配置文件中,waiver.tcl中是不起作用的。

设了这个命令,那么lint就不会分析module_name模块内部的lint问题,但是接口的lint问题还是会分析的。【而waiver是问题报出来了,我们忽略这些问题】

stopfile的区别是将一堆module_name写到了一个file_name的文件中,而不是对叫file_name的verilog文件stop检查。stopfile同样会检查接口lint问题。

4.在waiver.tcl中waiver掉不重要的检查

在waiver.tcl中的waiver语句和前面讲的几种方法最大的区别是,前面的告诉工具不去检查某些module/代码段的规则,而waiver是报出了问题,经过确认可以例外的违例item。

4.1waiver某个module/规则

使用waive -ip命令:此命令用于豁免特定模块的所有规则检查。
waive -ip {module_name}使用waive -du命令:-du选项代表设计单元(Design Unit),可以用来豁免特定模块的特定规则。
waive -du {module_name} -rule {rule_name} -comment {add comment}
waive -du {module_name} -rule all   #waiver所有的module_name的检查使用waive -file命令:如果您有一个包含豁免信息的文件,可以使用此命令来导入豁免。
waive -file {file_name}使用waive -msg命令:此命令可以针对特定的消息或警告进行豁免。
waive -msg {message} -rule {rule_name} -comment {add comment}使用waive -severity命令:此命令可以根据严重性级别来豁免一系列的警告或错误。
waive -severity {severity_level}

4.2 waive_violation和waive_lint以及waive命令的区别

在Spyglass Lint中,waive_violationwaive_lint以及waiver命令都用于处理违反规则的情况,但它们各自有不同的用途和特点:

  1. waive_violation:此命令用于豁免特定的违规(violation)。当你认为某个特定的警告或错误不需要修复时,可以使用此命令。使用waive_violation可以针对单个违规进行豁免 。

  2. waive_lint:此命令用于豁免与特定Lint规则相关的所有违规。如果你想要忽略由某个Lint规则检查出的所有问题,可以使用waive_lint命令。这适用于那些你认为对当前设计阶段不重要或不适用的规则 。

  3. waiverwaiver是一个更通用的概念,它指的是Spyglass中用于过滤和豁免某些检查结果的机制。waiver可以是waive_violationwaive_lint命令的集合,也可以是保存在文件中的豁免规则。使用waiver可以按严重性、规则或其他标准来豁免问题 。

使用这些命令时,你可以通过指定违规的ID、规则名称、模块名等信息来精确地控制哪些问题被豁免。例如,使用waive_violation -id <violation_id>来豁免特定ID的违规,或者使用waive_lint -rule <rule_name>来豁免由特定规则检查出的所有违规

这篇关于spyglass-lint关闭(disable/stop/waiver)规则的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1114236

相关文章

C#关闭指定时间段的Excel进程的方法

private DateTime beforeTime;            //Excel启动之前时间          private DateTime afterTime;               //Excel启动之后时间          //举例          beforeTime = DateTime.Now;          Excel.Applicat

Adblock Plus官方规则Easylist China说明与反馈贴(2015.12.15)

-------------------------------特别说明--------------------------------------- 视频广告问题:因Adblock Plus的局限,存在以下现象,优酷、搜狐、17173黑屏并倒数;乐视、爱奇艺播放广告。因为这些视频网站的Flash播放器被植入了检测代码,而Adblock Plus无法修改播放器。 如需同时使用ads

argodb自定义函数读取hdfs文件的注意点,避免FileSystem已关闭异常

一、问题描述 一位同学反馈,他写的argo存过中调用了一个自定义函数,函数会加载hdfs上的一个文件,但有些节点会报FileSystem closed异常,同时有时任务会成功,有时会失败。 二、问题分析 argodb的计算引擎是基于spark的定制化引擎,对于自定义函数的调用跟hive on spark的是一致的。udf要通过反射生成实例,然后迭代调用evaluate。通过代码分析,udf在

关联规则(一)Apriori算法

此篇文章转自 http://blog.sina.com.cn/s/blog_6a17628d0100v83b.html 个人觉得比课本上讲的更通俗易懂! 1.  挖掘关联规则 1.1   什么是关联规则 一言蔽之,关联规则是形如X→Y的蕴涵式,表示通过X可以推导“得到”Y,其中X和Y分别称为关联规则的先导(antecedent或left-hand-side, LHS)和后

电子电气架构---私有总线通信和诊断规则

电子电气架构—私有总线通信和诊断规则 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。 无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、

linux定时监听ssh服务是否启动-------麒麟操作系统永久关闭swap

linux监听ssh服务是否启动 1、监听脚本2、定时任务3、麒麟操作系统,永久关闭swap 1、监听脚本 #在/usr/local/bin目录下新建脚本文件 cd /usr/local/bintouch check_sshd.sh#给可执行权限chmod +x /usr/local/bin/check_sshd.sh 脚本内容如下: #!/bin/bashs

Python中的单下划线和双下划线使用规则

引言 Python 遵循一些关键的命名规则,这些规则涉及到使用单个或双下划线。通过这些规则,你可以在应用程序接口(API)中区分可访问的和不可访问的标识符,编写适用于继承的稳健类,以及防止命名冲突等。 遵守这些规则,你的代码将显得更贴近 Python 的风格,并且在其他 Python 程序员看来更加统一。这项技能在你为其他开发者编写代码时尤为重要。 本文[1]将带你了解: 基于使用下划线

【0324】Postgres内核 Shared Buffer Access Rules (共享缓冲区访问规则)说明

0. 章节内容 1. 共享磁盘缓冲区访问机制 (shared disk buffers) 共享磁盘缓冲区有两套独立的访问控制机制:引用计数(a/k/a pin 计数)和缓冲区内容锁。(实际上,还有第三级访问控制:在访问任何属于某个关系表的页面之前,必须持有该关系表的适当类型的锁。这里不讨论关系级锁。) Pins 在对缓冲区做任何操作之前,必须“对缓冲区pin”(即增加其引用计数, re

使用Python控制Excel应用:打开与关闭工作簿的技术性探讨

目录 引言 一、安装必要的库 1. xlwings 2. openpyxl 二、使用xlwings打开和关闭Excel工作簿 2.1 启动和退出Excel 2.2 打开和关闭工作簿 2.3 创建新工作簿 三、使用openpyxl打开和关闭Excel工作簿 3.1 打开工作簿 3.2 保存和关闭工作簿 四、案例分析 4.1 读取Excel文件中的数据 4.2 写入数据到E

解决开机提示STOP:c0000218办法教程

“STOP:c0000218 {Registry File Failure}”是一个很典型的错误信息,造成错误的原因是硬盘错误或硬盘损坏。解决办法如下:   1. 从 Windows XP 光盘启动计算机。如果出现提示,请选择从光盘启动计算机必须选择的任何选项。   2. 当提示你选择“修复或故障恢复”时,请按R。这将启动Microsoft故障恢复控制台。   3. 根据提示,键