UVM 验证方法学之interface学习系列文章(五)《interface backdoor 后门访问》

0今天,分享一下interface 含有寄存器或者memory 的DUT 验证中的使用。我们知道,通过寄存器模型的引用,确实为我们验证工程师带了极大的便利。借助于它,我们可以轻松实现DUT 内部REG 或者 Memory 的读取操作。但是有些场合,比如DUT 内部寄存器并不是那么复杂,或者寄存器读取操作不是那么频繁,亦或者寄存器分布具有极强的规律。此时,我们不想去走UVM RAL flow , 去花大量精力。此时,通过 后门访问的方式,可以达到目的。当然,除此方式外,还有其它方式,比如 PLI , DPI 等。

先看DUT 。

在该DUT 内部,有一个寄存器rdata_tmp 寄存器,我们想通过后门访问的方式,直接access 这个寄存器的内部数值。那么,选取interface 的方式。

module traffic(bus_if vif);
 
   reg [3:0]      ctl_reg;    // profile, blink_red, blink_yellow, mod_en RW
   reg [1:0]      stat_reg;   // state[1:0] 
   reg [31:0]     timer_0;    // timer_g2y[31:20], timer_r2g[19:8], timer_y2r[7:0] RW
   reg [31:0]     timer_1;    // timer_g2y[31:20], timer_r2g[19:8], timer_y2r[7:0] RW
 
   reg [31:0]     data_in;
   reg [31:0]     rdata_tmp;
 
   // Set all registers to default values
   always @ (posedge vif.pclk) begin
      if (!

你可能感兴趣的:(systemverilog)