soc验证 (UVM)
文章平均质量分 68
cy413026
这个作者很懒,什么都没留下…
展开
-
hardMacro的后防和后端处理
因为IOPTAH在PHY分析的时候是一条完整的path,但在subsys来看并不是完整的path,用了path margin就会在包含PHY IOPATH这一段的完整path上体现delay。说明后端根据PHY的lib吐出了这类IOPATH的delay,但是phy的gate_level仿真模型没有对应的specify语句。但基本情况下path margin是比vonder提供的IOPATH delay要大的,所以即使没有反标上,后防也没有问题。就是vonder最终提供的是GDS(设计版图)文件给后端。原创 2023-07-13 12:01:45 · 1076 阅读 · 0 评论 -
用verdi trace代码 auto trace和trace X
两个verdi同时打开同一份代码的不同仿真波形 可以在一个verdi波形窗口选择信号 拖拽到另一个verdi波形窗口,这样便于在两个波形窗口比较数据,这种比用rc文件交互快捷方便。打开trace的电路窗口之后 可以选信号和cell 右键可以查看更多操作,同时可以直接ctrl+4添加到波形。可以在波形窗口(右边的波形窗口而不是显示波形信号的地方)右键--》Temporal Flow View-特别是网表仿真比较好用。可以在代码选中信号右键--》Temporal Flow View--》Auto Trace。原创 2023-06-17 17:03:29 · 2871 阅读 · 0 评论 -
sdf与timingCheck和后仿真
sdf和 module 里面的specify--endspecify都可以对路径延时进行赋值和检查;HDL语言中的‘#()’也可以描述延时【叫做Distributed delays】,但不能检查timing。timing检查项可以包括 setup/hold/ recovery/ skew/ width period等。原创 2023-06-06 21:30:31 · 4137 阅读 · 0 评论 -
uvm的tlm设计分析(port/export/imp/analysis/fifo)
请参考:uvm设计分析——tlm原创 2022-02-11 18:10:16 · 346 阅读 · 0 评论 -
systemVerilog的typedef用法
1. 常用自定义类型typedef int WIDTH_TYPE2. 前置定义常用在要用的class还没有定义时,提前typedef一下1 typedef class B;//typedef B2 class A;3 B b;4 int xx;5 endclass6 7 class B;8 A a;9 logic tmp;10 endclass如上在定义class A时,使用了class B,但B还没有定义,可以在前面先 typede原创 2022-02-10 20:43:56 · 9538 阅读 · 1 评论 -
c++/systemVerilog在类中定义类自身问题
c++或systemVerilog这写面向对象编程的class中可以定义指向当前class的指针,但是不能定义当前class的成员变量1 class Screen{2 //Screen sc; //error, 'sc' uses undefined class 'Screen'3 //etc...4 Screen *sc1; //ok5 Screen &sc2; //ok6 7 //etc...8 };上述c++的cl原创 2022-02-10 18:03:08 · 368 阅读 · 0 评论 -
c++(systemVerilog)中的virtual funtion(task)的使用场景及实现原理
c++的virtual function实现原理和systemVerilog的virtual function/task实现很相似除了下面的一篇文章还可以参考【C++拾遗】 从内存布局看C++虚继承的实现原理https://blog.csdn.net/xiejingfa/article/details/48028491咱们知道,与C语言相比,C++在布局和存取时间上的额外开销主要是由虚函数(virtual function)机制和虚继承(virtual base class)机制引发的。在前面一转载 2022-01-27 21:00:00 · 1864 阅读 · 0 评论 -
UVM——phase objection
uvm中的task phase包含run_phase和12个run-time phase(也有称呼real-time phase)是并行执行的。主要常用的是run_phase和main_phase,如果uvm中12个run-time phase都没有定义,是可以在run_phase来完成消耗时间的task的。以下的文章转自https://east1203.github.io/2019/08/24/Verification/UVM/UVM%E2%80%94%E2%80%94phase%20object转载 2022-01-21 20:12:03 · 860 阅读 · 0 评论 -
在systemVerilog的task中等效always块
我们知道在task中是不能直接使用always块语句的,那么该如何在task中实现always的功能呢?下面分时序逻辑和组合逻辑两种情况分别说明。1.时序逻辑如下面代码所示:每一个forever begin-end之间相当于一个always块。fork join保证了所有的always之间的并行运行。task A(); fork forever begin @ (posedge clk); if(xxxx)原创 2021-09-15 20:09:57 · 2837 阅读 · 0 评论 -
vcs/urg 进行覆盖率coverage merge及部分merge到整体
目录1.vcs收coverage基本Option2.相同代码的merge3.部分merge到整体3.1 mapfile3.2 -map使用语法3.3合并的常见问题3.3.1 UCAPI-MAP-SHAPEMISMATCHcoverage相关的用户手册可以在本人的百度云盘中查看Coverage Technology User Guide.pdf还可以参考gsithxy的博文[VCS]Condition Coverage收不全的问题及解法该文给出了vcs收覆盖率的o...原创 2021-02-20 11:39:18 · 24536 阅读 · 14 评论 -
uvm_reg中test sequence 之 uvm_reg_bit_bash_seq
https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.1a/html/files/reg/sequences/uvm_reg_bit_bash_seq-svh.htmlThis section defines classes that test individual bits of the r...转载 2020-04-17 15:32:08 · 4931 阅读 · 0 评论 -
uvm_reg中test sequence 之 uvm_reg_hw_reset_seq
摘自https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.2/html/files/reg/sequences/uvm_reg_hw_reset_seq-svh.htmlTest the hard reset values of registersThe test sequence per...转载 2020-04-17 14:53:56 · 2440 阅读 · 0 评论 -
uvm methodology 方法介绍/uvm_reg及对应的方法get/update/mirror/write/read/write
1.uvm介绍纯英文资料1.1verification-methodology-reference1.2uvm_reg介绍2.uvm的常用方法及函数本节转自UVM——寄存器模型相关的一些函数0. 引言 在UVM支持的寄存器操作中,有get、update、mirror、write等等一些方法,在这里整理一下他们的用法。 寄存器模型中的寄存器值应该与DUT保持...转载 2020-04-16 11:50:51 · 6067 阅读 · 0 评论