2021年11月16日

uvm通信-uvc通信方式的选择(使用FIFO还是用IMP)

摘要: 等效问题: 使用FIFO通信与直接使用uvm_analysis_ap和uvm_analysis_imp的区别? (1) 前者实现scoreboard的主动接收, scoreboard可以按照自己的节奏工作,而不必跟着monitor的节奏. (2) 使用FIFO通信,可以不必在scoreboard中再 阅读全文

posted @ 2021-11-16 20:45 知北游。。 阅读(531) 评论(0) 推荐(0) 编辑

uvm通信-uvc通信方式三之uvm_tlm_fifo & uvm_tlm_analysis_fifo

摘要: 注1:采用fifo,用户可以不用定义put/get/write等函数或任务; 1.uvm_tlm_analysis_fifo(参数化的类) (1) uvm_tlm_analysis_fifo中的*_export,虽然名字中有export,但是本质上都是IMP; (2) uvm_tlm_analysi 阅读全文

posted @ 2021-11-16 20:18 知北游。。 阅读(4582) 评论(0) 推荐(1) 编辑

uvm通信-uvc通信方式二之analysis_port/export/imp

摘要: 1.analysis端口(ap与imp) (1) analysis_port和analysis_export其实与put和get系列端口类似,都用于传递transaction; (2) 一个analysis_port/analysis_export可以和多个IMP相连进行通信,但是IMP的类型必须是 阅读全文

posted @ 2021-11-16 20:17 知北游。。 阅读(3560) 评论(5) 推荐(0) 编辑

uvm通信-uvc通信方式一之blocking/nonblocking_get/put/transport_port/export/imp

摘要: 1.根据阻塞非阻塞,端口可分为uvm_blocking_*,uvm_nonblocking_*与uvm_*; (1) nonblocking端口的所有操作都是非阻塞的,换言之,必须用函数实现,而不能用任务实现; (2) uvm_blocking*只支持阻塞操作,uvm_nonblocking_*只支 阅读全文

posted @ 2021-11-16 19:36 知北游。。 阅读(2454) 评论(0) 推荐(0) 编辑

uvm通信-TLM机制与端口互连

摘要: 参考资料: (1) UVM学习笔记--TLM通信_wonder_coole的博客-CSDN博客 1.TLM定义 transaction level modeling(事务级建模); 2.TLM操作(put/get/transport有阻塞和非阻塞之分) (1)put操作:通信的发起者A将一个tran 阅读全文

posted @ 2021-11-16 19:08 知北游。。 阅读(532) 评论(0) 推荐(0) 编辑

uvm通信-UVC间可用的通信方法比较(以monitor和sb为例)

摘要: 1.全局变量(以monitor与scoreboard的通信为例) 注1:class之外定义的变量称为全局变量(??); (1)在monitor中对此全局变量进行赋值,在scoreboard中检测此全局变量值的改变; (2)这种方法简单、直接,不过要避免使用全局变量,因为全局变量全局可见,出错后不易定 阅读全文

posted @ 2021-11-16 18:55 知北游。。 阅读(565) 评论(0) 推荐(0) 编辑

篇5-uvm_component/uvm_sequence_item常用函数解读

摘要: 资料来源: (1)公众号-杰瑞IC验证; (2) uvm_class_references手册; 1.uvm_component相关函数 1.1.uvm_component中get_name()系列函数 (1) get_name()会打印出”u_jerry_so_cool”(实例名); (2) ge 阅读全文

posted @ 2021-11-16 17:24 知北游。。 阅读(569) 评论(0) 推荐(0) 编辑

篇4-多个uvm_agent情况的处理

