2022年1月20日
摘要: 前一节https://www.cnblogs.com/xuqing125/p/15826609.html讲述了UVM phase整体是怎么运行起来的,里面忽略了objection的概念。 抛开UVM这个框架,我们想最基础的systermverilog到底是怎么控制进程线程的呢? 可以参考我之前的文章 阅读全文
posted @ 2022-01-20 16:18 猪肉白菜_125 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 说到UVM phase我们就知道是UVM一个很重要的特性,从用户角度来讲,其实就是一些很简单的应用规则,能够极大地提升编码的效率,简化代码复杂度,提高debug的效率。至于应用可以参看zhangqiang大佬的第五章,这里就不再赘述。 本文就从源码的角度来看,UVM的phase是怎么工作的? 之前学 阅读全文
posted @ 2022-01-20 15:42 猪肉白菜_125 阅读(573) 评论(0) 推荐(0) 编辑
  2022年1月18日
摘要: 在VCS中有编译选项+ntb_random_seed用来指定初始的seed值,当然你也可以参考vcs user guid,里面有+ntb_random_seed_automatic等有关的seed的一些设置。 现在回过头来查看绿皮书6.16.2和6.16.3的内容,理解就更加深刻了一些,但是绿皮书上 阅读全文
posted @ 2022-01-18 20:16 猪肉白菜_125 阅读(2428) 评论(0) 推荐(0) 编辑
  2022年1月12日
摘要: 构造函数new uvm_phase的类型是UVM_PHASE_IMP 其实跟uvm_bottomup_phase.svh长的差不多。 fork......join_none从上到下的并行进程的挂起。 阅读全文
posted @ 2022-01-12 11:52 猪肉白菜_125 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 1、traverse 三个参数 case(state) UVM_PHASE_STARTED: uvm_component,phase_started()是callback函数 UVM_PHASE_EXCUTING: 标准用法中都可以直接进入分支 line75用于判断是不是手动调用了build_pha 阅读全文
posted @ 2022-01-12 11:51 猪肉白菜_125 阅读(145) 评论(0) 推荐(0) 编辑
摘要: run_phase extends uvm_task_phase 除了uvm_build_phase和uvm_final_phase的执行顺序是自上而下的(uvm_topdown_phase),剩下的所有不耗费时间的phase都是自下而上的(uvm_bottomup_phase)。 get_name 阅读全文
posted @ 2022-01-12 11:50 猪肉白菜_125 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 问题:为什么get_name()返回的是出掉uvm_和_phase的name呢? 答:因为在new的时候的string name就是这样规范的。 扩展自uvm_task_phase 小结: 12个并行的run-time phase都扩展自uvm_task_phase exec_task(uvm_co 阅读全文
posted @ 2022-01-12 11:49 猪肉白菜_125 阅读(99) 评论(0) 推荐(0) 编辑
  2022年1月6日
摘要: 关于randomize()这个函数,发现我之前对它的理解有误。对pre_randomize()和post_randomize()的理解更是糟糕,下面我们就来整理一下他们之间的关系。 在绿皮书的6.3.2中,对randomize()函数的描述如下:randomize()函数为类里面所有的rand和ra 阅读全文
posted @ 2022-01-06 17:17 猪肉白菜_125 阅读(2159) 评论(0) 推荐(0) 编辑
  2022年1月4日
摘要: UVM树通过uvm_component来实现树形结构。所有的UVM树看的结点都是一个uvm_component。每一个uvm_component都有一个特点:他们在new的时候需要指定一个类型为uvm_component,名字为parent的变量。 uvm_component有phase的概念。 对 阅读全文
posted @ 2022-01-04 10:59 猪肉白菜_125 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 对于build_phase来说,uvm_component对其做的最重要的事情就是自动获取通过config_db::set设置的参数。如果要关掉这个功能,可以在自己的build_phase中不调用super.build_phase。 **参考链接:**https://www.cnblogs.com/ 阅读全文
posted @ 2022-01-04 10:57 猪肉白菜_125 阅读(245) 评论(0) 推荐(0) 编辑