0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在SpyGlass环境本身中修复这些Lint错误呢?

sanyue7758 来源:处芯积律 2023-08-14 10:08 次阅读

我们将分析 lint目标运行期间产生的违规行为。我们可以使用 SpyGlass GUI 中的各种调试工具来了解违规,在 RTL 代码中调试,并查看如何在 SpyGlass 环境本身中修复这些违规。

并且在更改 RTL或者.prj文件之后都必须重新运行。

使用以下命令打开 SpyGlass GUI,将自动加载上次运行目标 (lint/lint_rtl)

spyglass-projectwb_subsystem.prj&

在没有-batch时,SpyGlass 默认会打开 GUI。

生成对应于每个目标运行的多个报告,可从菜单栏的报告部分访问,如下所示:

76ebbefc-39ef-11ee-9e74-dac502259ad0.png

在GUI底部的Violations可查看违规信息。在显示出违规信息后,点击违规信息窗口顶部的Group By,然后选择Goal by Rule。

7703bebc-39ef-11ee-9e74-dac502259ad0.png

W415 Multiple drivers错误

该规则确定了可以由设计中的 2 个或更多非三态驱动器同时驱动的网络。打开原理图窗口,增量示意图窗口显示违规的结构:

7721bfb6-39ef-11ee-9e74-dac502259ad0.png

可以看到两个驱动程序正在驱动信号 (WB_master_data_o[0]) ,即端口m0_data_i由端口dat_o(例如 ahb2wb_u0)和m0_data_o(例如 conmax_u1)同时驱动。因此,这是一个违规行为。

通过查看RTL代码知道该部分使用ifdef构造来启用固定代码。

773f9180-39ef-11ee-9e74-dac502259ad0.png

因此在wb_subsystem.prj中添加以下内容来启用宏,从而启用Fix_W415宏:

set_optiondefine{Fix_W415}

设置后重新加载项目文件和重新运行spyglass -project wb_subsystem.prj &

SYNTH_5159警告

77571d1e-39ef-11ee-9e74-dac502259ad0.png

规则 SYNTH_5159识别可能无法综合的结构。该语句包含在synthesis编译指示中,表明该语句不用于分析,但默认情况下,SpyGlass 仅将synopsys和pragma注释识别为pragma(编译指示)(与 Design Compiler 相同)。我们需要通过在.prj文件中添加以下内容来启用synthesis的pragma处理:

set_optionpragma{synopsyspragamsynthesis}

由于此错误发生在ima_adpcm_lib预编译库中,SpyGlass会检查该库的RTL是否已更改,只有在更改后才会重新编译,因此我们需要删除现有的预编译库,使用新的pragma设置重新编译该库。

rm-rfima_adpcm_lib

重新运行后,SYNTH_5159警告消除。

77ad2a7e-39ef-11ee-9e74-dac502259ad0.png

注意: 手动删除 ima_adpcm_lib的替代方法是在.prj文件中临时添加set_option force_compile yes以强制重新编译库。

UndrivenInTerm-ML错误

77c81ea6-39ef-11ee-9e74-dac502259ad0.png

查看违规消息,发现“conmax_u1”矢量输入端口“m0_addr_i”的上半部分(31:16)范围被发现是浮动的:

77e3f45a-39ef-11ee-9e74-dac502259ad0.png

首先双击违规消息, RTL 代码中突出显示的行显示了矢量端口m0_addr_i的端口映射,该端口映射与矢量信号WB_master_addr。

在RTL显示行上,选择WB_master_addr信号(双击),从右键菜单窗口中选择选项Signal:WB_master_addr:

77f65938-39ef-11ee-9e74-dac502259ad0.png

折叠菜单显示了声明、加载和驱动程序的许多超链接(蓝色字样)。可以看到向量信号WB_master_addr的宽度为32位,与映射的实际端口m0_addr_i的宽度相同,即端口与相同大小的信号总线完全连接,不是问题所在。

因此我们继续检查向量信号WB_master_addr的驱动程序:

使用 View -> Windows -> HDL Navigator打开 HDL Navigator窗口,这显示了所选WB_master_addr的驱动器和负载。

78106346-39ef-11ee-9e74-dac502259ad0.png

注意到存在一个 RTL 驱动程序信息:

783db580-39ef-11ee-9e74-dac502259ad0.png

驱动程序是实例ahb2wb_u0的o/p端口adr_0,但这仅驱动矢量信号WB_master_addr的低位(15:0),其余位没有报告其他驱动程序 WB_master_addr ,即高位没有驱动程序。

此违规的修复方法是将高 16 位赋值为0,并需要更新 RTL。

78643764-39ef-11ee-9e74-dac502259ad0.png

可以看到RTL中有通过拼接进行的驱动程序,但通过ifdef结构进行控制。

因此可以通过设置Fix_UndrivenInTerm宏来调用目标程序:

set_optiondefine{Fix_UndrivenInTerm}

788bbb22-39ef-11ee-9e74-dac502259ad0.png

通常,用户不希望每次运行 SpyGlass 时都看到违规消息。可以通过定义Waive来过滤它们 。

右键单击Waive Selected Messages这将打开Waive编辑器窗口,并为其填充相关信息(违规消息、规则和设计单元 (DU))

78af68c4-39ef-11ee-9e74-dac502259ad0.png

78c71f32-39ef-11ee-9e74-dac502259ad0.png

单击Apply,如下图,已忽略刚刚的警告信息。

78e40d4a-39ef-11ee-9e74-dac502259ad0.png

在界面底部选择Waiver Tree可以查看已经被过过滤掉的错误选项。

