SV知识点
簡時光℃
这个作者很懒,什么都没留下…
展开
-
SV之约束
http://bbs.eetop.cn/thread-614300-1-1.htmlsystemverilog的constraint–如何约束32位数据的所有位相加为11、直观的方法:hwdata[0]+hwdata[1]+…+hwdata[31] == 1; 2、使用系统函数:$countones(hwdata) == 1;constraint data_cons {$onehot(hwdata) == 1 'b1 ;}或者constraint data_cons {$count原创 2020-09-12 23:25:09 · 1996 阅读 · 0 评论 -
systemVerilog:继承与多态
我在学习这门语言的时候,每每碰到一个新的名词,都想问一句为什么会出现这样的概念?换句话说就是他有什么功能?继承与多态:在验证过程中,往测试平台中添加新的测试激励很平常的事,这样的话就需要对原来的测试平台进行改进,有的时候需要修改原来的代码甚至可能修改一些数据结构,这个过程中可能会导致在原来的验证平台中引入意外的错误。那么为了保证原有平台或数据结构不变,通过对已经有的基类进行引申或者扩展,从而完善整个验证平台。从基类做扩展并产生新的子类的过程叫类的派生,当一个类被扩展并创建之后,该派生类就继承了其基类的转载 2020-08-23 15:10:12 · 3511 阅读 · 1 评论 -
SV中,fork-join,fork-join_any、fork-join_none的理解
文章目录fork join的用法fork join none的坑1. 回忆下fork-join_none2. fork-join_none翻车现场3. 再认识下for循环4. 怎么防止它的翻车disable fork用法fork join的用法我们早在学习Verilog语言时就学过:相对于begin-end顺序执行的语句块,还存在fork-join并行执行的语句块。这些知识用起来已经很顺手了,但是当学习到SystemVerilog语言的时候,突然告诉你:其实fork-join还有两个失散多年的亲兄转载 2020-08-22 22:20:48 · 22927 阅读 · 7 评论 -
SV之静态变量
原创 2020-08-22 16:34:04 · 1056 阅读 · 0 评论 -
任务与函数的应用——function and task
文章目录一、任务与函数的区别二、子程序参数三、子程序返回四、automactic与static一、任务与函数的区别函数function任务task...转载 2020-08-22 10:19:33 · 351 阅读 · 0 评论 -
System Verilog ref参数的理解
ystemVerilog提供了一个ref关键字作为函数参数的前缀。当使用ref时,表明参数是使用引用传递,'ref’语法类似C++中的引用。有两种情况下使用’ref’做参数比较有意义:第一种情况:由于函数只能有一个返回值(不考虑传统Verilog上的input/output参数端口声明),任务没有返回值。当函数需要返回多个值或者任务需要返回一个以上值的时候,通过引用传递就用得上。第二种情况是运行效率的考虑:当大量的数据需要作为参数传递的时候,值传递效率很低。所有的数据需要在每次函数调用的时候被复制。如原创 2020-08-22 09:55:00 · 13068 阅读 · 5 评论 -
SV语言——1.数据类型(变量类型、数组、队列、结构体、枚举类型、字符串)
文章目录一、变量类型——四值变量与二值变量二、固定数组——非压缩数组与压缩数组2.1.非压缩数组2.2.压缩数组三、动态数组四、队列五、联合数组六、数组方法6.1...转载 2020-08-22 07:46:05 · 9845 阅读 · 1 评论 -
fork-join挺好用的了,fork-join_any、fork-join_none有什么用?
我们早在学习Verilog语言时就学过:相对于begin-end顺序执行的语句块,还存在fork-join并行执行的语句块。这些知识用起来已经很顺手了,但是当学习到SystemVerilog语言的时候,突然告诉你:其实fork-join还有两个失散多年的亲兄弟活着!那就是fork-join_any和fork-join_none!!!这三个兄弟虽然长的比较像,但是其实性格是不一样的!他们的主要性格区别是他们对待称为“线程”的小朋友的态度上。“线程”小朋友是轻量级的“进程”,是程序调度的基本单位。假如某一时段转载 2020-08-23 15:12:25 · 1899 阅读 · 0 评论 -
Systemverilog的一个牛人总结
10#数据类型合并数组和非合并数组合并数组:存储方式是连续的,中间没有闲置空间。例如,32bit的寄存器,可以看成是4个8bit的数据,或者也可以看成是1个32bit的数据。表示方法:数组大小和位,必须在变量名前指定,数组大小必须是[msb:lsb]Bit[3:0] [7:0] bytes;二维数组和合并数组识别:合并数组: bit [3:0] [7:0] arrys; 大小在变量名前面放得,且降序二维数组: int arrays[0:7] [0:3] ; 大小在变量名后面放得,可降序可转载 2020-07-01 07:08:28 · 1247 阅读 · 1 评论