![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
systemverilog
systemverilog
西南山村的ICer
日拱一卒无有尽,功不唐捐终入海
展开
-
细说systemverilog @event与wait(event.triggered)的区别
近日在工作中遇到了@event和wait(event.triggered)的细微差别。与周边同事讨论了一圈,发现大家都貌似懂他们的区别,但都无法特别严谨细致地进行解释。针对这种语法上的细节,建议直接从LRM原文着手。下面是相关的原文1. @会阻塞一个进程,直到@的事件被触发(->)后,该进程才会unblock。如果事件触发(->event)在@event先执行,则@event的进程会一直被阻塞住。如果->event和@event发生在同一个time step,就会造成竞争冒险,原创 2021-08-03 19:11:12 · 4417 阅读 · 1 评论 -
使用uvm_report_catcher屏蔽掉特定的uvm_error/uvm_warning
问题:在一些异常case或者特殊的case, 遇到VIP报uvm_error或者uvm_warning,导致刷屏或者uvm_error数量达到上限仿真强制退出了。这时,可以用uvm_report_catcher捕获到它特定的message,并将其级别设置成UVM_INFO。措施: uvm_report_cacherprovides the catch() function for users to extend. Return action_e type enum - - ...原创 2021-02-19 15:14:43 · 4434 阅读 · 3 评论 -
systemverilog中的时间单位和时间精度
1. `timescale`timescale是systemverilog/verilog的预编译指令。指定位于该语句后面的time scope (module/program/package/interface等等)的时间单位和时间精度。直到遇到新的`timescale指令或者`resetall指令。2.timeunit和timeprecisiontimeunit关键字用于指定当前time scope的时间单位,timepresision用于指定当前time scope的时间精度。他们的作用.原创 2020-12-01 16:33:15 · 4049 阅读 · 0 评论 -
uvm启动过程及phase机制实现原理介绍
我们通常会在top写下类似下面的代码module top(); import uvm_pkg::*; ...... initial begin run_test(); end ......endmoudle原创 2020-10-31 16:24:10 · 3160 阅读 · 0 评论 -
systemverilog中的wait fork和disable语句用法
disable语句用于在多进程的场景下终止一个或多个进程。原创 2020-06-10 20:59:53 · 7533 阅读 · 0 评论