1 clocking…endclocking块 clocking块是SV新feature,主要是为了更好解决testbench和DUT之间的timing和同步建模的问题,可以使user基于clock cycle在更高的抽象层次上写testbench(如“## 3”,表示三个clock)。clocking只能在module/interface/checker/program中声明,不能在function/task/package中。clocking块是声明和例化一体的(类似always块没有例化语句)。clocking块是对所在的module/…
1. 为什么要理解scheduler? SystemVerilog是HDVL语言,相较与Verilog,除了面向HW design应用,也为了提高verif的效率。所以其仿真调度算法在向下兼容Verilog的同时,增加了不少新的‘Time region’,以便更好的支持program块等针对验证需求的新特性。 SV不同于C/C++等软件语言,为了对硬件进行仿真建模,所以有很多并行的process,而仿真器作为运行在CPU上的软件,只是按照SV LRM的仿真调度算法,开始仿真后,将仿真时间串行的一步步的向前推进。由于SV LRM并没有完全详细的规定并行的p…
1. 整数型字面常量 1.1 整数型字面常量表示方法有两种: 数字直接表示:会被系统识别为32bit宽的有符号数。 指定size和进制,如12‘hDBA, 有可选的宽度,(’), s/S有符号数指示,和数字组成。 默认是无符号数,只有含s/s符号数指示时被识别为有符号数, 如12‘shDBA. 1.2 负数是二进制补码的形式表示 1.3 整数型字面常量的补齐和截断,padded to left, truncated: 对于无符号数,如果向size小的数赋值,则需要将左侧多余的bit截断后赋值。如果向size大的数赋值,则将其左侧填0后赋值,但如果其左侧…
学习官方培训材料:SpyGlass_CDC_Training_Slides 备注:写下面笔记也是挂一漏万,只能cover 几个常用的rule。想了解每一个rule的详细情况,除了研读这个PPT,最好还是查官方文档,当然会耗费很多时间,但对项目负责做SpyGlass Lint/CDC检查的人,还是必不可少的。我现在还是票友的角色,只是为了处理所负责模块的violation。
SpyGlass工具简介 目前包含:SpyGlass Lint, CDC, RDC, DFT ADV, Power. 是业界RTL Signoff 的重要工具. SpyGlass 的一些基本概念 1.Rule: 是SpyGlass 进行RTL分析的最小单位. 2.Goal: 是一系列相关Rule的集合,组合起来完成RTL分析的某个特定任务. user可以用GuideWare定义好的Goal, 也可根据工程项目要求来选择一系列rule的集合形成自定义Goal. GUI里面点Goal的button来选择设定, 当然也可在Prj file 里定…
1. VCS/VCSMX 一般仿真步骤 VCS仿真可以分成两步法或三步法, 对Mix language, 必须用三步法。仿真前要配置好synopsys_sim.setup文件,里边有lib mapping等信息。设置环境变量’setenv SYNOPSYS_SIM_SETUP /xxx/xxx/synopsys_sim.setup’. VCS对应的waveform工具有DVE和Verdi, DVE因为是原生的,所以VCS对DVE非常友好。但DVE已经过时了,其对uvm等新feature支持的不好。Verdi是Debussy公司的产…