79146b66-39ef-11ee-9e74-dac502259ad0.png

如果想在后续继续使用当前生成的Waiver,可以将这些信息保存在一个Waiver文件 (.awl) 中。在waivers编辑器窗口中右键文件,然后选择选项Save Waiver Files。:

7937136e-39ef-11ee-9e74-dac502259ad0.png

SpyGlass会为每个Goal保存一个关于检查过滤的文件,本例中文件路径为:

./wb_subsystem/wb_subsystem/lint/lint_rtl/wb_subsystem_waiver_file.awl

我们可以将其复制到当前工作目录下,方便调用:

cp./wb_subsystem/wb_subsystem/lint/lint_rtl/wb_subsystem_waiver_file.awl./wb_subsystem.awl

然后将该过滤文件包含到工程中并将其设置为默认waiver 文件:

read_file-typeawl./wb_subsystem.awl
set_optiondefault_waiver_file./wb_subsystem.awl

然后重新加载工程文件且运行Goal。

生成Dashboard/Datasheet

在GUI界面下打开shell命令窗口,输入如下命令生成Dashboard/Datasheet:

write_aggregate_reportdatasheet
write_aggregate_reportdashboard

7948e9ea-39ef-11ee-9e74-dac502259ad0.png

通过在终端中输入下面命令可以在浏览器中查看报告

firefoxwb_subsystem/html_reports/dashboard.html
firefoxwb_subsystem/html_reports/datasheet.html

7956d866-39ef-11ee-9e74-dac502259ad0.png

79867972-39ef-11ee-9e74-dac502259ad0.png

最后可以查看.prj文件:

79aa3358-39ef-11ee-9e74-dac502259ad0.png







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    51

    文章

    7707

    浏览量

    143997
  • RTL
    RTL
    +关注

    关注

    1

    文章

    382

    浏览量

    59267
  • 过滤器
    +关注

    关注

    1

    文章

    417

    浏览量

    19216
  • GUI
    GUI
    +关注

    关注

    3

    文章

    618

    浏览量

    39047

原文标题:Spyglass 中常见Lint错误

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    何在CYGWIN的IFX环境安装cysecuretool?

    嗨, 我正在尝试在 cygwin 安装 cysecure 工具但遇到了错误。 谁能指导如何在 CYGWIN 的 IFX 环境安装 cys
    发表于 01-25 08:25

    何在地图编译修复警​​告?

    大家好,你有建议如何在地图编译修复此警​​告吗?包装:2912-LUT-1变换器“RD_HIT_inv321_INV_0”未能加入与输出缓冲器“VMEDATA_INP_13_IOBUF
    发表于 10-23 10:31

    stdint.h错误

    使用一个项目上的LINT,它会发出以下警告:TyPulf签名短长度int INT24.t;…\STNDIN.H:28:错误13:Stdit.h在Microchip提供的XC8\V1.41包含目录
    发表于 03-15 15:16

    何在STM32CubeMx环境中去移植easyflash

    何在STM32CubeMx环境中去移植easyflash?有哪些移植步骤
    发表于 11-26 07:27

    何在IAR环境下去实现单片机开发

    何在IAR环境下去实现单片机开发?如何对其进行仿真并调试?
    发表于 11-26 06:32

    何在无ROOT的环境下使用XPOSED

    有什么方法将XPOSED植入RK3288 Android7.1?如何在无ROOT的环境下使用XPOSED
    发表于 03-03 07:59

    何在Ubuntu上开发测试SDK开发环境

    何在Ubuntu上开发测试SDK开发环境?有哪些测试步骤
    发表于 03-09 06:47

    如何去修复NVIC_ISER1在SFR视图中的错误地址

    时,我意识到 IDE 这些地址是错误的,如图所示我希望可以确认并修复错误如果我可以将其张贴到其他地方,请指导我到那个地方。STM32C
    发表于 12-22 07:31

    DOS命令修复U盘文件错误

    Chkdsk命令是在DOS下用于修复文件系统错误的关键命令。U盘的文件系统错误会对我们的数据安全造成危害。
    发表于 01-17 15:08 8983次阅读

    关于PC-lint,以及如何在MDK中添加PC-lint工具

    关于PC-lint,以及如何在MDK中添加PC-lint工具
    的头像 发表于 03-04 09:31 4116次阅读
     关于PC-<b class='flag-5'>lint</b>,以及如<b class='flag-5'>何在</b>MDK中添加PC-<b class='flag-5'>lint</b>工具

    细碎机轴径磨损后如何在线修复

    细碎机轴径磨损后如何在线修复
    发表于 02-11 11:30 4次下载

    详解Spyglass使用(一)

    作为IC设计人员,熟练掌握数字前端语法检查工具Spyglass的重要性不言而喻,本文手把手教你学习Spyglass工具。
    的头像 发表于 12-28 09:27 5037次阅读

    详解Spyglass使用(二)

    接着上文继续聊,详解Spyglass使用(一),在看到一条条lint Warning信息后,怎么才能更清晰地知道warning的具体原因呢?告诉你一个好习惯!
    的头像 发表于 12-29 09:16 3714次阅读

    景芯SoC的Spyglass检查

    作为IC设计人员,熟练掌握数字前端语法检查工具Spyglass的重要性不言而喻,本文讲解景芯SoC的Spyglass检查。
    的头像 发表于 08-15 09:45 1047次阅读
    景芯SoC的<b class='flag-5'>Spyglass</b>检查

    SpyGlass®Lint Turbo结构用户指南

    电子发烧友网站提供《SpyGlass®Lint Turbo结构用户指南.pdf》资料免费下载
    发表于 12-21 09:48 0次下载