数字验证
first blood
这个作者很懒,什么都没留下…
展开
-
sv平台如何导入写好的c/c++ reference model
sv平台如何导入写好的c/c++ reference model1、将c/c++的reference model编译链接成动态链接库;2、将动态链接库通过脚本加载进sv的testbench中;3、通过dpi-c调用c/c++中的函数;4、若为c++、systemC的reference model还需要在model的函数前加extern “C” ,将以C的风格编译函数;(注意若model中的函数的输入输出有c++特有的风格,则需要将函数以完全c的风格封装起来,即返回值、参数都是c中的,然后在c的封装原创 2021-11-18 23:38:52 · 1368 阅读 · 1 评论 -
sv中rand与randc的区别:
rand与randc的区别:rand每次随机的概率都一样,类似于掷骰子;randc每次随机都不重复,类似于发牌;原创 2021-10-25 12:03:55 · 1674 阅读 · 0 评论 -
SV如何创建三维动态数组并且随机化
SV如何创建三维动态数组并且随机化声明:rand int a[][][];创建:(在post_randomize函数中进行实例化)int temp;a=new[len1];foreach(a[i])a[i]=new[len2];foreach(a[i,j])a[i][j]=new[len3];foreach(a[i,j,k])beginassert(std::randomize(temp));a[i,j,k]=temp;end...原创 2021-10-21 18:03:47 · 1073 阅读 · 0 评论 -
sv中两个不同的16bit数据为一组,一共有九组这样的数据,那么在随机化时如何表示?
两个不同的16bit数据为一组,一共有九组这样的数据,那么在随机化时如何表示?法一:定义定宽数组rand bit[15:0] a[18];缺点:这样表示不是很直观,索引时需要进行计算获得索引值;法二:定义合并数组rand bit[1:0][15:0] a[9];优点:这样结构更加直观,而且按bit位存放更加密集;法三:定义结构体或类,将数据打包;typedef struct{rand bit[15:0] a;rand bit[15:0] b;}typec;rand typec c[原创 2021-10-21 17:50:52 · 189 阅读 · 0 评论 -
sv/uvm的package、import、‘include的使用:
sv/uvm的原创 2021-10-14 19:23:02 · 4383 阅读 · 0 评论 -
SV中如何定义常量
SV中如何定义常亮1、使用宏定义:'define PI 3.14a = ‘PI;注:次处与c不同,调用宏时sv要加’;2、使用常量符号:parameter PI = 3.14;a = PI;3、在变量声明时,使用const修饰,被修饰后的变量在其后的过程代码时不能改变其值;...原创 2021-10-08 17:43:48 · 564 阅读 · 0 评论 -
SV中如何设置任意bit为有符号数
如何设置任意bit为有符号数bit signed [N:0] a;signed放在其它位置都会报错;原创 2021-10-08 10:53:38 · 778 阅读 · 1 评论 -
sv中的constraint 与randomize
sv中的constraint 与randomize1、constraint设定约束条件,randomize进行随机化;2、constraint是描述型语句不是过程性语句,所以其内不能出现“=”赋值语句,而是应该用“==”判断语句进行描述;3、constraint进行条件约束时,只有左边的约束有效,例如constraint中a<b<c,只有a<b有效,需要将约束关系拆成两部分表示;4、randomize具有属于指定类,所以对约束条件进行随机话时,要在randomize前指定具体类,这原创 2021-10-08 09:23:51 · 2070 阅读 · 0 评论 -
sv中函数如何传递数组值
sv中函数如何传递数组值法一:将数组用typedef定义为一个新的数据类型,将新的数据类型作为函数返回值;法二:将需要传递的数组作为输入传入,用ref修饰该数组,ref修饰后的变量类似于c中的传地址,当不想传入的参数改变,并且不想用复制传递参数增加消耗时,可以用const ref修饰参数;法三:将数组封装进类中,然后返回对象的句柄;...原创 2021-10-08 10:50:02 · 660 阅读 · 0 评论 -
UVM学习笔记:
UVM学习笔记:1、芯片流程:市场需求(spec)、算法、架构、rtl、门级网表、GDSII、样片;2、芯片验证等级:模块级验证->芯片级验证->系统级验证;3、uvm的一般架构(自下而上):agent:sequencer、driver、monitor(driver和monitor通过interface与DUT相连);env:agent、scoreboard、reference model;testcase:实例化env;top:testcase、dut...原创 2021-11-03 00:07:09 · 872 阅读 · 0 评论