![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UVM
Vinson_Yin
这个作者很懒,什么都没留下…
展开
-
UVM 打印realtime
加上define UVM_USE_REALTIME_IN_MSGS原创 2022-01-24 18:00:40 · 1097 阅读 · 1 评论 -
UVM tips and tricks
1.Use of Macros to Overcome Errors Faced in Packagepackage pkg1; `include "adder_design.sv" `include "tb.sv"endpackagepackage pkg2; `include "adder_design.sv" `include "adder_tb.sv"endpackagemodule top(); `ifndef ADDER_DESIGN `defin...原创 2021-02-27 19:19:06 · 312 阅读 · 0 评论 -
UVM – Stop Hitting Your Brother Coding Guidelines
Configuration Tipsdon't config_db the individual values, group values tnto config object calling set()/get() group a component's configuration: env and agent config_db 明确路径, 减少wildcard;config_db::get如果失败,打印提示 config 跟TB 匹配Transaction Tipswrite .原创 2021-02-09 15:45:19 · 114 阅读 · 0 评论 -
UVM::uvm_do function about sub-sequence
关注点1:在sequence中执行uvm_do(sub_sequence,...) 时,sub sequence的pre_body(), post_body() 不会执行, 原因:如果user把objection 的raise/drop放在pre_body/post_body中,而在一个环境中objection不希望出现在很多地方,所以在parent sequence中加入objection机制,sub sequence中pre/post body函数不执行,sub sequence中也不会有objecti原创 2021-01-28 11:45:51 · 278 阅读 · 0 评论 -
UVM TLM2: SystemC和SV 通信
SystemC 介绍SystemC不是一门新的语言,而是基于C++开发的libraryTLM2 介绍如果都是SV code的话,结构上类型TLM1TLM2 提供了下面2中传输接口Blocking (b_transport) completes the entire transaction within a single method call Non-blocking (nb_transport) describes the progress of a trans原创 2020-09-08 14:47:42 · 1767 阅读 · 0 评论 -
uvm pre_abort when fatal exit
// UVM pre_abort() : Called prior to UVM_EXIT, e.g. when a fatal occurs // virtual function void pre_abort(); // Call extract and report so that the state of the scoreboard is printed...原创 2018-11-07 11:48:10 · 540 阅读 · 0 评论 -
Functional Coverage Development Tips: Do’s and Don’ts
https://verificationacademy.com/verification-horizons/june-2014-volume-10-issue-2/Functional-Coverage-Development-Tips-Dos-and-DontsINTRODUCTIONA verification engineer's fundamental goal is ensuring t...转载 2018-06-06 16:44:15 · 484 阅读 · 0 评论 -
systemverilog 在class中使用force
1.直接force某个值,比如0/1/a之类的,可以在class中直接force2.force某个变量的值,比如 force dut.timer=timer, 如果timer是一个动态变量的话,编译会报错“Class data is not allowed in non-procedural context.”,简单的解法是把timer定义成static类型3.如果2中不能简单定义成static类...原创 2018-04-29 11:19:43 · 9429 阅读 · 0 评论 -
UVM:: drop all objection forcelly
在VIP中一般有如下代码phase.raise_objection(this); get_next_item(req); drive_command(req);seq_item_port.item_done();phase.drop_objection(this);但是有时候环境中有interrupt,使得vip完成不了一次握手就要推出,这样就需要在外部强制drop objection方法如下:...原创 2018-03-15 16:45:57 · 1030 阅读 · 0 评论 -
UVM usage--report/uvm_hdl_read/uvm_field
report mechanismuvm_report_object.svh :: get_report_verbosity_level(uvm_severity severity=UVM_INFO, string id=""); -> call uvm_report_handler::get_verbosity_level(severity, id);-> severity_id_ve...原创 2017-12-09 13:21:50 · 801 阅读 · 0 评论 -
UVM callback
UVM callback examplestep1实现callback classclass driver_cb extends uvm_callback; extern virtual task <callback task/function>;endclassstep 2实现functional classclass my_driver extends uvm_driver; typedef driver_cb cb_type; typedef m_原创 2020-09-07 15:13:16 · 234 阅读 · 0 评论