摘要:句柄的传递 句柄可以用来创建多个对象,也可以前后指向不同对象 Transaction t1,t2; // 声明句柄 t1 = new(); // 创建对象并将其指针赋予t1 t2 = new(); // 创建对象并将其指针赋予t2 t1 = t2; // 将t2的值赋予t1,t1和t2指向同一对象,
阅读全文
摘要:做IC 验证进行transaction比对时,发现曾经验证通过的module总是发生mismatch的情况,这是不应该发生的情况,因为这个module曾经已经验证通过并且RTL已经稳定,bench也很稳定,但是出现了mismatch的情况。最后经过debug发现两种不同写法的代码会导致不同的结果:
阅读全文
摘要:使用SystemVerilog搭建环境的时候,经常会遇到需要对一个对象进行复制,以防止对象的方法修改原始对象的值。对于初学者经常会使用new函数来实现class的内建的复制功能,但是,当要复制的对象中含有其他对象(object)时,使用内建的复制功能将会得到不期望的结果。本文将示例说明shallow
阅读全文
摘要:学过C语言都知道,在程序中添加打印信息有助于我们追踪程序执行的情况。特别是debug的时候,打印一些log信息对快速定位到问题非常有帮助。 怎么在SOC验证的C代码中打印字符串呢? 如何实现打印? 两个思路,第一个思路,在SOC的TB里面增加一个CPU bus的monitor,我们在monitor中
阅读全文
摘要:virtual function void back_write(input bit[31:0] addr, input bit[31:0] data); void'(uvm_hdl_deposit(path+addr, data)); endfunction:back_write virtual
阅读全文