自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

柒年

平等的24小时

  • 博客(13)
  • 资源 (6)
  • 收藏
  • 关注

原创 工厂机制(注册,创建,覆盖)

类库地图:地址

2020-12-27 18:01:45 1406 1

原创 参数化的类

目标:提高代码复用率。

2020-12-20 21:46:00 1548

原创 使用回调函数

前提在不修改原始类时,引入新的方法,就需要在父类定义方法时,预留回调函数入口,使得在继承的子类中填充回调函数,就可以完成对父类方法的修改。回调函数使用在随机化中用到的回调函数:pre_randomize,post_randomize,这两个函数本身预留出来,给用户自己填充,且在运行随机化randomize() 时,可被动运行。...

2020-12-14 23:27:44 125

原创 对象的拷贝方法

浅拷贝(shallow copy)声明句柄,创建对象,如果将p1句柄赋值给p2句柄,实际上创建的对象只有一个,指向这个句柄的对象有两个p1和p2packet p1, p2;p1=new();p2=p1;在创建p2对象时,从p1拷贝其成员变量,比如integer,string,句柄等,这种称之为对象浅拷贝,而不是简单的使用等号进行句柄拷贝。sv中对象的拷贝,无法通过等号来实现,等号实现是句柄得赋值,而不能拷贝对象中的变量。packet p1, p2;p1=new();p2=new() p1;

2020-12-13 22:46:42 1266 2

原创 使用虚方法

参考地址:类的继承虚方法的关键字:

2020-12-13 21:27:54 1454

原创 类型的转换

显式类型转换分为静态转换,和动态转换。静态转换:在转换的表达式前加上单引号,不对转换值做检查,属于强制转换,转换失败也不得而知。int a;string b="haha";a=int'(b); //将b静态转换成a$display("a(1) is %0d",a);结果:是转换成功了动态转换:使用系统函数,$cast(tgt,src)做转换,将src转换成tgt。在转换时系统会做检查。int a;string b="haha";$c

2020-12-12 22:47:50 1085

原创 覆盖率选项,覆盖率分析

covergroup选项提供不同的覆盖率选项,来计算覆盖率。单独列出每个covergroup实例的覆盖率一个covergroup可能会被多个地方例化使用,默认情况下sv会将所有的实例的覆盖率合并到一起计算。如果需要单独列出每个covergroup实例的覆盖率,需要以下设置覆盖率选项。covergroup cov; coverpoint tr.length; option.per_instance=1; //指定单独计算该覆盖率吧报告endgroup给covergroup传参,这些

2020-12-12 21:15:37 4201 1

原创 覆盖率收集

覆盖率类型覆盖率的两种指定形式:显式的: 直接通过SV来指定出的,如SVA,covergroup。隐式的: 在验证过程中,随"register move"就可以由simulator得到的,如代码覆盖率等。覆盖率类型:代码覆盖率—由仿真器直接提供,只能表示设计的冗余度,与spec关系不大。(toggle/expression/block)功能覆盖率—与spec比较来发现,design是否行为正确,需要按verification plan来比较进度。(assertion/covergroup)断言覆

2020-12-06 19:55:05 5869

原创 sv中ref 关键字

SV中增加了一种方式ref,指定为引用而不是复制。task display(string name, ref int q[$]); int val; forever begin wait(q.size()>); endendtask

2020-12-06 01:27:41 6776

原创 验证的方法

主要验证方法:

2020-12-06 01:21:05 1754

原创 uvm类库地图

uvm类库地图:可分为以下几个类型:

2020-12-06 01:20:35 1434

原创 sv线程通信

线程类:问题:线程之间如何通信?在model中,initial 和 always 块作为独立的子线程是通过信号的变化来触发,并且实现进程间的通信。在 sv中, 通常用initial开启父类线程,包括begin end, 以顺序方式执行,但是不消耗时间,fork join 以并行方式执行。initial父类线程可以有多个子线程块,父线程终止时,所有子线程终止,而子线程终止时,父线程可以继续。fork join线程的特点,并行执行其内部语句,当所有的语句执行完毕,退出该线程。fork join_any

2020-12-06 00:58:56 1962 2

原创 数据类型(七)复杂的数据类型

占坑

2020-12-05 15:37:33 610

sv中vip部分参考代码

sv中vip部分参考代码

2022-04-23

verilog语言.zip

verilog语言学习

2021-10-10

systemverilog语法练习

帮助新手快速掌握sv语言,特别适合新手用作练习使用,实验包括三个小实验,认真敲完代码,帮助新手巩固知识。

2020-11-28

移动通信系统频点规划和频率规划

移动通信系统频点规划和频率规划,全面学习通信规划,超全的通信规划信息,适合用来学习通信规划,文件信息全面,齐全,资料完整

2020-11-28

网易云解析

添加网易云音乐的地址,自动得到解析后的地址,用于插入到自己的网页中,博客中,qq空间音乐地址。

2018-06-29

开发测试指南

软件测试指南,最全面的软件测试开发技术文档,适合新手。

2018-06-19

空空如也

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

TA关注的人

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