- 博客(49)
- 收藏
- 关注
原创 [UVM源代码研究] 聊聊UVM中的callback机制
本文通过一个具体的例子引出对UVM源代码中callback的实现机制进行了粗浅的分析,虽说不能让大家看完后对UVM中的callback机制有醍醐灌顶的感觉,但相信同学们看完在后面使用uvm_callback的时候应该会有一个更为立体的理解。
2024-07-25 16:26:06 946 1
原创 SystemVerilog中数组的维度相关概念解析
多维数组的例子如下再引申一下看看多维数组的下标对应情况下面是sv语法中的描述:可见在进行多维数组引用时,packed部分的维度在引用时比unpacked部分要高,unpacked部分的维度越靠近数组名越低,packed部分也是越靠近数组名越低。
2024-06-19 10:27:13 732 1
原创 [验证百花筒] systemverilog中高精度浮点运算的一种求解思路
本文通过结合代码讲解了SystemVerilog中进行高精度浮点运算时的一种求解思路,以免大家淹没在进制转换和符号运算的汪洋大海里不能自拔。
2024-04-19 10:00:00 1009
原创 [UVM源代码研究] 关于default_sequence和p_sequencer的一点思考
关于default_sequence和p_sequencer的一点思考
2024-03-27 15:15:00 1513 3
原创 [UVM源代码研究] UVM中在使用field_automation时如果加入了条件控制时无法正常使用copy/clone
UVM中在使用field_automation时如果加入了条件控制时无法正常使用copy/clone
2024-03-25 10:15:00 998
原创 [SystemVerilog语法拾遗] 一文讲清楚SystemVerilog中的阻塞赋值与非阻塞赋值
一文讲清楚SystemVerilog中的阻塞赋值与非阻塞赋值
2024-03-22 14:32:49 1621
原创 [UVM源代码研究] UVM的field_automation实现的print()函数如何灵活控制打印数组元素的数量
UVM的field_automation实现的print()函数如何灵活控制打印数组元素的数量
2024-03-21 15:30:00 1512
原创 [UVM源代码研究] 如何控制UVM环境所有phase都执行完后仿真不立即结束(uvm-1.2版)
如何控制UVM环境所有phase都执行完后仿真不立即结束
2024-03-21 10:30:00 1138
原创 [UVM源代码研究] 当我们driver中使用put_response却最终导致Reponse queue overflow的UVM源代码解决思路(uvm-1.2版)
当我们driver中使用put_response却最终导致Reponse queue overflow的UVM源代码解决思路
2024-03-21 10:15:00 1279 1
原创 [UVM源代码研究] 聊聊uvm_tlm_analysis_fifo这个特殊的uvm_component(uvm-1.2版)
聊聊uvm_tlm_analysis_fifo这个特殊的uvm_component
2024-03-20 15:06:13 1592
原创 [UVM源代码研究] sequence、 sequencer与driver的通信(uvm-1.2版)
sequence、 sequencer与driver的通信
2024-03-20 10:18:28 1092
原创 [UVM源代码研究] 聊聊uvm_component与uvm_root(uvm-1.2版)
聊聊uvm_component与uvm_root(uvm-1.2版)
2024-03-19 11:19:05 1174
原创 [UVM源代码研究] 聊聊寄存器模型中的期望值(desired value)、镜像值(mirrored value)以及DUT中的实际值(actual value)的相关概念及方法
聊聊寄存器模型中的期望值(desired value)、镜像值(mirrored value)以及DUT中的实际值(actual value)的相关概念及方法
2024-03-18 14:57:52 1911
原创 [UVM源代码研究] 我们在使用UVM寄存器模型内建的sequence检查寄存器时UVM源代码都执行了些啥?
我们在使用UVM寄存器模型内建的sequence检查寄存器时UVM源代码都执行了些啥?
2024-03-18 11:24:48 961
原创 [UVM源代码研究] 当我们使用寄存器模型里的寄存器调用write/read方法,数据包是如何在寄存器模型、adapter、sequencer中传递的
当我们使用寄存器模型里的寄存器调用write/read方法,数据包是如何在寄存器模型、adapter、sequencer中传递的
2024-03-18 11:21:23 1761
原创 [UVM源代码研究] 谈谈uvm中的浅拷贝(shallow copy)与深拷贝(deep copy)
uvm中的浅拷贝(shallow copy)与深拷贝(deep copy)
2024-03-15 10:13:46 1322 1
原创 [UVM源代码研究] 我们每天都在用的uvm_tlm_analysis_fifo内部是如何工作的
uvm_tlm_analysis_fifo研究
2024-03-15 09:50:59 1369
原创 [UVM源代码研究] 当我们执行uvm_top.print_topology时uvm都做了些什么
当我们执行uvm_top.print_topology时uvm都做了些什么
2024-03-15 09:41:19 894
原创 [UVM源代码研究] TLM里的各种port、export、imp使用研究
1、不同组件之间进行通信时的需求决定了所需port/imp对的类型需要阻塞那就需要选择blocking的PORT对initiator是producer还是consumer决定了通信方法选择用put(阻塞)/try_put(非阻塞)还是get/try_get如果是一对多的情况就得用analysis_port/analysis_imp,对应的通信方法就是write2、确定了port/imp对之后就在initiator中调用通信方法,在target中实现通信方法。
2023-10-11 14:48:10 322
原创 [UVM源代码研究] 当我们在tb里调用run_test()时uvm环境是如何启动的
这个run_test()根源调用的还是uvm_root里定义的run_test()我们稍后再去分析,等于说uvm_globals将uvm_root里定义的run_test()通过单例模式获取uvm_root的唯一实例并将其封装成了一个全局可见的任务run_test(),那我们不禁要问:这个uvm_globals文件是如何实现里面的内容全局可见的呢?387-391就是在判断run_test()是否被调用过,调用过就会将uvm_test_top作为uvm_root的child存入到m_chilldren中。
2023-10-11 14:39:01 537 1
翻译 [SystemVerilog语法拾遗] SystemVerilog中的宏使用详解
合理的使用宏可以大大简化我们在使用SystemVerilog编写代码的工作量,如果你不熟悉宏的使用,不仅降低写代码的效率,同时在阅读别人写的代码时也会产生诸多困惑,这里的例子将揭开","这些宏中常用的符号的含义以及如何使用它们的神秘面纱。我们还将探索UVM源代码中的一些宏,并建立编写宏的风格指南。在我们开始之前有一个警告:过度使用宏可能会导致代码可读性降低,所以使用宏一定要尽可能的再简化代码的前提下不要因为对代码的过度封装而影响其可读性。宏是使用define编译器指令创建的代码段。
2023-10-11 14:19:58 962
原创 [SystemVerilog语法拾遗] ===和!==运算符使用注意事项
本文讨论的四值运算符===和!==的使用场景以及注意事项,希望能对大家验证过程中写模型有所帮助。
2023-10-07 16:36:45 534
原创 [SystemVerilog语法拾遗] systemverilog中task的局部变量串扰问题
systemverilog中task的局部变量串扰问题
2023-10-07 16:32:29 196
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人