![](https://img-blog.csdnimg.cn/20190918140145169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
systemVerilog
文章平均质量分 51
systemVerilog随笔 以实例为主
cy413026
这个作者很懒,什么都没留下…
展开
-
uvm的tlm设计分析(port/export/imp/analysis/fifo)
请参考:uvm设计分析——tlm原创 2022-02-11 18:10:16 · 325 阅读 · 0 评论 -
systemVerilog的一些基本概念(类/对象/句柄/属性/方法/原型) this指针和$cast
目录1. 基本概念2.this指针3.$cast1. 基本概念以下的这些基本概念其实是面向对象编程的基本术语。类(class):包含变量和子程序的基本构建块。对象(object):类的实例句柄(handle):指向对象的指针。一个句柄可以指向很多对象。属性(property):存储数据的变量方法(method):任务或者函数中操作的程序性代码原型(prototype):程序的头,包括程序名、返回类型和参数列表可参考:systemverilog语法(五)2.th原创 2022-02-11 17:47:29 · 1460 阅读 · 0 评论 -
systemverilog中ref的用法
大体来讲可以认为ref是传递指针而不是复制数值。如果在ref前面加上const就可以确保 不修改原始数据,此时一旦修改就会报错。可参考:systemverilog中ref的用法_Alfred的博客-程序员ITS404_systemverilog中的refhttps://www.its404.com/article/Michael177/120807371...原创 2022-02-10 21:04:23 · 510 阅读 · 0 评论 -
在systemVerilog的task中等效always块
我们知道在task中是不能直接使用always块语句的,那么该如何在task中实现always的功能呢?下面分时序逻辑和组合逻辑两种情况分别说明。1.时序逻辑如下面代码所示:每一个forever begin-end之间相当于一个always块。fork join保证了所有的always之间的并行运行。task A(); fork forever begin @ (posedge clk); if(xxxx)原创 2021-09-15 20:09:57 · 2667 阅读 · 0 评论 -
systemVerilog的typedef用法
1. 常用自定义类型typedef int WIDTH_TYPE2. 前置定义常用在要用的class还没有定义时,提前typedef一下1 typedef class B;//typedef B2 class A;3 B b;4 int xx;5 endclass6 7 class B;8 A a;9 logic tmp;10 endclass如上在定义class A时,使用了class B,但B还没有定义,可以在前面先 typede原创 2022-02-10 20:43:56 · 9159 阅读 · 1 评论 -
c++/systemVerilog在类中定义类自身问题
c++或systemVerilog这写面向对象编程的class中可以定义指向当前class的指针,但是不能定义当前class的成员变量1 class Screen{2 //Screen sc; //error, 'sc' uses undefined class 'Screen'3 //etc...4 Screen *sc1; //ok5 Screen &sc2; //ok6 7 //etc...8 };上述c++的cl原创 2022-02-10 18:03:08 · 362 阅读 · 0 评论 -
c++(systemVerilog)中的virtual funtion(task)的使用场景及实现原理
c++的virtual function实现原理和systemVerilog的virtual function/task实现很相似除了下面的一篇文章还可以参考【C++拾遗】 从内存布局看C++虚继承的实现原理https://blog.csdn.net/xiejingfa/article/details/48028491咱们知道,与C语言相比,C++在布局和存取时间上的额外开销主要是由虚函数(virtual function)机制和虚继承(virtual base class)机制引发的。在前面一转载 2022-01-27 21:00:00 · 1819 阅读 · 0 评论