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

相关文章

怎么关闭Ubuntu无人值守升级? Ubuntu禁止自动更新的技巧

《怎么关闭Ubuntu无人值守升级?Ubuntu禁止自动更新的技巧》UbuntuLinux系统禁止自动更新的时候,提示“无人值守升级在关机期间,请不要关闭计算机进程”,该怎么解决这个问题?详细请看... 本教程教你如何处理无人值守的升级,即 Ubuntu linux 的自动系统更新。来源:https://

Springboot使用RabbitMQ实现关闭超时订单(示例详解)

《Springboot使用RabbitMQ实现关闭超时订单(示例详解)》介绍了如何在SpringBoot项目中使用RabbitMQ实现订单的延时处理和超时关闭,通过配置RabbitMQ的交换机、队列和... 目录1.maven中引入rabbitmq的依赖:2.application.yml中进行rabbit

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,

Go信号处理如何优雅地关闭你的应用

《Go信号处理如何优雅地关闭你的应用》Go中的优雅关闭机制使得在应用程序接收到终止信号时,能够进行平滑的资源清理,通过使用context来管理goroutine的生命周期,结合signal... 目录1. 什么是信号处理?2. 如何优雅地关闭 Go 应用?3. 代码实现3.1 基本的信号捕获和优雅关闭3.2

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