自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (3)
  • 收藏
  • 关注

原创 UVM寄存器模型

UVM寄存器模型详解

2023-02-12 13:12:51 795

原创 UVM中的sequence

当只施加一种激励时,上述方法是可行的。但是如果需要对DUT施加不同的激励时,就需要对上述的main_phase进行修改。##1. sequence的由来。

2023-02-12 10:16:26 344

原创 UVM验证-objection机制

1、objection机制objection字面的意思就是反对、异议,主要面向于task phase。在验证平台中,可以通过drop_objection来通知系统可以关闭验证平台。例如:task driver::main_phase(uvm_phase phase);phase.raise_objection(this);//检测到有objection被提起,该phase中的代码被执行#100;phase.drop_objection(this);//撤销objectionendtasktas

2022-02-14 16:17:57 1399 1

原创 UVM验证-覆盖率

1、代码覆盖率行覆盖率(Line Coverage):衡量多少行代码被执行过;有限状态机覆盖率(FSM Coverage):衡量状态机中哪些状态和状态转换被执行过;翻转覆盖率(Toggle Coverage):衡量哪些单bit信号0/1翻转被执行过;分支覆盖率(Branch Coverage),也称路径覆盖率(Path Coverage):衡量哪些if、case、for、forever、while等语句分支被执行过;条件覆盖率(Condition Coverage):衡量哪些条件中逻辑操作数被执行

2022-02-08 10:46:38 5708

原创 UVM 通信方式

1、UVM中的analysis 端口包含有analysis_port和analysis_export两种端口,它们与port、export和imp的主要区别在于:第一,默认情况下,analysis_port(analysis_export)可以连接多个IMP,而put和get系列端口连接一个IMP(除非在例化时修改连接数量)。第二,analysis_port和analysis_export没有阻塞与非阻塞之分,而put和get系列端口有阻塞与非阻塞之分。第三,put系列端口有put、try_put和

2022-01-30 11:48:57 3454

原创 UVM之TLM通信中的PORT、EXPORT和IMP

LTM通信有三种常用的操作:put操作、get操作和transport操作。

2022-01-30 09:13:55 5158

原创 System Verilog功能覆盖率的简单例子

1、定义类class Transaction;rand bit[31:0] data;rand bit[7:0] addr;endclass2、定义覆盖组covergroup Coovoint;coverpoint tr.addr;coverpoint tr.data;endgroup3、收集覆盖率Transaction tr;CovPoint ck;tr=new();ck=new(); //实例化覆盖组repeat(16)beginassert(tr.randomize);

2022-01-15 09:24:01 327 2

原创 UVM验证之config_db机制

1、set与get函数参数介绍config_db机制用于UVM验证平台之间的参数传递。set函数为寄信,get函数为收信,它们通常成对出现。比如:在某个用例的build_phase中使用如下方式寄信:uvm_config_db#(int)::set(this,“env.agt.driver”,“para”,10);set函数中,第一个参数和第二个参数组成目标路径,与此目标路径相同的目标才会成功收信。第一个参数必须是一个uvm_component实例的指针,第二个参数是相对此实例的路径。第三个参数表示一

2022-01-03 22:47:36 1309

原创 System Verilog功能覆盖率-覆盖率类型

1、代码覆盖率这种方式主要包括行覆盖率、路径覆盖率、翻转覆盖率、有限状态机覆盖率。其中,行覆盖率:衡量多少行代码被执行过;路径覆盖率:衡量穿过代码和表达式的路径有多少被执行过;翻转覆盖率:衡量哪些单bit变量的值为0或者1;有限状态机覆盖率:衡量状态机中哪些状态和状态转换已经被执行过。...

2021-12-29 21:31:09 1744

原创 System Verilog验证之数据类型

1、逻辑(logic)类型logic不同于reg和wire类型,它不仅可以作为一个变量,还可以被连续赋值、门单元和模块所驱动,但是logic类型只能有一个驱动。2、双状态数据类型System Verilog双状态数据类型有bit(无符号)、byte(有符号)、shortint(有符号)、int(有符号)、longint(有符号)。值得注意的是,当将双状态变量连接到DUT时,DUT输出的X或Z值,会被转换成双状态值,从而导致变量未知值的传播而未被测试代码检测出来。这里推荐使用($ isunknown)

2021-12-28 23:52:08 252

原创 UVM验证之field automation机制

1、field automation机制相关的宏uvm_field系列宏有如下几种:uvm_field_int(ARG,FLAG)uvm_field_real(ARG,FLAG)uvm_field_enum(T,ARG,FLAG)uvm_field_object(ARG,FLAG)uvm_field_event(ARG,FLAG)uvm_field_string(ARG,FLAG)上述宏分别用于注册整数、实数、枚举类型、uvm_object类型、事件、及字符串类型。...

2021-12-27 15:24:09 3465

原创 UVM验证之phase机制

1、task phase与function phase根据是否消耗仿真时间,uvm phase分为两大类:一类是function phase

2021-12-26 23:20:29 2862

原创 UVM验证:DPI-C引用外部C函数编译问题

在SV文件中通过import “DPI-C” function c_function(para0,para1,…,paran)声明外部C函数时,如果C函数参数的方向没有写完整,编译时会报错。正确的做法是:import “DPI-C” function c_function(input para0,input para1,…,output paran);切记参数方向一定要写完整。...

2021-12-22 13:20:44 1122

原创 UVM验证:uvm_do_on_with函数随机化约束问题及解决方案

比如:为了增强代码的可读性,我们通常会将顶层和底层的seq变量定义为相同名称,在顶层top_vseq中启动底层sub_seq时,'uvm_do_on_with(sub_seq,{a == a});这个约束是无法生效的。1、约束不生效的原因从编译器的角度出发,它不知道两个变量a有什么不同,并且会把它做为sub_seq作用域中的两个相同变量,这就导致约束失效。2、解决方案将顶层变量和底层变量定义成不一样的名称,比如:顶层变量定义为a,底层变量定义为rand_a,然后执行’uvm_do_on_with(s

2021-12-22 13:10:08 6008

原创 system verilog验证(二)之约束

随机化约束,顾名思义就是让被随机的变量得到期望的数值。比如: 定义了一个随机化类rand_class rand class rand bit[7:0]a; randc bit[15:0]b; endclass rand_class rand_class_r; 不加任何约束的话,执行rand_class_r.randomize()之后,a的值范围为0~255,b的值范围为0~65535。如果我们想要得到a的值...

2021-12-21 21:30:31 296

原创 system verilog验证(一)随机化

system verilog中的随机激励一般以类为单位进行随机产生,该类包含一个或多个随机变量,并且随机变量必须使用rand或者randc修饰符进行修饰。建立好带有随机变量的类之后,通过调用randomize()函数即可完成随机。下面通过一个简单的例子进行说明。 1、定义随机类 class Case_class; rand bit[31:0]a; randc bit[7:0]b; endclass 2、调用randomize...

2021-12-19 22:50:39 446

仿真器驱动SEED-XDS560Plus Emulator for CCS3.x

仿真器驱动SEED-XDS560Plus Emulator for CCS3.x

2022-05-19

CCS3.3补丁SR12_CCS_v3.3_SR_3.3.82.13.exe

CCS3.3补丁SR12_CCS_v3.3_SR_3.3.82.13.exe

2022-05-18

ccs3.3补丁C2000CodeGenerationTools5_0_2.exe

ccs3.3补丁C2000CodeGenerationTools5_0_2.exe

2022-05-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除