2022年4月2日
摘要:
相信下面这张图就是UVM的整个tree的框架,my_case这一层是我们可见的一层,但是在uvm_root里面实例化my_case却是我们user不能看到的一层,今天我们就来说一下uvm_root这一层my_case的实例化是怎么进行的。 在run_test()函数里面调用factory机制,根据c
阅读全文
posted @ 2022-04-02 13:49
猪肉白菜_125
阅读(235)
推荐(0)
摘要:
factory其实是对多态的一个扩展。 例子一: class bird extends uvm_object; virtual function void hungry(); $display("I am a bird, I am hungry"); endfunction function voi
阅读全文
posted @ 2022-04-02 10:50
猪肉白菜_125
阅读(228)
推荐(0)
2022年4月1日
摘要:
我们知道factory的实现,其实最终都是通过uvm_factory.svh中的四个函数来实现的。factory具有全局唯一的特性。 大体上可以按照_by_name/_by_type或者是inst/all来做划分 可以在任意的地方用factory.set_inst_override_by_type的
阅读全文
posted @ 2022-04-01 17:37
猪肉白菜_125
阅读(60)
推荐(0)
摘要:
伪代码框架可以参考:https://www.processon.com/view/link/6246bd177d9c080724722a9e 其实UVM factory机制的基本原理非常简单,可以参考之前的一个高级精简的例子来做说明:https://www.cnblogs.com/xuqing125
阅读全文
posted @ 2022-04-01 17:34
猪肉白菜_125
阅读(510)
推荐(0)
摘要:
UVM的factory机制其实很简单,本质上就是一个关联数组,将各个具有继承关系的class,联系到一起,形成一张类似的表格。在创建的时候,可以通过查表来实现最终类型的实现。 本章节通过一个小例子来展示一下UVM的factory机制是怎么实现的。 这个例子就是对UVM factory机制的高度抽象。
阅读全文
posted @ 2022-04-01 16:50
猪肉白菜_125
阅读(321)
推荐(0)
摘要:
静态变量,在sv中可以在类中创建一个静态变量,该变量将被这个类的所有实例所共享,并且是用范围仅限于这个类。 静态变量相对来讲比较简单,这里不做阐述,下面重点来看static function。 UVM 的source code中就运用了static function来实现单实例。 static 修饰
阅读全文
posted @ 2022-04-01 16:49
猪肉白菜_125
阅读(364)
推荐(0)
2022年3月11日
摘要:
伪代码参考链接:https://www.processon.com/view/link/622af92e1efad407e98a6fca config_db机制是UVM中在不同的component之间实现资源共享的机制,它避免了全局变量的弊端。 通篇源代码看下来,其实config_db机制也是利用了
阅读全文
posted @ 2022-03-11 16:19
猪肉白菜_125
阅读(598)
推荐(0)
2022年3月3日
摘要:
参考伪代码:https://www.processon.com/view/link/62202eb76376892b5b430298 首先说一下读完TLM源码的心得:TLM其实就是一个单向/双向通信的模型,各个函数put/get/write等,可以看做是一个缓存的实现。FIFO就将这些函数封装起来,
阅读全文
posted @ 2022-03-03 14:44
猪肉白菜_125
阅读(592)
推荐(0)
2022年3月2日
摘要:
提到systermverilog,最常接触的就是随机,与随机紧密相关的函数就是randomize,但是实际上我们又对randomize知道多少呢?本章节我们就梳理一下randomize()的坑。 一些之前踩过的坑:https://www.cnblogs.com/xuqing125/p/1577200
阅读全文
posted @ 2022-03-02 10:01
猪肉白菜_125
阅读(789)
推荐(0)
2022年2月28日
摘要:
virtual seq 和virtual sqr是比较难理解的两个东西。 什么时候需要virtual sequencer和virtual sequence? 有多的驱动端agent,而且多个激励之间存在协调关系,那么virtual sequencer就很有必要了 virtual sequencer/
阅读全文
posted @ 2022-02-28 09:41
猪肉白菜_125
阅读(248)
推荐(0)