
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 · 405 阅读 · 0 评论 -
SystemVerilog Schedule
Simulation Advancement 仿真器不是按照真实时间推进而进行仿真的, 仿真器是基于event仿真推进,分成以下两个层次: time slots event 仿真需要处理的最小单位是event, 每个event 都带有自己的timeslot信息,每个timeslots的具体实现就是一个event queue,这个queue里放着这个slots里所有需要处理的events。 仿真是从timeslot 0开始的,首先执行timeslots 0 queue里的events,执行完成以后,执行下原创 2022-03-25 14:50:59 · 940 阅读 · 0 评论 -
DPI-C
What is DPI-C? DPI-C 是systemverilog为了与其他语言(c/c++)进行交互而设计的机制,通过DPI-C可以完成: SV call C function C call SV function Example testbench.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 · 2999 阅读 · 0 评论 -
$cast一般用在哪里?
前言 Systemverilog 是一种OOP的语言,经常在一些testbench中会看到cast的身影,那什么时候才会用到cast的身影,那什么时候才会用到cast的身影,那什么时候才会用到cast呢,为什么会需要这个?由此我们会引出很多有意思的问题。 问题1 父类handle是否可以指向子类实例?如果可以,通过这个父类handle,是否可以访问子类的成员? 子类handle是否可以指向父类实例?如果可以,通过这个子类handle,是否可以访问父类的成员? 我们通过一组仿真来解释上面的问题 class原创 2022-01-21 15:57:19 · 728 阅读 · 1 评论