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++作用域和标识符查找规则详解

《C++作用域和标识符查找规则详解》在C++中,作用域(Scope)和标识符查找(IdentifierLookup)是理解代码行为的重要概念,本文将详细介绍这些规则,并通过实例来说明它们的工作原理,需... 目录作用域标识符查找规则1. 普通查找(Ordinary Lookup)2. 限定查找(Qualif

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

如何关闭Mac的Safari通知? 3招教你关闭Safari浏览器网站通知的技巧

《如何关闭Mac的Safari通知?3招教你关闭Safari浏览器网站通知的技巧》当我们在使用Mac电脑专注做一件事情的时候,总是会被一些消息推送通知所打扰,这时候,我们就希望关闭这些烦人的Mac通... Safari 浏览器的「通知」功能本意是为了方便用户及时获取最新资讯,但很容易被一些网站滥用,导致我们

Nginx路由匹配规则及优先级详解

《Nginx路由匹配规则及优先级详解》Nginx作为一个高性能的Web服务器和反向代理服务器,广泛用于负载均衡、请求转发等场景,在配置Nginx时,路由匹配规则是非常重要的概念,本文将详细介绍Ngin... 目录引言一、 Nginx的路由匹配规则概述二、 Nginx的路由匹配规则类型2.1 精确匹配(=)2

Java并发编程之如何优雅关闭钩子Shutdown Hook

《Java并发编程之如何优雅关闭钩子ShutdownHook》这篇文章主要为大家详细介绍了Java如何实现优雅关闭钩子ShutdownHook,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 目录关闭钩子简介关闭钩子应用场景数据库连接实战演示使用关闭钩子的注意事项开源框架中的关闭钩子机制1.

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

详解nginx 中location和 proxy_pass的匹配规则

《详解nginx中location和proxy_pass的匹配规则》location是Nginx中用来匹配客户端请求URI的指令,决定如何处理特定路径的请求,它定义了请求的路由规则,后续的配置(如... 目录location 的作用语法示例:location /www.chinasem.cntestproxy

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触

关于Gateway路由匹配规则解读

《关于Gateway路由匹配规则解读》本文详细介绍了SpringCloudGateway的路由匹配规则,包括基本概念、常用属性、实际应用以及注意事项,路由匹配规则决定了请求如何被转发到目标服务,是Ga... 目录Gateway路由匹配规则一、基本概念二、常用属性三、实际应用四、注意事项总结Gateway路由

Redis 多规则限流和防重复提交方案实现小结

《Redis多规则限流和防重复提交方案实现小结》本文主要介绍了Redis多规则限流和防重复提交方案实现小结,包括使用String结构和Zset结构来记录用户IP的访问次数,具有一定的参考价值,感兴趣... 目录一:使用 String 结构记录固定时间段内某用户 IP 访问某接口的次数二:使用 Zset 进行