systemverilog
文章平均质量分 53
weixin_40773862
这个作者很懒,什么都没留下…
展开
-
生成块(generate)
生成语句可以动态的生成Verilog代码,这一声明语句方便了参数化模块的生成。当对矢量中的多个为进行重复操作时,或者当进行多个模块实例引用的重复操作时,或者根据参数的定义来确定城西中是否应该包括某段verilog代码的时候,使用生成语句能够大大简化程序编写的过程。生成的声明和生成的实例能够在设计中被有条件的条用(实例引用)。在设计中可以多次调用(实例引用)生成的实例和生成的变量声明。此外,究竟是按照次序或者参数名赋值的参数重新定义,还是只用defparam声明的参数重新定义,都可以在生成范围中定义。原创 2024-06-25 16:09:44 · 223 阅读 · 0 评论 -
sv中的虚方法与多态
简而言之,当类中的方法声明为虚方法的时候,调用时候取决于句柄指向的对象,如果对象是父类对象,则调用的是父类中的方法,如果对象是子类对象,则调用的是子类中的方法。如果不声明为虚方法,调用的时候取决于句柄是父句柄还是子句柄来决定调用的方法是父类中的方法还是子类中的方法。类的继承有继承变量和方法两个方面,类的多态使得实现类时不需要担心句柄指向的是父类还是子类,只要通过虚方法就可以实现动态绑定,或者sv中称为动态方法查找。原创 2024-05-22 14:49:23 · 330 阅读 · 1 评论 -
SV仿真的调度机制
充分理解sv的不同结构体在仿真中的执行的先后顺序,有利于理解testbench中对DUT的驱动和采样的顺序,进而避免不合理的驱动和采样方式。· 设计调度区域执行完后,会通过observed区域,最后至reactive区域,而program会在reactive区域执行,所以program会采用之前已经被阻塞/非阻塞赋值后稳定值进行计算。inactive区域:所有被进行零延时操作的线程在inactive区域被激活,在被执行之前迁往active区域,因此,零延时的操作会延缓线程的执行时间。原创 2024-05-22 10:17:48 · 317 阅读 · 0 评论 -
verilog and systemverilog gotchas阅读笔记(1)
(1)在systemverilog中区分大小写(2)该书表明在synopsys的仿真器中,如果位于等式左边的标识符没有声明,在编译过程中不会报错而是会形成一个隐性节点,本人使用cadence中的irun命令试了一下,发现这种错误在cadence的编译过程中是会报错的(3)对于节点和变量的位数要声明清楚,否则可能只连接最低1bit(4)对于多个文件一起编译,在synopsys编译器中使用原创 2018-02-05 22:06:37 · 793 阅读 · 0 评论