uvm 中的 systemverilog 中的事件控制“@”在分配后定义

event control "@" in systemverilog in uvm defined AFTER assignments

我正在尝试理解 "verificationguide.com" UVM 环境示例中定义的 UVM 驱动程序代码:https://www.edaplayground.com/x/5r89

在mem_driver.sv文件中,在drive()任务中,可以找到如下代码: if(req.wr_en) 开始 // 写操作 DRIV_IF.wr_en <= req.wr_en; DRIV_IF.wdata <= req.wdata; @(posedge vif.DRIVER.clk); 结束

事件控制如何@(posedge vif.DRIVER.clk);在事件被控制之后写的行? 帮助我了解开发人员在这种情况下的意图?

它用于确保 wr_en 在下一个请求事务之前至少保持一个时钟周期处于活动状态。否则下一次交易会立即将其设置回 0。