- 博客(10)
- 收藏
- 关注
原创 芯片验证技术小结
8.可以一次写很多用例,然后跑出来波形与log,再定位错误原因。7.build的执行顺序在用例里面重载的env_cfg的后面。1.setupdate更新寄存器值与write不一样。5.foreach给某些值赋值时,要区分索引与值。3.for循环里面,循环的次数,不要写可变长度。6.给dut下配置,要在验证环境做好关联。4.判断某个值无效,就写入,用!2.读清告警,使用按位运算。
2025-01-19 14:20:55
230
原创 芯片验证之软件问题一
已知每个告警寄存器的位宽都是32bit的,当某bit为1时,表示该通道有告警。现在有320个通道,有10个告警寄存器。其中qm队列中寄存的通道会起告警,其余通道不会上报告警,要求写一段程序读320个通道的告警,要求要能检测出其余通道是否会上报告警,qm中的通道告警被忽略。
2025-01-01 12:45:31
140
原创 验证提高工作效率的方法
alias别名的方式。把各种复杂的命令都可以封装起来。如果cs时出现alias No match,那就是哪一行的alias出现问题了。例如“”的内部“”没有加转义字符。2、在用例编译过程中,看自己的用例写的有无问题,在仿真过程中,看自己用例写的是否正确。3、巧用各种脚本,可以把回归结果中的错误都给提取出来,在一个文档中去看。1、cshrc中去封装快捷键。
2024-06-25 08:14:44
159
原创 20240624验证笔记
需要一个累计计数器。需要一个if语句,在if语句中拉高信号,同时进行清零。3、重定向许多log中的某一行共同内容到一个新的文件中的方法有?但是reg类型变量最好初始化一下,初始化为0.1、.sv的用例文件中可以定义reg类型变量吗?4、在sv的task中可以使用always块吗?2、想构造x拍空1拍的周期信号的注意事项?
2024-06-25 08:06:10
150
原创 芯片验证实战总结——测试用例编写二
通过force,我们可以改变逻辑内部信号的值,当我们force完之后,在后续当我们不需要force值时,我们可以release该信号。用法为 force xxx=1;我们采用wait方法去等待该信号为1,当等到了wait会继续往下执行。用法如下 wait (xxx==1);因为我们不知道哪个时刻中断信号被拉高,所以通过if判断是不行的,或者说if判断这种方式工作量是比较高的。当构造测试用例,触发逻辑电路内部的信号中断时,当中断信号只拉高一个时钟周期,该如何测试?2、force与release的用法。
2024-01-11 22:58:21
676
原创 芯片验证实战总结——测试用例编写一
而fork join_any是并行执行,当fork join_any块中有一个执行完毕,则走到join_any。fork join的用法,在通过时间发包时,在用例中读取白盒测试点经常会用到。这里需要注意的是,当我们构造一个异常用例时,当异常出现时(符合预期),我们要让它不报error(采用uvm_info宏),而当异常没有出现时,我们需要让它上报error(采用uvm_error或者uvm_fatal)这种问题,我们需要分析问题,找到问题原因,修改后,重新用该种子执行该用例,如通过,说明这一问题已解决。
2024-01-10 22:47:50
1087
原创 芯片验证学习笔记三
7、定在一个覆盖组,再对其覆盖点和仓进行完善,这是实现功能覆盖率的方法。interface,module,package中的变量与方法都是静态的,class中的变量与方法都是动态的。interface是连接硬件与软件的地方,module是例化硬件的地方,package里面可以写类。系统函数如:$finish,$display,内建函数如:size(),randomize。系统函数与内建函数:$为系统函数,size,delete为内建函数。parameter,localparam,const的区别。
2023-12-10 23:20:48
400
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