![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sv
文章平均质量分 75
punkchang88
从事IC验证的伪码农,对正统码农很敬仰
展开
-
Static and Automatic
Static Variable当class中声明了静态变量,我们从两个角度来说明:内存空间这个静态变量将会只有一份内存空间,即使这个class拥有多个instance,这个变量也只有一份,所有instance都共用这个变量。相反,动态变量是每个instance都有自己的一份变量,有各自的内存空间,有几个instance就有几个此变量,互相之间不会相互影响。静态变量可以通过class_type::variable去访问,即使class没有instance。需要注意的是,verilog中默认的变量是原创 2021-12-30 10:37:19 · 340 阅读 · 0 评论 -
SystemVerilog Schedule
Simulation Advancement仿真器不是按照真实时间推进而进行仿真的, 仿真器是基于event仿真推进,分成以下两个层次:time slotsevent仿真需要处理的最小单位是event, 每个event 都带有自己的timeslot信息,每个timeslots的具体实现就是一个event queue,这个queue里放着这个slots里所有需要处理的events。仿真是从timeslot 0开始的,首先执行timeslots 0 queue里的events,执行完成以后,执行下原创 2022-03-25 14:50:59 · 874 阅读 · 0 评论 -
DPI-C
What is DPI-C?DPI-C 是systemverilog为了与其他语言(c/c++)进行交互而设计的机制,通过DPI-C可以完成:SV call C functionC call SV functionExampletestbench.sv :module dpi_test; export "DPI-C" function sv_print; import "DPI-C" context function void c_print(); initial begi原创 2022-03-14 23:03:24 · 2538 阅读 · 0 评论 -
$cast一般用在哪里?
前言Systemverilog 是一种OOP的语言,经常在一些testbench中会看到cast的身影,那什么时候才会用到cast的身影,那什么时候才会用到cast的身影,那什么时候才会用到cast呢,为什么会需要这个?由此我们会引出很多有意思的问题。问题1父类handle是否可以指向子类实例?如果可以,通过这个父类handle,是否可以访问子类的成员?子类handle是否可以指向父类实例?如果可以,通过这个子类handle,是否可以访问父类的成员?我们通过一组仿真来解释上面的问题class原创 2022-01-21 15:57:19 · 624 阅读 · 1 评论