[SV]如何在class/module/interface共用同一个枚举变量

在UVM ENV中经常会用到枚举变量,往往会在多处使用同一个枚举变量,那怎么实现呢,上干货~~

首先,先定义枚举变量,并把枚举变量单独包成一个package,这很关键~~

package common_pkg;

  typedef enum bit[1:0]{
    IDLE = 2'b00,
    BUSY = 2'b01
  } fsm_e ;

endpackage

如果想在interface中使用枚举类型fsm_e,把common_pkg import进来;

interface dut_if#(WIDTH) (input bit clk,input bit rst_n);
  import common_pkg::*;
  ....

endinterface

如果想在module中中使用枚举类型fsm_e,把common_pkg import进来;

module comm_chk import common_pkg::*;
 #(WIDTH) (
  input fsm_e fsm_state;
  );
  ...
endmodule

 在filelist中列出common_pkg

+incdir+/proj/uvm/env
/proj/uvm/env/common_pkg.sv

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值