- 博客(6)
- 收藏
- 关注
原创 system verilog基础知识总结与复习(线程及线程间的通信)
一、什么是线程? 线程是指程序能够独立运行的最小单位,在verilog中有两种形式,分别为begin end 和fork join,SV在这基础上新增了两种类型,为fork join_any和fork join_none。二、fork join、fork join_any和fork join_none的区别?fork join:块内语句并行执行,且需要每一个语句块都执行完毕才能继续往下执行。fork join_any:块内语句并行执行,其中有任...
2021-09-29 21:32:18
821
原创 system verilog基础知识总结与复习(随机化)
一、为什么要引入随机化? 随着验证规模越来越大,定向测试已经不能满足我们所需的测试需求,而随机化可以帮助我们生成更多激励用于测试,更重要的是随机化测试可以检测出一些我们都没有想到的缺陷。二、随机化的种类及约束 1、布尔表达式 class TEST ; rand bit [31:0] a ; rand bit [63:0] b; rand bit [...
2021-09-28 18:43:54
1000
原创 system verilog基础知识总结与复习(SV中的类)
四、SV中的类1、SV中OOP的术语及定义 类(class):类是包含变量和子程序的基本构建块,在verilog中对应的是module。 对象(object):类的实例。 句柄(handle):指向对象的指针。句柄就像对象的一个地址,通过改地址访问对象。 方法(method):任务或函数中操作变量的程序性代码。2、一个类包含哪些东西? 怎么创建并使用一个类? 一个普通的类包含属性(成员变量)和方法,创建一个类可...
2021-09-27 22:21:51
6926
6
原创 system verilog基础知识总结与复习(连接设计和测试平台)
本文章大多以提问的形式给出问题,并尝试解答,主要目的是为了帮助自己复习sv基础知识,不足之处还请指正,以便共同学习!三、连接设计与设计平台1、SV中为什么要引入interface,其优势在于什么? 在DUT信号多而复杂时,连接异常复杂,使用传统的端口连接非常容易出错,且增加一个信号需要在许多地方进行改动,不便于后期维护。而interface的出现可以使得众多信号在interface中声明一次就可以了,大大减少了端口之间的直接连接,同时如果需要增加一组新的信号,只需要...
2021-09-25 13:59:50
2085
3
原创 system verilog基础知识总结与复习(过程块与子程序)
本文章大多以提问的形式给出问题,并尝试解答,主要目的是为了帮助自己复习sv基础知识,不足之处还请指正,以便共同学习!二、过程快与子程序1、task中continue和break的区别? 如如下代码及仿真结果所示: continue: 表示终止本轮循环,进入下一轮循环 break: 跳出整个循环2、task与function的区别? function: 不可内置耗时语句 ...
2021-09-23 23:53:17
827
原创 system verilog基础知识总结与复习(数组、队列、数据结构)
本文章大多以提问的形式给出问题,并尝试解答,主要目的是为了帮助自己复习sv基础知识,不足之处还请指正,以便共同学习!一、数组、队列、数据结构1.sv新增的数据类型logic,与wire,reg相比它有什么特点? wire: 表示物理器件之间的连线,不存储值,常用于assign引导的连续赋值语句。 reg:表示存储结构,可以短暂存储数据直到下一个变化的值到来,常用于always表示的时序逻辑里面。(如果用always(*)的方式来表示组合逻辑,也需要...
2021-09-23 18:25:52
1779
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人