- SV中存在一个data的类,用data的类声明一个变量数组【16】,通过for循环采用type_id::create形式进行例化创建
data data_arr[16]; for(int i=0;i<16;i++)begin data_arr[i] =data::type_id::create($sformatf("data_arr[%0d]",i)); end
-
.通过struct构建的数组结构体无法通过域的自动化声明进行注册,可采用Class方式对数据进行封装,然后再例化,可通过·uvm_field_sarray_object进行宏注册
-
通过静态数组声明的变量进行自动化域注册后,调用其打印函数后会省略部分
要解决这个问题参照微信收藏
-
event使用总结:声明一个event事件a之后,使用->操作符可以触发事件a,@a和wait(a.triggered)区别为,@a为瞬时的在->a瞬间被触发随后被重置,在单独的线程循环中可以多次阻塞,值得注意@a执行需要在->a之前;wait(a.triggered)为在->a的某一个时刻触发,随后在该时钟内时钟为真,在软件无限循环中->a之后wait(a.triggered)则会一直为真从而死循环,需要再其内部添加延时语句,此外延时语句和>a时间不一致则即使在之前触发a事件a.triggered也会为假,wait(a.triggered)需要注意该线程中延时语句和>a时间同步,否则会导致a.triggered不会被触发;
-
iff使用:Systemverilog在@事件控制中添加了iff修饰词,只有当iff后的条件为真时,@事件才会触发。注意,iff可以在always和always_ff下使用,但是不能在always_comb、always_latch中使用;例如always @ (posedge clk iff en)表示:在en为高的clk上升沿才能驱动always语句块中的语句
-
如何修改UVM仿真过程中uvm_error错误数量:UVM环境可以在build_phase中使用set_report_max_quit_count(15)来设置报告中容许报错的数量
验证经验积累
于 2023-07-05 15:45:21 首次发布