- 博客(34)
- 收藏
- 关注
原创 vcs仿真死循环debug
以前以为return 语句只能用在函数的最后一行,但是实际上是逻辑的最后一行。满足return语句之后,后面的代码都不会执行。突然理解了为什么有些代码没看到 wuwuwuwu。vcs仿真 提供 死循环debug 的参数 +vcs+loopreport+10000 +debug_access_all。这是一个静态代码,可能会被vcs优化或者卡死,所以不会触发loopreport。仿真该module 卡住,添加上述编译选项并未报错。所以在编写循环时,建议开始结束前后添加打印,并且确认有合理的退出机制。
2025-04-10 20:24:33
168
原创 systemverilog constraint 里数组如何分配空间
sytemverlog里constraint如何给数组分配空间,以及foreach用法
2024-10-23 08:56:42
309
原创 systemverilog 静态变量 vs 动态变量
《writing testbenches》 static vs. Automatic variables
2024-09-24 15:16:56
231
原创 UVM toggle覆盖方法
所以至少需要发三个激励,让对应bit翻转两次。比如 5a5a5a5a->a5a5a5a5->5a5a5a5a;5a5a5a5a->a5a5a5a5->ffffffff->00000000.toggle的触发: 5a5a5a5a -> a5a5a5a5,这只能让data进行一次翻转。data实际的收的翻转率是0->1, 1->0.关于5a5a5a5a 特定值的测试,只能把他们拎出来,间隔。这样即可以保证随机,又可以保证翻转覆盖率。
2023-12-13 20:20:42
269
1
原创 SV随机失败,仿真卡死
SV随机有冲突的时候会报Error,但是不会结束环境,导致 随机pkg所有值均为0. 有些DUT没有拿到预期的激励,可能就会hang住,导致环境卡死,但是会超出退出。有时候也会一直执行随机操作,这种情况通常是随机不耗时,仿真时间不会往前走,因此环境hang住。
2023-12-13 17:55:44
254
原创 fsdbreport导出波形信号值/force信息
信号的路径是 top.u_hw_top.u_hw_control.data_in, fsdbreport的格式是/top/u_hw_top/u_hw_control/data_in。-o out.txt表示输出到out.txt中。-bt 表示起始时间, -et 表示结束时间。-w 256 表示输出位宽为256bit。-of h 表示输出格式为16进制。
2023-12-12 16:12:47
1857
原创 Verdi 修改group字体大小
step1: Tools->Pereferences->Waveform->Color/Font/Pattern, 点击打开子目录,选中Font,在出现的页面中进行修改。step2: 在Miscellaneous方框中, 将Type切换到Group Name, 修改Font 既可改变 G1等group的显示大小。补充: 在Pane方框中,将 Type切换到Signal Pane,修改Font即可修改波形信号字体大小。如何修改verdi 中 group字体大小。
2023-11-01 13:37:57
666
原创 SV 流操作符进行队列位宽转换
执行cmd: vcs -R -full64 -sverilog +v2k -ntb test_mem.sv。1)256 bit 数据 转8 bit 队列。2)256 bit 队列 转8 bit 队列。
2023-10-29 14:59:56
524
原创 AXI VIP发出超4k 边界命令
SVT_AXI_TRANSACTION_ADDR_RANGE_NUM_LSB_BITS 默认值是12,所以支持到4k=0x1000,改为13即可支持超出4K边界。在仿真中添加+define+SVT_AXI_TRANSACTION_ADDR_RANGE_NUM_LSB_BITS=13。
2023-10-20 19:28:18
526
1
原创 UVM 在sequence中使用env的方法
加入uvm_top.find($sformatf(“*.%s”, “env”),找到env,即可正常使用或引用env中的信号。
2023-10-04 10:13:02
577
原创 UVM foreach 打印二维数组报错
注意,UVM 不能识别该二维数组格式(sgl_list[i,j]), 仅能识别sgl_list[i][j].解决办法:fearch能识别的二维数组格式为sgl_list[i,j],所以应修改为。
2023-07-13 10:33:53
753
原创 UVM monitor错误,导致仿真时间hang住
采用如下源码,从仿真log中发现一个问题:当cpu没有发出读写命令,即re&we都为0,monitor也会采样传给reference model。我理解的原因是:修改之前的while循环里所有操作都不消耗仿真时间,所以处于一直在0时刻判断的情况。
2023-05-08 14:00:47
922
1
原创 UVM 验证平台收集覆盖率
1.定义coverage文件,文件名ut_cov.sv//文件名可和class名字不一样,以防找不到命名为一致,找不到环境会报错class ut_cov extends uvm_component; `uvm_component_utils(ut_cov) cpu_transfer cpu_tr; virtual interface cpu_if cfgif; covergroup top_cfg @(cfgif.cpu_cast_sample_cov); // cpu_.
2022-02-19 11:34:03
1276
原创 英伟达驱动安装成功之后,指令nvidia-smi表格里有ERR!
英伟达驱动安装成功之后,指令nvidia-smi表格里有ERR!使用软件更新安装好nvidia_384.130之后,执行nvidia_smi,表格里出现erro.卸载之后下载该驱动安装包或用指令apt_get在线安装均会出现此错误。解决办法:换一个驱动版本。1.首先卸载安装好的驱动sudo apt-get purge nvidia*2.然后 执行指令把显卡驱动加入PPAsudo ad...
2019-07-20 00:46:03
3622
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人