SV学习
文章平均质量分 77
Ethan_WC
这个作者很懒,什么都没留下…
展开
-
SV中的深拷贝、浅拷贝与句柄复制
SV中的深拷贝、浅拷贝与句柄复制句柄复制只复制句柄,相当于两个句柄指向同一个对象,永远都只有一个对象。module tb;class trans1; int A = 1,B = 2; function FA(); endfunction endclass class trans2; int A1 = 3,B1 = 4; trans1 a = new(); // trans2 里边套一个trans1 function FB(); e原创 2022-02-18 09:30:08 · 1976 阅读 · 0 评论 -
DVT外部编辑器默认选择moselsim的解决方法
DVT外部编辑器默认选择moselsim的解决方法之前用过modelsim仿真的朋友,在用DVT插入External Buliders时,可能会像我一样,明明选择了Questa, 但是DVT却默认选择modelsim进行编译。在edit中也没找到类似选定编辑器路径的选项,头疼。–> 此处只记录最终解决方法:在系统环境变量中的Path 中将questa放在modelsim前面,否则会默认启动modelsim。(一定要是系统环境变量,不是用户环境变量)将questa的顺序排在modelsim的原创 2022-02-17 22:31:28 · 303 阅读 · 0 评论 -
task形参类型 inout 和 ref 的区别
task形参类型 inout 和 ref 的区别原文链接 https://stackoverflow.com/q/31017629/13685812通常来说,task或者function的形参声明为input时,input类型的形参仅仅是得到了一份拷贝;当task或者function的形参声明为output时,output类型的形参会在return的时候将此形参的拷贝复制给接收对象。而inout类型的形参,则会在被调用时得到一份拷贝,并在return的时候将形参的拷贝复制给接收对象。==》 以上都原创 2022-02-15 16:28:42 · 1618 阅读 · 0 评论 -
system verilog学习记录3--线程及通信和覆盖率
system verilog学习记录3–线程及其通信和覆盖率一、线程及其通信fork…joinfork join: 等待所有线程都执行完成才会进行下一步;fork join_any: 只要有一个结束了,就会跳出进行下一步,其他的还会继续进行;fork join_none: 相当于点个火,不等待任何一个,点个火后直接进行下一步,里边的几个线程会继续同步运行。注意:还没执行fork中的任何代码呢,就直接退出了。先执行join_none后面的这一行代码,再执行fork里边的代码;1) 如果结束原创 2022-02-10 22:30:56 · 740 阅读 · 0 评论 -
sv lab4学习记录
sv lab4学习记录框架图这个mcdf interfance 为什么存在?因为对于chnl_intf, reg_intf, fmt_intf, arb_intf, 他们都是直接和mcdf_intf连接的。有时候我想监测内部的信号,我会把内部的信号直接先交给mcdf_intf。而mcdf_intf又可以被验证环境中的任何一个组件拿到。比方说checker可以通过mcdf_intf监测到chal, reg, formatter,的信号,间接的可以监测到一些关键的信号。这样我们以前的那些黑盒的原创 2022-02-10 00:11:05 · 1158 阅读 · 2 评论 -
sv lab3学习记录
sv la3学习记录#==================================================================================lab_tb11)generator里创建了两个maibox用来握手。① 在generator类中,先将randomize产生的随机数放到 req_mb的mailbox中(发送给initial),然后一直在这里等rsp_mb的get② 在initial类中,复位后就一直get等待req_mb的数,只要有数来原创 2022-01-30 22:26:48 · 751 阅读 · 1 评论 -
sv lab2学习记录
sv la2学习记录包的数据解析假如设计有bug,数据经过arbit到format出来,数据可能会缺失或者被打乱了。此时如果前面输入数据的内容没有将其变得有规律,就会导致输出的数据不知道从哪里来的,为什么数据不完整,难以回溯到根上,也就很难去调试。fork join_none 三个同时执行,点火了之后立即跳出去执行下面的。不等他们中的任意一个结束。但是要注意fork join_none点火之后要注意在某个点要关掉它。 disable ****注意这个很容易错。c原创 2022-01-30 17:18:03 · 438 阅读 · 0 评论 -
system verilog学习记录2--类和随机约束
system verilog学习记录2–类和随机约束类类的特点:封装,继承,多态。对象创建的初始化顺序,(有super.new())1). 子类实例在初始化的时候要先调用父类的new();2). 父类new()完成后,子类成员变量初始化;3). 最后才会执行子类的new()函数中的剩余代码。父类和子类如果出现两个同名的成员方法?默认没有任何关系但是如果子类中没有写该同名方法,子类默认直接继承父类的方法。但是子类中一旦写了和父类同名的方法,则需要用super来继承该方法,否则就是两原创 2022-01-30 16:51:04 · 1460 阅读 · 0 评论 -
system verilog学习记录1-- 基础
system verilog学习记录1变量类型四值逻辑是硬件的概念 (v中的reg和wire --> sv中的logic)二值逻辑是软件的概念 (bit)初学者不用理会这么多数据类型,sv中统一只用bit/logic + 位宽 + 寄存器名称即可。注意: 应该尽量避免对两种不同类型的变量进行操作。数组1)定宽数组A. 多维数组// 16个 int (32位) 的数int lo_hi[16]; // 等效于int lo_hi[0:15];int lo_hi[0:1原创 2022-01-29 00:12:38 · 855 阅读 · 0 评论