首页 > 其他分享 >数字asic流程实验(EX2)Spyglss Lint

数字asic流程实验(EX2)Spyglss Lint

时间:2024-09-06 21:25:37浏览次数:8  
标签:Lint file read rtl lint asic Spyglss 读入

Spyglass Lint工具可以用于RTL代码检查,包括了语法检查,位宽不匹配检查,综合性检查等。尽管我们知道Design Compiler也具备Lint功能,但Spyglass作为专用Lint工具有着更好的性能。

一般Spyglass Lint操作可以插入到RTL编写阶段,在综合前对代码质量进行检查。

这里简单介绍一下Spyglass的Lint操作。

Spyglass可以通过GUI界面或者脚本进行调用。使用GUI界面操作的效率比较多,这里直接介绍自动化脚本。

类似于其他Synopsys软件,Spyglass可以通过tcl脚本进行操作:

set design_name "example"

# read in files
read_file -type sourcelist ../../prj/filelist.f
# read_file -type gateslib ../../lib/ 
read_file -type sgdc ../../src/sdc/${design_name}.sgdc

# setup
set_option top ${design_name}
set_option sdc2sgdc yes
current_goal Design_Read -top ${design_name}
link_design -force

# run lint
current_goal lint/lint_rtl -top ${design_name}
run_goal

# save project
save_project -force

上面的tcl脚本起到的作用包括了:读入文件,读入设计,运行RTL Lint以及保存工程四个步骤。

read_file命令用于文件的读入,可以用read_file -type verilog {xxx.v xxx.v}的方式来挨个输入要读入的文件,更高效的做法是直接复用filelist.f文件,使用read_file -type sourcelist xxx.f即可,此外如果编写了设计约束的话,可以通过read_file -type sgdc xxx.sgdc的方式来进行读入。这里的sgdc可以写成复用sdc的方式,因为我们run DC的时候还是吃的sdc文件。

current_design xxx
sdc_data -file ../../src/sdc/xxx.sdc

注意后面要通过set_option sdc2sgdc yes来对这个功能进行配合。

一些设计中的没有.v,需要被设为黑盒子的IP模块可以通过read_file -type gateslib xxxx.lib的方式来实现读入。

读入设计阶段Design Read阶段会检查一下是否存在语法错误,如果顺利通过,那么就会进入RTL_Lint。Spyglass提供了许多不同的Lint功能,这里只简单介绍lint_rtl和lint_turbo_rtl这两种Lint。

通过current_goal设置目前目标为lint_rtl,run_goal命令开始运行lint,lint_rtl只对RTL代码进行Lint,此时可以不读入sgdc。如果Lint顺利通过,可以看到log中打印:

image

其中Fatals,Errors应该均为零,Warnings的内容可以具体内容具体分析。

通过gui_start命令可以启动Spyglass的图形界面:

image

在下方的窗口里可以看到Message Tree,可以点开查看条目的具体内容。

通过点击上面的MS小按钮可以查看设计的原理图,和DC里面差不多。

image

如果读入了sgdc,那么可以进一步运行lint_turbo_rtl,将设计和约束文件在一起进行Lint。方法是点击上面的Goal Setup,勾选lint_turbo_rtl,然后点击Run Goal(s):

image

这里如果没有读入sgdc那么会报Fatal,如果有的话,那么可以和lint_rtl一样先看summary,然后看Message Tree做具体分析:

image

标签:Lint,file,read,rtl,lint,asic,Spyglss,读入
From: https://www.cnblogs.com/sasasatori/p/18401030

相关文章

  • 讲一下Android Lint工具使用,以及如何自定义lint规则
    Androidlint是一个静态代码分析工具,用于在Android项目中检测潜在的问题和错误。它可以帮助开发者提高代码质量、发现性能问题、确保兼容性以及遵循最佳实践。一、Androidlint的主要功能包括:代码风格检查:确保代码遵循一致的风格规范,如命名约定、缩进等。潜在错误检测:识......
  • 前端vue项目 git commit msg 文字校验实现,利用husky 和 commitlint实现
    husky安装使用说明husky作用是创建git钩子,然后触发命令执行安装yarnaddhusky初始化npxhuskyinit会出现下面文件夹commitlint安装和使用安装commitlintyarnaddcommitlint安装校验规则库@commitlint/config-conventionalyarnadd@commitlint/co......
  • vue项目利用git commit 触发执行 eslint检查,使用husky 和 lint-staged
    lint-staged安装和使用说明lint-staged是一个插件,为了方便触发eslint,配置哪些文件触发eslintstylelint等安装yarnaddlint-staged创建.lintstagedrc在根目录{"*.vue":"eslint","*.ts":"eslint","*.tsx":"eslint&quo......
  • vscode文件分层时找不到eslint配置问题
    我的文件夹是这样的--root--server--webserver里用的是eslint5.16.0,没有任何问题web因为是vuter+eslint9.9.1,就各种报错,项目越写越难受,最后忍不住查了一下到底怎么配置新版的vscode+eslint版本:vscode:1.92.2eslint:9.9.1vscode工作区.vscode文件夹里加上一个文......
  • Lecture 02 Recap of CG Basics
    Lecture02RecapofCGBasicsGraphicsPipeline光栅化、深度测试、Blinn-Phong模型、纹理映射&插值OpenGL总结:每一个pass定义物体、相机、MVP定义帧缓冲区、输入输出纹理定义VertexShader/FragmentShader渲染其他的多趟pass如ShadowMapShadingLanguages......
  • LIN诊断(3)—— 传输层诊断协议(LINTP)
    ......
  • 超越传统:探索Visual Basic在操作系统插件开发的新境界
    标题:超越传统:探索VisualBasic在操作系统插件开发的新境界VisualBasic(VB),作为微软的老牌编程语言,以其简洁的语法和快速的开发能力在软件开发历史上占有一席之地。尽管VB并非现代操作系统插件或扩展开发的主流选择,但其在特定场景下仍具有一定的可行性。本文将探讨VisualBas......
  • 正则表达式:Visual Basic中的强大文本处理工具
    正则表达式:VisualBasic中的强大文本处理工具在软件开发中,文本处理是一项常见且关键的任务。正则表达式作为一种强大的文本模式匹配工具,能够用于执行各种复杂的字符串搜索、替换、验证等操作。VisualBasic(VB),作为一门流行的编程语言,提供了对正则表达式的支持。本文将详细介......
  • Visual Basic中的继承艺术:构建代码的层级之美
    标题:VisualBasic中的继承艺术:构建代码的层级之美在面向对象编程的殿堂中,继承是一种强大的机制,它允许新创建的类(子类)继承现有类(父类)的属性和方法。VisualBasic(VB.NET)作为.NET家族的一员,完美地支持了继承的概念。本文将深入探讨VB.NET中继承的工作原理,并通过详细的代码示例......
  • 深度学习-pytorch-basic-003
    1.环境配置1.1anconda配置环境condacreate-nDL_pytorchpython=3.11condaacticvateDL_pytorchcondadeactivatecondaenvlistcondaremove-nDL_pytorch--all1.2torchCPU环境配置pipinstalltorch==1.10.0-ihttps://pypi.tuna.tsinghua.edu.cn/simplecond......