最近给公司新人分享如何写一个参数化的类,干脆利用以前的课程内容,稍微整理并做了一些简化,希望对大家有帮助。
UVM提供对参数化的类的支持,下面我们通过一个例子来学习如何在UVM环境里使用参数化的类。
第一步
将所有的参数都放在一个package里从而方便管理。
package params_pkg;
//just for example
class EXAMPLE;
localparam addr_width = 8;
localparam data_width = 16;
endclass
//of course you can use fellow,it looks easier
parameter int addr_width =8;
parameter int data_width =16;
//...
endpackage
第二步
在top顶层模块中使用该参数化的package:
module top;
import uvm_pkg::*;
`include "uvm_macros.svh"
import params_pkg::*;
import tinyalu_pkg::*;
//just for example
wire[EXAMPLE::addr_width-1:0] example_address;
wire[EXAMPLE