SPI_Test/tb/testbench/mcureg_tb/mcureg_trans.sv

60 lines
1.5 KiB
Systemverilog

class mcureg_trans;
rand bit[3 :0] wrmask ;
rand bit[2 :0] fb_st_info ;
rand bit[31 :0] run_time ;
rand bit[31 :0] instr_num ;
rand bit[31 :0] mcu_param[3:0] ; // MCU parameter 0~3
rand bit[31 :0] wrmask_time ;
rand bit[31 :0] fb_st_info_time ;
rand bit[31 :0] run_time_time ;
rand bit[31 :0] instr_num_time ;
rand bit[31 :0] mcu_param_time[3:0] ;
rand bit[31 :0] mcu_result [3:0] ; // MCU result 0~3
rand bit[31 :0] mcu_cwfr [3:0] ; // Carrier frequency ctrl word 0~3
rand bit[31 :0] mcu_gapr [7:0] ; // Carrier phase ctrl word 0~3
rand bit[31 :0] mcu_ampr [3:0] ; // Carrier Amplitude 0~3
rand bit[31 :0] mcu_baisr [3:0] ; // Carrier Bais 0~3
rand bit[1 :0] mcu_intp_sel ; //2'b00:HBF;2'b01:Nearest-neighbor interpolator;
rand bit mcu_nco_pha_clr ;
rand bit[15 :0] mcu_rz_pha ;
constraint cstr {
wrmask == 4'b1111 ;
wrmask_time >= 0 ;
fb_st_info_time >= 0 ;
run_time_time >= 0 ;
instr_num_time >= 0 ;
mcu_param_time[0] >= 0 ;
mcu_param_time[1] >= 0 ;
mcu_param_time[2] >= 0 ;
mcu_param_time[3] >= 0 ;
wrmask_time <= 2000 ;
fb_st_info_time <= 2000 ;
run_time_time <= 2000 ;
instr_num_time <= 2000 ;
mcu_param_time[0] <= 2000 ;
mcu_param_time[1] <= 2000 ;
mcu_param_time[2] <= 2000 ;
mcu_param_time[3] <= 2000 ;
}
function new();
endfunction
endclass : mcureg_trans