2022年2月25日
摘要: 类里面的变量相关的知识:https://www.cnblogs.com/xuqing125/p/15931202.html ###抛砖引玉 我们先来看两段代码: 代码一: 参数input int a类型 class bird; int a; endclass class parrot; int a; 阅读全文
posted @ 2022-02-25 10:11 猪肉白菜_125 阅读(332) 评论(0) 推荐(0) 编辑
  2022年2月24日
摘要: 截止到目前我了解到的UVM类只有uvm_sequence/uvm_sequencer_param/uvm_driver是带有参数化的类型的。 uvm_driver#(REQ,RSP) 默认的情况下REQ=RSP 默认的类型是uvm_sequence_item TLM端口uvm_seq_item_pu 阅读全文
posted @ 2022-02-24 18:03 猪肉白菜_125 阅读(679) 评论(0) 推荐(0) 编辑
摘要: 相信super/this是你在看sv代码经常遇见的。 按照我的理解: super就是到基类中去找对应的变量或者function/task. this就是指定作用域。 例子一:基类和扩展类有同名变量 B找src的时候,就会先在B里面找,如果找到以后,就认为已经找到了。 A也同理。 例子二:扩展类可以看 阅读全文
posted @ 2022-02-24 12:23 猪肉白菜_125 阅读(635) 评论(0) 推荐(0) 编辑
  2022年2月23日
摘要: 先从SystemVerilog的语法说起 我们先来看一个简单的例子: bird是一个基类 class bird; bit [3:0] src =0; bit [3:0] drc = 1; virtual task exec_task(); $display("in bird"); endtask e 阅读全文
posted @ 2022-02-23 17:51 猪肉白菜_125 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 在UVM的框架中,我们经常看到sequence的body()函数中,经常有`uvm_do这个宏,其实这个宏里面就包含了跟driver的交互所有细节,本章节就从uvm_do说起。 `uvm_do相关的宏 本质上就是uvm_do_on_pri_with() uvm_do(args): args可以为se 阅读全文
posted @ 2022-02-23 11:13 猪肉白菜_125 阅读(126) 评论(0) 推荐(0) 编辑
  2022年2月18日
摘要: UVM的seq/sqr/driver是紧密相连的,从user的角度来看,有一套common的模板,user就只管用就行了。 很多时候,我就只是只知道怎么用,并不清楚里面的实现机制,一旦出现不常见的bug时,就只能干瞪眼,所以作为一名IC验证工程师是十分有必要了解一下源码的。 TLM相关的东西,我们先 阅读全文
posted @ 2022-02-18 16:43 猪肉白菜_125 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 1、seq相关的phase机制 首先你需明确的是UVM的框架下,消耗时间的task的执行都在在uvm_component底下的objection的机制来实现的。也就是说phase的机制跟uvm_component是紧密相关的。 uvm_sequence是一个uvm_object的类,uvm_sequ 阅读全文
posted @ 2022-02-18 16:40 猪肉白菜_125 阅读(3365) 评论(0) 推荐(0) 编辑
  2022年2月9日
摘要: 前面讲了用户自定义uvm_phase:https://www.jianshu.com/p/90161143bb62 以及多个domain的同步和设置:https://www.jianshu.com/p/0435c400a7c8 那么我现在有这样一个需求:如何实现domain的12个run-time_ 阅读全文
posted @ 2022-02-09 11:12 猪肉白菜_125 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 其实大体看懂了源码的框架的话,这里也就是照猫画虎,phase源码参考:https://www.cnblogs.com/xuqing125/p/15826609.html https://www.edrawmax.cn/online/share.html?code=83c3b8b8799e11ec8a 阅读全文
posted @ 2022-02-09 09:35 猪肉白菜_125 阅读(177) 评论(0) 推荐(0) 编辑
  2022年2月8日
摘要: 如果不额外添加domain的话,UVM默认就只有common_domain,phase的结构如下: **Q:如果我想对两个domain不同的phase之间有同步的需求要怎么实现呢?比如说我们需要common_domain的reset_phase和new_domain的configure_phase进 阅读全文
posted @ 2022-02-08 16:06 猪肉白菜_125 阅读(197) 评论(0) 推荐(0) 编辑