• UVM Top Testbench


    top testbench在top_tb中包含进所有的文件,将DUT放在top_tb中(例化DUT),连接好各个端口,提供clk时钟和rst_n复位信号。最主要的是要给组件中的虚接口设置接口,一般是给driver和monitor的虚接口例化接口。初始化run_test()使其自动启动UVM仿真。用config机制配置内部变量。如例:

     1 `timescale 1ns/1ps
     2 `include "uvm_macros.svh"
     3 
     4 import uvm_pkg::*;
     5 `include "my_if.sv"
     6 `include "my_transaction.sv"
     7 `include "my_sequencer.sv"
     8 `include "my_driver.sv"
     9 `include "my_monitor.sv"
    10 `include "my_agent.sv"
    11 `include "my_model.sv"
    12 `include "my_scoreboard.sv"
    13 `include "my_sequence.sv"
    14 `include "my_env.sv"
    15 `include "base_test.sv"
    16 
    17 module top_tb;
    18 
    19 reg clk;
    20 reg rst_n;
    21 reg[7:0] rxd;
    22 reg rx_dv;
    23 wire[7:0] txd;
    24 wire tx_en;
    25 
    26 my_if input_if(clk, rst_n);
    27 my_if output_if(clk, rst_n);
    28 
    29 dut my_dut(.clk(clk),
    30            .rst_n(rst_n),
    31            .rxd(input_if.data),
    32            .rx_dv(input_if.valid),
    33            .txd(output_if.data),
    34            .tx_en(output_if.valid));
    35 
    36 initial begin
    37    clk = 0;
    38    forever begin
    39       #100 clk = ~clk;
    40    end
    41 end
    42 
    43 initial begin
    44    rst_n = 1'b0;
    45    #1000;
    46    rst_n = 1'b1;
    47 end
    48 
    49 initial begin
    50    run_test("base_test");
    51 end
    52 
    53 initial begin
    54    uvm_config_db#(virtual my_if)::set(null, "uvm_test_top.env.i_agt.drv", "vif", input_if);
    55    uvm_config_db#(virtual my_if)::set(null, "uvm_test_top.env.i_agt.mon", "vif", input_if);
    56    uvm_config_db#(virtual my_if)::set(null, "uvm_test_top.env.o_agt.mon", "vif", output_if);
    57 end
    58 
    59 endmodule

    参考文献:

    [1] 测试平台说明. http://www.asicdv.com/uvm_scan.asp?id=39.

    [2] 张强. UVM实战. 机械工业出版社. 2014.07.

  • 相关阅读:
    黄金点游戏(结对项目)
    WORD COUNT
    企业级应用与互联网应用的区别
    问题
    软件工程期末学习总结
    自我介绍
    四则运算程序
    个人自评
    contenttype
    ubuntusaltstack
  • 原文地址:https://www.cnblogs.com/dpc525/p/5418622.html
Copyright © 2020-2023  润新知