跳转到主内容
思享编程网:思考分享,玩转编程世界!

如何搭建一个只有driver的简单UVM验证平台?

大家好,我是陆砚码,今天我们来聊聊如何搭建一个只有driver的简单UVM验证平台。

首先,我们先来看一下DUT(Design Under Test)的功能。DUT的功能是通过rxd接收数据,再通过txd发送出去;rx_dv是接收的数据有效指示,tx_en是发送的数据有效指示。

module dut(clk,
           rst_n, 
           rxd,
           rx_dv,
           txd,
           tx_en);
input clk;
input rst_n;
input[7:0] rxd;
input rx_dv;
output [7:0] txd;
output tx_en;

reg[7:0] txd;
reg tx_en;

always @(posedge clk) begin
   if(!rst_n) begin
      txd <= 8'b0;
      tx_en <= 1'b0;
   end
   else begin
      txd <= rxd;
      tx_en <= rx_dv;
   end
end
endmodule

接下来,我们来看看driver的实现。UVM是一个库,库中几乎所有的东西都是使用类(class)来实现。使用UVM的第一条原则是:验证平台中所有的组件应该派生自UVM中的类。每一个派生自uvm_component或其派生类的类在其new函数中要指明两个参数:name和parent。

`ifndef MY_DRIVER__SV
`define MY_DRIVER__SV
class my_driver extends uvm_driver;

   function new(string name =
                            

相关文章