
SystemVerilog
文章平均质量分 85
llxxyy507
这个作者很懒,什么都没留下…
展开
-
SystemVerilog学习笔记5 ---《SV Schedule》
1. 为什么要了解SV Scheduleverilog是一个硬件描述语言,而硬件在现实中都是并行执行的,所以verilog描述的组合电路和时序电路都是并行执行的。而仿真器作为运行在CPU上的软件,只是按照SV LRM的仿真调度算法,开始仿真后,将仿真时间串行的一步步的向前推进。因此,实际DUT中同时发生的动作由模拟器建模为一组有序动作,依次执行。如果不能很好地撰写RTL代码和TestBench,那么仿真可能得到不匹配的结果:即DUT为正确,但是仿真却报告错误;或者DUT为错误,但是仿真却报告正确。原创 2022-02-27 14:59:09 · 1148 阅读 · 0 评论 -
SystemVerilog学习笔记4 ---《变量范围、lifetime、static和automatic》
先明确下基本的概念block:块。一些关键字组成的一个范围区间,就叫做块。如 module … endmodue / task … endtask / begin … end / fork … joinstatic lifetime:存活于整个仿真过程1. 变量的范围(scope )module、interface、program、checker都提供了一个本地(local)的命名空间用于变量的声明。不同 block中命名同名的变量并不会冲突。通过在building block中import原创 2022-02-20 01:14:17 · 1291 阅读 · 0 评论 -
SystemVerilog学习笔记3 ---《函数和任务》
1、function和task简介Systemverilog和Verilog中的 function 和 task有一些区别。1.1 verilog中task可以消耗时间,而function不能消耗时间。function不能包含一些消耗时间的语句,例如:#100n; @ ; wait()等fucntion不能调用taskverilog中的function必须要有返回值,并且返回值必须被使用,例如用到赋值语句中。task没有返回值1.2 SystemVerilog中task可以消耗时间,原创 2022-02-17 02:57:50 · 1914 阅读 · 0 评论 -
SystemVerilog学习笔记2 ---《多维数组的遍历》
一维数组遍历数组遍历一遍使用foreach或者使用for循环foreachint array[3] = '{9, 5, 8};foreach(array[i]) $display("array[%0d] = %d", i, array[i]);foreach循环相当于从数组的宽度的左端点,向数组宽度的右端点循环。...原创 2022-01-25 00:56:11 · 3037 阅读 · 0 评论 -
SystemVerilog学习笔记1 ---《数据类型》
数据类型logicverilog中有两种基本的数据类型:变量和线网(net)。都为4状态(0、1、X、Z)SystemVerilog中将Verilog中的reg进行了一定改进,使其除了作为一个变量外,还可以被连续赋值、门单元和模块所驱动。任何可以使用了reg和wire的地方都可以使用logic,除了存在多个结构性驱动场景时,例如,对双向总线建模时,应该申明线网类型(例如:wire),不能使用logic。logic为4状态类型。类型整理表类型名位宽有无符号状态默认值w原创 2022-01-25 00:52:27 · 2438 阅读 · 1 评论 -
SystemVerilog——lab1学习笔记
最近在学习SV这门语言,做了一下Synopsys公司的lab(ces_svtb_2006.06-SP1.tgz),写一点自己的学习笔记。 Synopsys公司的这个lab验证的DUT为一个router。介绍如下: 看了下router.v这个code,发现它还有一个端口ouput [15:0] busy_n ,在这个图上面没有画出来。我写的lab1的SV ...原创 2019-07-26 20:57:15 · 2167 阅读 · 0 评论 -
SV中线程分析(fork..join,fork...join_any,fork...join_none)
发现了一点新的东西,加深了我对这几个线程的理解,写点东西记录一下。1,并行的实际执行顺序 大家都知道fork...join里面是并行执行的,但计算机执行语句肯定是有先后顺序的,具体那些并行的语句是怎么执行的呢? 这要看具体使用的SV 仿真器是怎么操作的。虽然fork...join里面是并行的,但VCS会先执行并行的写在前面的语句。 这个program中f...原创 2019-07-26 22:10:34 · 12244 阅读 · 2 评论 -
SystemVerilog——lab2学习笔记
lab2需要写drive,是在test中写。 思路:因为所有[15:0]端口都是独立的,所以选择一个想要的端口进行驱动(sa,一个 bit)。随机生成2--4个$urandom,塞入[7:0] payload [$] 中。然后把队列中的每一位数字的每一个bit 位依次赋值给 din 端口,进行驱动。驱动期间,保持对应位数的vliad_n 为低,frame_n 也是一直为低,直到...原创 2019-07-27 20:13:38 · 669 阅读 · 0 评论 -
SystemVerilog——Polymorphism(多态)的理解
SystemVerilog作为一门面向对象的语言,和其他面向对象的语言一样,特性就是:封装,继承,多态。 尝试着去理解多态,网上有说:多态指调用相同的名字和方法,得到的结果是不同的。(from java)在SV中,If an instance sends a stimulus to another instance, but does not have to be aw...原创 2019-08-05 19:45:57 · 8171 阅读 · 4 评论