- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 System Verilog----多态是什么
多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为,父类引用变量可以指向子类对象;要在继承中构成多态有两个条件:必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写虚函数的重写:派生类中有一个和基类完全相同的虚函数,则子类的虚函数重写了基类的虚函数,多态的定义与使用格式:定义格式: 父类类型 变量名=new 子类类型();多态是同一个行为具有不同的表现形式或形态的能力;多态就是同一个接口,使用不同的实例而执行不同的操作;
2024-07-22 21:55:54
890
原创 System Verilog覆盖率简介
覆盖组的触发:这个过程可以直接使用sample函数来完成,或者在covergroup定义中采用阻塞表达式,阻塞表达式可以使用wait或者@来实现在信号或者事件上的阻塞。覆盖组可以在程序、模块或类里面定义,他可以采样任意的可见的变量;在sv中,覆盖组应该定义在适当的抽象层次上,一个覆盖组必须在实例化后才可以用来收集数据。=>:翻转状况,0=>1 是否覆盖信号由0到1的翻转,任何x z?自动创建仓,个数一般为2^N,N为位宽,最大个数缺省为64,超出后会平均分配到各个仓。使用断言触发的覆盖组。
2024-07-22 21:53:50
293
原创 UVM细小知识点梳理(一)
run_testrun_test语句会自动的创建一个传入类名的实例,并且自动调用其main_phase。根据类名创建一个类的实例,这是uvm_component_utils宏所带来的结效果,只有在类定义的时候声明了这个宏,才能使用这个功能。在UVM验证平台中,只要一个类使用uvm_component_utils注册且此例被实例化了,那么这个类的main_phase就会被自动的调用。UVM通过run_test语句实例化了一个脱离了top_tb层次结构的实例,建立了名为uvm_test_top的一个新的
2024-07-22 21:49:39
347
1
原创 System Verilog中的OOP
System Verilog中的OOP文章目录System Verilog中的OOP前言1、定制构造函数2、对象的解除分配:3、静态变量和全局变量4、作用域规则5、动态对象6、对象的复制7、公有和私有8前言super函数:扩展类中可以通过super前缀调用基类中的函数可以调用上一层类的成员,但是SV不允许使用类似super.super.new的方式进行多层调用将类中的子程序定义成虚拟的,这样就可以在扩展类中重新定义,这一点适用于所有的任务和函数,除了new函数属性:OOP中类的变量原始类
2024-07-22 21:48:45
853
原创 System Verilog 约束技巧
文章目录System Verilog的约束与随机约束System Verilog的约束与随机约束简单表达式:一个表达式中最多只能使用一个关系操作符,约束块里只能包含表达式,所以在约束块里不能进行赋值。权重分布:distsrc dist {0:40,[1:3]:=60}; //权重和不用等于100,值和权重可以是常数或者变量集合(set)和insidec inside {[lo:hi]} ; c inside {[$:4],[20:$]} //可以使用$取位宽范围内的最大或者最
2021-07-23 22:52:12
3073
2
原创 python脚本快速入门
文章目录快速python script入门python基础控制流函数列表字典和结构化数据字符串操作模式匹配与正则表达式读写文件组织文件快速python script入门python基础整型int 浮点型float 字符串 strs字符串连接 ‘a’ + ‘b’ 字符串复制 ‘a’*5整除 // 指数 **print(); 可以传入整型值或字符串input();获取用户输入,返回字符串len() : 返回字符串长度; str()、int()、float()转换为字符串、int 、floa
2021-07-18 22:34:25
3410
2
原创 SystemVerilog------线程的管理
索引前言一、线程的使用1.1、线程的创建1.1.1、fork...join1.1.2、fork...join_none1.1.3、fork...join_any1.1、线程中的自动变量:1.2、等待子线程:1.3、线程间共享变量1.4、停止线程1.4.1、多个线程的停止1.4.2、单个线程的停止二、线程间通信2.1 事件2.读入数据总结前言本文主要介绍System Verilog中的线程控制以及线程间通信。一、线程的使用verilog对语句有两种分组方式,使用begin end或者fork j
2021-04-21 15:20:18
536
原创 UVM入门系列(四)----通过uvm_gen脚本快速搭建一般验证平台(下)
UVM入门系列(四)----通过uvm_gen脚本快速搭建一般验证平台(下)目录UVM入门系列(四)----通过uvm_gen脚本快速搭建一般验证平台(下)前言1、reference model2、scoreboard3、function coverage总结前言本篇博文继续之前博文的内容对验证平台进行补全,之前博文内容链接:UVM入门系列(一)----通过uvm_gen脚本快速搭建一般验证平台(上)UVM入门系列(三)----通过uvm_gen脚本快速搭建一般验证平台(中)1、refer
2021-03-11 20:36:00
1425
13
原创 UVM入门系列(三)----通过uvm_gen脚本快速搭建一般验证平台(中)
UVM入门系列(一)----通过uvm_gen脚本快速搭建一般验证平台(上)目录UVM入门系列(一)----通过uvm_gen脚本快速搭建一般验证平台(上)前言一、reference model二、scoreboard总结前言本篇博文继续之前博文的内容对验证平台进行补全一、reference model二、scoreboard总结至本篇博文为止,本次dut的验证平台已经基本完成,后续会继续更新功能覆盖率的添加和收集。...
2021-03-10 19:39:03
1348
原创 UVM入门系列(二)----VCS仿真脚本的使用
UVM入门系列(二)----VCS仿真脚本的使用本篇博文的内容对上一博文的内容进行初步仿真。文章目录UVM入门系列(二)----VCS仿真脚本的使用前言一、rtllist.f?二、vcs编译三、仿真四、查看波形总结前言本篇博文的内容对上一博文的内容进行初步仿真。一、rtllist.f?二、vcs编译三、仿真四、查看波形总结本博文介绍了使用vcs进行仿真的脚本,后续会继续更新回归仿真的脚本,以及覆盖率的合并和查看...
2021-03-10 15:08:20
3424
原创 UVM入门系列(一)----通过uvm_gen脚本快速搭建一般验证平台(上)
UVM入门系列----通过uvm_gen脚本快速搭建一般验证平台(一)索引UVM入门系列----通过uvm_gen脚本快速搭建一般验证平台(一)序一、uvm_gen脚本二、代码的补全1.interface1.1.i_agent_if.sv(verf/tb/agent/i)1.2.o_agent_if.sv(verf/tb/agent/o)2.i_seq_item.sv(/verf/tb/agent/i)3.add_tb.sv4.i_driver(verf/tb/agent/i)5.monitor5.1.i
2021-03-09 16:59:36
4212
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人