摘要: 资料来源 (1) 公众号-杰瑞IC验证(https://mp.weixin.qq.com/s/jKTcfn70NjosjElQa4aFFw); 1.agent的完成、宏定义、以及顶层的连接(采用generate) 背景: RTL有多组相同信号接口,写1个agent,然后用该agent例化多个不同名字 阅读全文

posted @ 2021-11-16 17:03 知北游。。 阅读(794) 评论(0) 推荐(0) 编辑

[CU]uvm典型类/function/task-uvm_object & uvm_component

摘要: 1.uvm_object (1)几乎所有的类都继承自uvm_object,包括uvm_component. 2.uvm_component 注1:uvm_component具有parent-child关系的特点(层次创建与管理); 注2:uvm_component具有可以相互通信的特点(借助于tlm 阅读全文

posted @ 2021-11-16 15:36 知北游。。 阅读(563) 评论(0) 推荐(0) 编辑

uvm通信-uvm_event & uvm_event_pool & uvm_event_callback

摘要: 参考资料 (1) UVM通信篇之六:同步通信元件(上) - 路科验证的日志 - EETOP 创芯网论坛 (原名:电子顶级开发网) - (2) 《Practical UVM Step by Step with IEEE》 1.同步的方法 1.1 sv与uvm中同步的方法 (1) 在sv中,用于同步的方 阅读全文

posted @ 2021-11-16 15:07 知北游。。 阅读(3722) 评论(0) 推荐(0) 编辑

uvm通信-seq与uvc的交互/通信

摘要: 参考资料 (1) 公众号-杰瑞IC验证; 1. 以sequencer/p_sequencer作为seq与其他uvc沟通的桥梁; 注:p_sequencer也是seq内调用agent中函数的桥梁,通过p_sequencer机制+get_parent()“两步跳跃法”,先获取到seq对应的sequenc 阅读全文

posted @ 2021-11-16 14:37 知北游。。 阅读(1010) 评论(0) 推荐(0) 编辑

篇2-uvm tb的运转&run_test

摘要: 参考资料: (1) uvm中run_test | 骏的世界 (lujun.org.cn) (2) 从run_test浅谈Test Bench的启动 (qq.com) 1. run_test (1) run_test是uvm_globals.svh中定义的一个task,用于启动UVM. 2. 调用uv 阅读全文

posted @ 2021-11-16 12:55 知北游。。 阅读(1588) 评论(0) 推荐(1) 编辑

1-uvm_root, uvm_top, uvm_test_top

摘要: 参考资料 (1) UVM使用双顶层的用法 | 骏的世界 (lujun.org.cn) 1.UVM的根-uvm_root or uvm_test_top? (1) uvm_test_top实例化时的名字是uvm_test_top,这个名字是由UVM在run_test时自动指定的; (2) uvm_to 阅读全文

posted @ 2021-11-16 11:08 知北游。。 阅读(4767) 评论(1) 推荐(1) 编辑

[CU]objection机制1-objection的作用与特点,objection与phase/set_drain_time的联系,objection的控制与调试

摘要: 参考资料: (1) UVM——phase objection · 大专栏 (dazhuanlan.com) (2) 《UVM1.1应用指南及源代码分析》 (3) 《uvm user guide 1.2》chapter 3.11-Managing end of test; (4) 《uvm cookb 阅读全文

posted @ 2021-11-16 10:37 知北游。。 阅读(1771) 评论(0) 推荐(1) 编辑

field_automation机制1-field automation的功能及使用(该篇不涉及UVM源码)

摘要: 资料来源 (1) UVM实战-张强; 1.field automation机制常见宏(与常见变量/动态数组/静态数组/队列/关联数组相关宏) 1.1与常见变量相关的uvm_field系列宏 注1:该处的FLAG为UVM_ALL_ON等FLAG; 注2:上述宏分别用于要注册的字段是整数,实数,枚举类型 阅读全文

posted @ 2021-11-16 10:16 知北游。。 阅读(1566) 评论(0) 推荐(1) 编辑

2021年11月15日

[CU]uvm base test

摘要: 资料来源 (1) https://github.com/Practical-UVM-Step-By-Step/Practical-UVM-Step-By-Step (2) 《Practical UVM step by step with IEEE》 1. 测试用例的作用 base_test所做的事情 阅读全文

posted @ 2021-11-15 19:13 知北游。。 阅读(1062) 评论(0) 推荐(1) 编辑

篇1-sv/uvm命令行参数

摘要: 参考资料: (1) 公众号-芯片学堂; (2) uvm中获取cmdlind内容 | 骏的世界 (lujun.org.cn) 背景:当在创建动态仿真case时,使用命令行参数可以方便地控制DUT和TB的行为,比如配置寄存器、控制激励的发送数量、打开或关闭某些scoreboard等; 1.sv系统函数( 阅读全文

posted @ 2021-11-15 17:25 知北游。。 阅读(1605) 评论(0) 推荐(0) 编辑

[CU]config_db机制5-uvm_config_db与uvm_resource_db的区别

摘要: 1. uvm_config_db与uvm_resource_db的区别与联系 (1) uvm_config_db是从uvm_resource_db派生而来的,它对uvm_resource_db的一些功能进行了扩展,这种扩展主要体现在对资源的写入和读取上. (1.1) 在资源的写入操作上,它重载了uv 阅读全文

posted @ 2021-11-15 16:25 知北游。。 阅读(1296) 评论(0) 推荐(1) 编辑

[CU]config_db机制4-config_db机制的调试

摘要: 1.check_config_usage (1) 作用:可以显示出截止到此函数调用时,有哪些参数是被设置过但是却没有被获取过; (2) 使用: 由于config_db的set及get语句一般都用于build_phase阶段,所以此函数一般在connect_phase被调用,也可以在connect_p 阅读全文

posted @ 2021-11-15 16:21 知北游。。 阅读(553) 评论(0) 推荐(0) 编辑

[CU]config_db机制3-uvm_config_db使用注意事项

摘要: 注1:该篇文章侧重于config_db机制的使用; 1. config机制成对出现 1.1 简单示例 如在某个case(派生自uvm_test)的build_phase中可以做如下设置: 1 uvm_config_db#(int)::set(this,"env.agent.driver","pre_ 阅读全文

posted @ 2021-11-15 15:30 知北游。。 阅读(1865) 评论(0) 推荐(0) 编辑

[CU]config_db机制2-uvm_resource_pool/uvm_resource/uvm_resource_db/uvm_config_db常用函数

摘要: 注1:该篇文章主要涉及config_db机制的一些函数; 1.资源的写入 1.1. uvm_resource_pool 1.1.1. uvm_resource_pool.get 1 class uvm_resource_pool; 2 3 static local uvm_resource_pool 阅读全文

posted @ 2021-11-15 14:18 知北游。。 阅读(807) 评论(0) 推荐(0) 编辑

2021年11月14日

[CU]config_db机制1-config_db作用,优点及原理

摘要: 注1:该篇文章涉及的几个关键类: uvm_resource_pool, uvm_resource & uvm_resource_base, uvm_resource_db & uvm_config_db; 注2:该篇文章主要描述config_db机制原理性的内容; 1. 作用,优点 (1) UVM中 阅读全文

posted @ 2021-11-14 20:23 知北游。。 阅读(1035) 评论(0) 推荐(0) 编辑

1-phase机制的必要性,phase自动执行的原理,phases及执行顺序(内含process知识点)

摘要: 参考资料: (1) uvm启动过程及phase机制实现原理介绍_HelloQili的博客-CSDN博客 (2) UVM1.1应用指南及源代码分析-张强 1.phase机制简介 1.1. phase机制的必要性 在不同的时间做不同的事情; 1.2. phase的自动执行(原理) (1) uvm_roo 阅读全文

posted @ 2021-11-14 11:04 知北游。。 阅读(2223) 评论(0) 推荐(0) 编辑

2021年11月12日

4.2-类中的overwrite,override(多态),抽象类与纯虚函数

摘要: 资料来源: (1)公众号-芯片学堂; (2)The UVM Primer; (3)硅芯思见:【118】SystemVerilog没有那么多的OVER overwrite_override_overload (qq.com) 1.overwrite (1)overwrite发生在子类和基类之间,即不同 阅读全文

posted @ 2021-11-12 17:17 知北游。。 阅读(311) 评论(0) 推荐(0) 编辑

2021年11月11日

4.1-类(类,句柄,this,super)

摘要: 资料来源: (1)公众号-芯片学堂; (2)sv绿皮书; (3)The UVM Primer (4)硅芯思见:【124】SystemVerilog中超级英雄super (qq.com) 1.OOP (1) OOP优点:code可重用性,code可维护性,内存管理简化; 2.类 (1)类(class) 阅读全文

posted @ 2021-11-11 17:52 知北游。。 阅读(734) 评论(0) 推荐(0) 编辑

篇?-数据类型转换(隐式转换&显式转换,静态转换&动态转换$cast)

摘要: 资料来源: (1)sv绿皮书; (2)公众号-芯片学堂; (3)硅芯思见:【113】SystemVerilog中不同句柄之间的动态类型转换 (qq.com) 1. 隐式转换 (1)隐式和显示类型转换的区分通常在于有没有使用到系统函数或者操作符。 (2)隐式类型转换在SystemVerilog编程中经 阅读全文

posted @ 2021-11-11 17:41 知北游。。 阅读(623) 评论(0) 推荐(0) 编辑

[CU]callback机制2-子类继承父类的callback机制

摘要: 背景:对旧的验证平台升级,新旧验证平台基本一致,只是需要扩展my_driver的功能,从其派生出新类new_driver; 此外,旧的验证平台中大量使用了callback机制; 怎么处理才能使原来的callback函数/任务能够用于new_driver中呢? 1 class new_driver e 阅读全文

posted @ 2021-11-11 14:46 知北游。。 阅读(143) 评论(0) 推荐(0) 编辑

篇2-virtual interface

摘要: 1.virtual interface的作用 (1) virtual interface实现了验证平台与DUT的连接(在类中不能直接使用interface,只能使用virtual interface.在top_tb这样的module中可以使用interface). 2.virtual interfa 阅读全文

posted @ 2021-11-11 11:00 知北游。。 阅读(722) 评论(0) 推荐(0) 编辑

2021年11月10日

篇1-interface

摘要: 资料来源: (1)公众号-芯片学堂; (2)The UVM Primer; 1.接口的作用与构成 (1)接口将一组信号封装到一起,方便信号在验证环境组件中的连接; (2)接口不只包含一组信号,还可以包含modport,clocking block,parameter,always和initial语句 阅读全文

posted @ 2021-11-10 20:14 知北游。。 阅读(316) 评论(0) 推荐(0) 编辑

篇1-线程和对象的随机化机制

摘要: 资料来源: (1)公众号-芯片学堂(芯片学堂的文章很不错); 1.initialize RNG (1)初始化RNG是产生随机数的开始,用来给RNG初始化随机种子。 (2)每一个模块实例(module instance)、接口实例(interface instance)、程序块(program)和包( 阅读全文

posted @ 2021-11-10 16:35 知北游。。 阅读(78) 评论(0) 推荐(0) 编辑

导航