class SYS_REGFILE; //Properties for Randomizing the MOSI static bit[31:0] data[08]; function bit[31:0] get(string reg_name); bit[31:0] data_get; case(reg_name) "CHIP_ID" : data_get=data[0]; "CHIP_VLD" : data_get=data[1]; "CHIP_DATE" : data_get=data[2]; "CHIP_VISION" : data_get=data[3]; "RW_TEST" : data_get=data[4]; "INT_MASK" : data_get=data[5]; "INT_STATUS" : data_get=data[6]; "SYS_FUNC" : data_get=data[7]; endcase $display("@%8t(ns) INFO: reg_rfm RD_DATA: %8h <= ",$realtime,data_get,reg_name); return data_get; endfunction function set(string reg_name,bit[31:0] data_set); $display("@%8t(ns) INFO: reg_rfm WR_DATA: %8h => ",$realtime,data_set,reg_name); case(reg_name) "CHIP_ID" : data[0]=data_set; "CHIP_VLD" : data[1]=data_set; "CHIP_DATE" : data[2]=data_set; "CHIP_VISION" : data[3]=data_set; "RW_TEST" : data[4]=data_set; "INT_MASK" : data[5]=data_set; "INT_STATUS" : data[6]=data_set; "SYS_FUNC" : data[7]=data_set; endcase endfunction function new(); endfunction function init(); data[0]=32'h524F5554; data[1]=32'h48464E4C; data[2]=32'h20240701; data[3]=32'h01000000; data[4]=32'h02400012; data[5]=32'h00000003; data[6]=32'h0; data[7]=32'h0; endfunction endclass class DAC_REGFILE; static bit[31:0] data[13]; function bit[31:0] get(string reg_name); bit[31:0] data_get; case(reg_name) "DAC_SET" : data_get=data[00]; "DAC_DEM_7" : data_get=data[01]; "DAC_DEM_6" : data_get=data[02]; "DAC_DEM_5" : data_get=data[03]; "DAC_DEM_4" : data_get=data[04]; "DAC_DEM_3" : data_get=data[05]; "DAC_DEM_2" : data_get=data[06]; "DAC_DEM_1" : data_get=data[07]; "DAC_DEM_0" : data_get=data[08]; "DAC_PRBS_SET_1": data_get=data[09]; "DAC_PRBS_RST_1": data_get=data[10]; "DAC_PRBS_SET_0": data_get=data[11]; "DAC_PRBS_RST_0": data_get=data[12]; endcase $display("@%8t(ns) INFO: reg_rfm RD_DATA: %8h <= ",$realtime,data_get,reg_name); return data_get; endfunction function set(string reg_name,bit[31:0] data_set); $display("@%8t(ns) INFO: reg_rfm WR_DATA: %8h => ",$realtime,data_set,reg_name); case(reg_name) "DAC_SET" : data[00]=data_set; "DAC_DEM_7" : data[01]=data_set; "DAC_DEM_6" : data[02]=data_set; "DAC_DEM_5" : data[03]=data_set; "DAC_DEM_4" : data[04]=data_set; "DAC_DEM_3" : data[05]=data_set; "DAC_DEM_2" : data[06]=data_set; "DAC_DEM_1" : data[07]=data_set; "DAC_DEM_0" : data[08]=data_set; "DAC_PRBS_SET_1": data[09]=data_set; "DAC_PRBS_RST_1": data[10]=data_set; "DAC_PRBS_SET_0": data[11]=data_set; "DAC_PRBS_RST_0": data[12]=data_set; endcase endfunction function new(); endfunction function init(); data[00]=32'h0003FA20; data[01]=32'h171C1002; data[02]=32'h00E34276; data[03]=32'h2DB70B79; data[04]=32'h3E0C9513; data[05]=32'h29831398; data[06]=32'h2F6E0E81; data[07]=32'h114309CA; data[08]=32'h27972DEF; data[09]=32'h000000FF; data[10]=32'h0001FF00; data[11]=32'h0001FE00; data[12]=32'h000001FF; endfunction endclass class ADC_REGFILE; static bit[31:0] data[4]; function bit[31:0] get(string reg_name); bit[31:0] data_get; case(reg_name) "ADC_ANA" : data_get=data[0]; "ADC_DIG" : data_get=data[1]; "CLK_SEL" : data_get=data[2]; "OV_CNT" : data_get=data[3]; endcase $display("@%8t(ns) INFO: reg_rfm RD_DATA: %8h <= ",$realtime,data_get,reg_name); return data_get; endfunction function set(string reg_name,bit[31:0] data_set); $display("@%8t(ns) INFO: reg_rfm WR_DATA: %8h => ",$realtime,data_set,reg_name); case(reg_name) "ADC_ANA" : data[0]=data_set; "ADC_DIG" : data[1]=data_set; "CLK_SEL" : data[2]=data_set; "OV_CNT" : data[3]=data_set; endcase endfunction function new(); endfunction function init(); data[0]=32'h000C6DEF; data[1]=32'h000C1040; data[2]=32'h00000001; data[3]=32'h0; endfunction endclass class PLL_REGFILE; static bit[31:0] data[11]; function bit[31:0] get(string reg_name); bit[31:0] data_get; case(reg_name) "PLL_SET0" : data_get=data[00]; "PLL_SET1" : data_get=data[01]; "PLL_SET2" : data_get=data[02]; "PLL_SET3" : data_get=data[03]; "PLL_SET4" : data_get=data[04]; "PLL_SET5" : data_get=data[05]; "PLL_SET6" : data_get=data[06]; "PLL_SET7" : data_get=data[07]; "PLL_SET8" : data_get=data[08]; "PLL_SET9" : data_get=data[09]; "PLL_SET10" : data_get=data[10]; endcase $display("@%8t(ns) INFO: reg_rfm RD_DATA: %8h <= ",$realtime,data_get,reg_name); return data_get; endfunction function set(string reg_name,bit[31:0] data_set); $display("@%8t(ns) INFO: reg_rfm WR_DATA: %8h => ",$realtime,data_set,reg_name); case(reg_name) "PLL_SET0" : data[00]=data_set; "PLL_SET1" : data[01]=data_set; "PLL_SET2" : data[02]=data_set; "PLL_SET3" : data[03]=data_set; "PLL_SET4" : data[04]=data_set; "PLL_SET5" : data[05]=data_set; "PLL_SET6" : data[06]=data_set; "PLL_SET7" : data[07]=data_set; "PLL_SET8" : data[08]=data_set; "PLL_SET9" : data[09]=data_set; "PLL_SET10" : data[10]=data_set; endcase endfunction function new(); endfunction function init(); data[00]=32'h80017F2E; data[01]=32'h401E8010; data[02]=32'h05BB0884; data[03]=32'h00C80001; data[04]=32'h00001E40; data[05]=32'hFFFF0000; data[06]=32'hFE00FFFF; data[07]=32'h0; data[08]=32'h0; data[09]=32'h000301FF; data[10]=32'h00200000; endfunction endclass class DAQ_REGFILE; static bit[31:0] data[239]; function bit[31:0] get(string reg_name); bit[31:0] data_get; case(reg_name) "timer" : data_get=data[ 0]; "counter" : data_get=data[ 1]; "loc_state" : data_get=data[ 2]; "glb_state" : data_get=data[ 3]; "feed_data" : data_get=data[ 4]; "send_data" : data_get=data[ 5]; "sram_count" : data_get=data[ 6]; "push_count" : data_get=data[ 7]; "command" : data_get=data[ 8]; "function" : data_get=data[ 9]; "sample_depth" : data_get=data[ 10]; "read_threshold" : data_get=data[ 11]; "qubit_state" : data_get=data[ 12]; "read_req_ctrl" : data_get=data[ 13]; "demod_width_0" : data_get=data[ 14]; "demod_width_1" : data_get=data[ 15]; "demod_width_2" : data_get=data[ 16]; "demod_width_3" : data_get=data[ 17]; "demod_width_4" : data_get=data[ 18]; "demod_width_5" : data_get=data[ 19]; "demod_width_6" : data_get=data[ 20]; "demod_width_7" : data_get=data[ 21]; "demod_width_8" : data_get=data[ 22]; "demod_width_9" : data_get=data[ 23]; "demod_width_10" : data_get=data[ 24]; "demod_width_11" : data_get=data[ 25]; "demod_width_12" : data_get=data[ 26]; "demod_width_13" : data_get=data[ 27]; "demod_width_14" : data_get=data[ 28]; "demod_width_15" : data_get=data[ 29]; "demod_freq_0" : data_get=data[ 30]; "demod_freq_1" : data_get=data[ 31]; "demod_freq_2" : data_get=data[ 32]; "demod_freq_3" : data_get=data[ 33]; "demod_freq_4" : data_get=data[ 34]; "demod_freq_5" : data_get=data[ 35]; "demod_freq_6" : data_get=data[ 36]; "demod_freq_7" : data_get=data[ 37]; "demod_freq_8" : data_get=data[ 38]; "demod_freq_9" : data_get=data[ 39]; "demod_freq_10" : data_get=data[ 40]; "demod_freq_11" : data_get=data[ 41]; "demod_freq_12" : data_get=data[ 42]; "demod_freq_13" : data_get=data[ 43]; "demod_freq_14" : data_get=data[ 44]; "demod_freq_15" : data_get=data[ 45]; "Q0_state0_statistics" : data_get=data[ 46]; "Q0_state1_statistics" : data_get=data[ 47]; "Q0_state2_statistics" : data_get=data[ 48]; "Q0_state3_statistics" : data_get=data[ 49]; "Q1_state0_statistics" : data_get=data[ 50]; "Q1_state1_statistics" : data_get=data[ 51]; "Q1_state2_statistics" : data_get=data[ 52]; "Q1_state3_statistics" : data_get=data[ 53]; "Q2_state0_statistics" : data_get=data[ 54]; "Q2_state1_statistics" : data_get=data[ 55]; "Q2_state2_statistics" : data_get=data[ 56]; "Q2_state3_statistics" : data_get=data[ 57]; "Q3_state0_statistics" : data_get=data[ 58]; "Q3_state1_statistics" : data_get=data[ 59]; "Q3_state2_statistics" : data_get=data[ 60]; "Q3_state3_statistics" : data_get=data[ 61]; "Q4_state0_statistics" : data_get=data[ 62]; "Q4_state1_statistics" : data_get=data[ 63]; "Q4_state2_statistics" : data_get=data[ 64]; "Q4_state3_statistics" : data_get=data[ 65]; "Q5_state0_statistics" : data_get=data[ 66]; "Q5_state1_statistics" : data_get=data[ 67]; "Q5_state2_statistics" : data_get=data[ 68]; "Q5_state3_statistics" : data_get=data[ 69]; "Q6_state0_statistics" : data_get=data[ 70]; "Q6_state1_statistics" : data_get=data[ 71]; "Q6_state2_statistics" : data_get=data[ 72]; "Q6_state3_statistics" : data_get=data[ 73]; "Q7_state0_statistics" : data_get=data[ 74]; "Q7_state1_statistics" : data_get=data[ 75]; "Q7_state2_statistics" : data_get=data[ 76]; "Q7_state3_statistics" : data_get=data[ 77]; "Q8_state0_statistics" : data_get=data[ 78]; "Q8_state1_statistics" : data_get=data[ 79]; "Q8_state2_statistics" : data_get=data[ 80]; "Q8_state3_statistics" : data_get=data[ 81]; "Q9_state0_statistics" : data_get=data[ 82]; "Q9_state1_statistics" : data_get=data[ 83]; "Q9_state2_statistics" : data_get=data[ 84]; "Q9_state3_statistics" : data_get=data[ 85]; "Q10_state0_statistics" : data_get=data[ 86]; "Q10_state1_statistics" : data_get=data[ 87]; "Q10_state2_statistics" : data_get=data[ 88]; "Q10_state3_statistics" : data_get=data[ 89]; "Q11_state0_statistics" : data_get=data[ 90]; "Q11_state1_statistics" : data_get=data[ 91]; "Q11_state2_statistics" : data_get=data[ 92]; "Q11_state3_statistics" : data_get=data[ 93]; "Q12_state0_statistics" : data_get=data[ 94]; "Q12_state1_statistics" : data_get=data[ 95]; "Q12_state2_statistics" : data_get=data[ 96]; "Q12_state3_statistics" : data_get=data[ 97]; "Q13_state0_statistics" : data_get=data[ 98]; "Q13_state1_statistics" : data_get=data[ 99]; "Q13_state2_statistics" : data_get=data[100]; "Q13_state3_statistics" : data_get=data[101]; "Q14_state0_statistics" : data_get=data[102]; "Q14_state1_statistics" : data_get=data[103]; "Q14_state2_statistics" : data_get=data[104]; "Q14_state3_statistics" : data_get=data[105]; "Q15_state0_statistics" : data_get=data[106]; "Q15_state1_statistics" : data_get=data[107]; "Q15_state2_statistics" : data_get=data[108]; "Q15_state3_statistics" : data_get=data[109]; "Q0_state_est_ab_0" : data_get=data[110]; "Q0_state_est_c_0" : data_get=data[111]; "Q0_state_est_ab_1" : data_get=data[112]; "Q0_state_est_c_1" : data_get=data[113]; "Q0_state_est_ab_2" : data_get=data[114]; "Q0_state_est_c_2" : data_get=data[115]; "Q0_i_sum" : data_get=data[116]; "Q0_q_sum" : data_get=data[117]; "Q1_state_est_ab_0" : data_get=data[118]; "Q1_state_est_c_0" : data_get=data[119]; "Q1_state_est_ab_1" : data_get=data[120]; "Q1_state_est_c_1" : data_get=data[121]; "Q1_state_est_ab_2" : data_get=data[122]; "Q1_state_est_c_2" : data_get=data[123]; "Q1_i_sum" : data_get=data[124]; "Q1_q_sum" : data_get=data[125]; "Q2_state_est_ab_0" : data_get=data[126]; "Q2_state_est_c_0" : data_get=data[127]; "Q2_state_est_ab_1" : data_get=data[128]; "Q2_state_est_c_1" : data_get=data[129]; "Q2_state_est_ab_2" : data_get=data[130]; "Q2_state_est_c_2" : data_get=data[131]; "Q2_i_sum" : data_get=data[132]; "Q2_q_sum" : data_get=data[133]; "Q3_state_est_ab_0" : data_get=data[134]; "Q3_state_est_c_0" : data_get=data[135]; "Q3_state_est_ab_1" : data_get=data[136]; "Q3_state_est_c_1" : data_get=data[137]; "Q3_state_est_ab_2" : data_get=data[138]; "Q3_state_est_c_2" : data_get=data[139]; "Q3_i_sum" : data_get=data[140]; "Q3_q_sum" : data_get=data[141]; "Q4_state_est_ab_0" : data_get=data[142]; "Q4_state_est_c_0" : data_get=data[143]; "Q4_state_est_ab_1" : data_get=data[144]; "Q4_state_est_c_1" : data_get=data[145]; "Q4_state_est_ab_2" : data_get=data[146]; "Q4_state_est_c_2" : data_get=data[147]; "Q4_i_sum" : data_get=data[148]; "Q4_q_sum" : data_get=data[149]; "Q5_state_est_ab_0" : data_get=data[150]; "Q5_state_est_c_0" : data_get=data[151]; "Q5_state_est_ab_1" : data_get=data[152]; "Q5_state_est_c_1" : data_get=data[153]; "Q5_state_est_ab_2" : data_get=data[154]; "Q5_state_est_c_2" : data_get=data[155]; "Q5_i_sum" : data_get=data[156]; "Q5_q_sum" : data_get=data[157]; "Q6_state_est_ab_0" : data_get=data[158]; "Q6_state_est_c_0" : data_get=data[159]; "Q6_state_est_ab_1" : data_get=data[160]; "Q6_state_est_c_1" : data_get=data[161]; "Q6_state_est_ab_2" : data_get=data[162]; "Q6_state_est_c_2" : data_get=data[163]; "Q6_i_sum" : data_get=data[164]; "Q6_q_sum" : data_get=data[165]; "Q7_state_est_ab_0" : data_get=data[166]; "Q7_state_est_c_0" : data_get=data[167]; "Q7_state_est_ab_1" : data_get=data[168]; "Q7_state_est_c_1" : data_get=data[169]; "Q7_state_est_ab_2" : data_get=data[170]; "Q7_state_est_c_2" : data_get=data[171]; "Q7_i_sum" : data_get=data[172]; "Q7_q_sum" : data_get=data[173]; "Q8_state_est_ab_0" : data_get=data[174]; "Q8_state_est_c_0" : data_get=data[175]; "Q8_state_est_ab_1" : data_get=data[176]; "Q8_state_est_c_1" : data_get=data[177]; "Q8_state_est_ab_2" : data_get=data[178]; "Q8_state_est_c_2" : data_get=data[179]; "Q8_i_sum" : data_get=data[180]; "Q8_q_sum" : data_get=data[181]; "Q9_state_est_ab_0" : data_get=data[182]; "Q9_state_est_c_0" : data_get=data[183]; "Q9_state_est_ab_1" : data_get=data[184]; "Q9_state_est_c_1" : data_get=data[185]; "Q9_state_est_ab_2" : data_get=data[186]; "Q9_state_est_c_2" : data_get=data[187]; "Q9_i_sum" : data_get=data[188]; "Q9_q_sum" : data_get=data[189]; "Q10_state_est_ab_0" : data_get=data[190]; "Q10_state_est_c_0" : data_get=data[191]; "Q10_state_est_ab_1" : data_get=data[192]; "Q10_state_est_c_1" : data_get=data[193]; "Q10_state_est_ab_2" : data_get=data[194]; "Q10_state_est_c_2" : data_get=data[195]; "Q10_i_sum" : data_get=data[196]; "Q10_q_sum" : data_get=data[197]; "Q11_state_est_ab_0" : data_get=data[198]; "Q11_state_est_c_0" : data_get=data[199]; "Q11_state_est_ab_1" : data_get=data[200]; "Q11_state_est_c_1" : data_get=data[201]; "Q11_state_est_ab_2" : data_get=data[202]; "Q11_state_est_c_2" : data_get=data[203]; "Q11_i_sum" : data_get=data[204]; "Q11_q_sum" : data_get=data[205]; "Q12_state_est_ab_0" : data_get=data[206]; "Q12_state_est_c_0" : data_get=data[207]; "Q12_state_est_ab_1" : data_get=data[208]; "Q12_state_est_c_1" : data_get=data[209]; "Q12_state_est_ab_2" : data_get=data[210]; "Q12_state_est_c_2" : data_get=data[211]; "Q12_i_sum" : data_get=data[212]; "Q12_q_sum" : data_get=data[213]; "Q13_state_est_ab_0" : data_get=data[214]; "Q13_state_est_c_0" : data_get=data[215]; "Q13_state_est_ab_1" : data_get=data[216]; "Q13_state_est_c_1" : data_get=data[217]; "Q13_state_est_ab_2" : data_get=data[218]; "Q13_state_est_c_2" : data_get=data[219]; "Q13_i_sum" : data_get=data[220]; "Q13_q_sum" : data_get=data[221]; "Q14_state_est_ab_0" : data_get=data[222]; "Q14_state_est_c_0" : data_get=data[223]; "Q14_state_est_ab_1" : data_get=data[224]; "Q14_state_est_c_1" : data_get=data[225]; "Q14_state_est_ab_2" : data_get=data[226]; "Q14_state_est_c_2" : data_get=data[227]; "Q14_i_sum" : data_get=data[228]; "Q14_q_sum" : data_get=data[229]; "Q15_state_est_ab_0" : data_get=data[230]; "Q15_state_est_c_0" : data_get=data[231]; "Q15_state_est_ab_1" : data_get=data[232]; "Q15_state_est_c_1" : data_get=data[233]; "Q15_state_est_ab_2" : data_get=data[234]; "Q15_state_est_c_2" : data_get=data[235]; "Q15_i_sum" : data_get=data[236]; "Q15_q_sum" : data_get=data[237]; endcase $display("@%8t(ns) INFO: reg_rfm RD_DATA: %8h <= ",$realtime,data_get,reg_name); return data_get; endfunction function set(string reg_name,bit[31:0] data_set); $display("@%8t(ns) INFO: reg_rfm WR_DATA: %8h => ",$realtime,data_set,reg_name); case(reg_name) "MCU_PARA0" : data[000]=data_set; "MCU_PARA1" : data[001]=data_set; "MCU_PARA2" : data[002]=data_set; "MCU_PARA3" : data[003]=data_set; "MCU_RST0" : data[004]=data_set; "MCU_RST1" : data[005]=data_set; "MCU_RST2" : data[006]=data_set; "MCU_RST3" : data[007]=data_set; "Timer" : data[008]=data_set; "Counter" : data[009]=data_set; "LOC_State" : data[010]=data_set; "GLB_State" : data[011]=data_set; "FEED_Data" : data[012]=data_set; "SEND_Data" : data[013]=data_set; "Frequency" : data[014]=data_set; "Phase" : data[015]=data_set; "command" : data[016]=data_set; "function" : data[017]=data_set; "wave_sample_depth" : data[018]=data_set; "demod_win_width" : data[019]=data_set; "read_threshold" : data[020]=data_set; "qubit_state" : data[021]=data_set; "demod_width_q0" : data[032]=data_set; "demod_width_q1" : data[033]=data_set; "demod_width_q2" : data[034]=data_set; "demod_width_q3" : data[035]=data_set; "demod_width_q4" : data[036]=data_set; "demod_width_q5" : data[037]=data_set; "demod_width_q6" : data[038]=data_set; "demod_width_q7" : data[039]=data_set; "demod_width_q8" : data[040]=data_set; "demod_width_q9" : data[041]=data_set; "demod_width_q10" : data[042]=data_set; "demod_width_q11" : data[043]=data_set; "demod_width_q12" : data[044]=data_set; "demod_width_q13" : data[045]=data_set; "demod_width_q14" : data[046]=data_set; "demod_width_q15" : data[047]=data_set; "Q0_state0_statistics" : data[064]=data_set; "Q0_state1_statistics" : data[065]=data_set; "Q0_state2_statistics" : data[066]=data_set; "Q0_state3_statistics" : data[067]=data_set; "Q1_state0_statistics" : data[068]=data_set; "Q1_state1_statistics" : data[069]=data_set; "Q1_state2_statistics" : data[070]=data_set; "Q1_state3_statistics" : data[071]=data_set; "Q2_state0_statistics" : data[072]=data_set; "Q2_state1_statistics" : data[073]=data_set; "Q2_state2_statistics" : data[074]=data_set; "Q2_state3_statistics" : data[075]=data_set; "Q3_state0_statistics" : data[076]=data_set; "Q3_state1_statistics" : data[077]=data_set; "Q3_state2_statistics" : data[078]=data_set; "Q3_state3_statistics" : data[079]=data_set; "Q4_state0_statistics" : data[080]=data_set; "Q4_state1_statistics" : data[081]=data_set; "Q4_state2_statistics" : data[082]=data_set; "Q4_state3_statistics" : data[083]=data_set; "Q5_state0_statistics" : data[084]=data_set; "Q5_state1_statistics" : data[085]=data_set; "Q5_state2_statistics" : data[086]=data_set; "Q5_state3_statistics" : data[087]=data_set; "Q6_state0_statistics" : data[088]=data_set; "Q6_state1_statistics" : data[089]=data_set; "Q6_state2_statistics" : data[090]=data_set; "Q6_state3_statistics" : data[091]=data_set; "Q7_state0_statistics" : data[092]=data_set; "Q7_state1_statistics" : data[093]=data_set; "Q7_state2_statistics" : data[094]=data_set; "Q7_state3_statistics" : data[095]=data_set; "Q8_state0_statistics" : data[096]=data_set; "Q8_state1_statistics" : data[097]=data_set; "Q8_state2_statistics" : data[098]=data_set; "Q8_state3_statistics" : data[099]=data_set; "Q9_state0_statistics" : data[100]=data_set; "Q9_state1_statistics" : data[101]=data_set; "Q9_state2_statistics" : data[102]=data_set; "Q9_state3_statistics" : data[103]=data_set; "Q10_state0_statistics" : data[104]=data_set; "Q10_state1_statistics" : data[105]=data_set; "Q10_state2_statistics" : data[106]=data_set; "Q10_state3_statistics" : data[107]=data_set; "Q11_state0_statistics" : data[108]=data_set; "Q11_state1_statistics" : data[109]=data_set; "Q11_state2_statistics" : data[110]=data_set; "Q11_state3_statistics" : data[111]=data_set; "Q12_state0_statistics" : data[112]=data_set; "Q12_state1_statistics" : data[113]=data_set; "Q12_state2_statistics" : data[114]=data_set; "Q12_state3_statistics" : data[115]=data_set; "Q13_state0_statistics" : data[116]=data_set; "Q13_state1_statistics" : data[117]=data_set; "Q13_state2_statistics" : data[118]=data_set; "Q13_state3_statistics" : data[119]=data_set; "Q14_state0_statistics" : data[120]=data_set; "Q14_state1_statistics" : data[121]=data_set; "Q14_state2_statistics" : data[122]=data_set; "Q14_state3_statistics" : data[123]=data_set; "Q15_state0_statistics" : data[124]=data_set; "Q15_state1_statistics" : data[125]=data_set; "Q15_state2_statistics" : data[126]=data_set; "Q15_state3_statistics" : data[127]=data_set; "Q0_state_est_ab_0" : data[128]=data_set; "Q0_state_est_c_0" : data[129]=data_set; "Q0_state_est_ab_1" : data[130]=data_set; "Q0_state_est_c_1" : data[131]=data_set; "Q0_state_est_ab_2" : data[132]=data_set; "Q0_state_est_c_2" : data[133]=data_set; "Q0_i_sum" : data[134]=data_set; "Q0_q_sum" : data[135]=data_set; "Q1_state_est_ab_0" : data[136]=data_set; "Q1_state_est_c_0" : data[137]=data_set; "Q1_state_est_ab_1" : data[138]=data_set; "Q1_state_est_c_1" : data[139]=data_set; "Q1_state_est_ab_2" : data[140]=data_set; "Q1_state_est_c_2" : data[141]=data_set; "Q1_i_sum" : data[142]=data_set; "Q1_q_sum" : data[143]=data_set; "Q2_state_est_ab_0" : data[144]=data_set; "Q2_state_est_c_0" : data[145]=data_set; "Q2_state_est_ab_1" : data[146]=data_set; "Q2_state_est_c_1" : data[147]=data_set; "Q2_state_est_ab_2" : data[148]=data_set; "Q2_state_est_c_2" : data[149]=data_set; "Q2_i_sum" : data[150]=data_set; "Q2_q_sum" : data[151]=data_set; "Q3_state_est_ab_0" : data[152]=data_set; "Q3_state_est_c_0" : data[153]=data_set; "Q3_state_est_ab_1" : data[154]=data_set; "Q3_state_est_c_1" : data[155]=data_set; "Q3_state_est_ab_2" : data[156]=data_set; "Q3_state_est_c_2" : data[157]=data_set; "Q3_i_sum" : data[158]=data_set; "Q3_q_sum" : data[159]=data_set; "Q4_state_est_ab_0" : data[160]=data_set; "Q4_state_est_c_0" : data[161]=data_set; "Q4_state_est_ab_1" : data[162]=data_set; "Q4_state_est_c_1" : data[163]=data_set; "Q4_state_est_ab_2" : data[164]=data_set; "Q4_state_est_c_2" : data[165]=data_set; "Q4_i_sum" : data[166]=data_set; "Q4_q_sum" : data[167]=data_set; "Q5_state_est_ab_0" : data[168]=data_set; "Q5_state_est_c_0" : data[169]=data_set; "Q5_state_est_ab_1" : data[170]=data_set; "Q5_state_est_c_1" : data[171]=data_set; "Q5_state_est_ab_2" : data[172]=data_set; "Q5_state_est_c_2" : data[173]=data_set; "Q5_i_sum" : data[174]=data_set; "Q5_q_sum" : data[175]=data_set; "Q6_state_est_ab_0" : data[176]=data_set; "Q6_state_est_c_0" : data[177]=data_set; "Q6_state_est_ab_1" : data[178]=data_set; "Q6_state_est_c_1" : data[179]=data_set; "Q6_state_est_ab_2" : data[180]=data_set; "Q6_state_est_c_2" : data[181]=data_set; "Q6_i_sum" : data[182]=data_set; "Q6_q_sum" : data[183]=data_set; "Q7_state_est_ab_0" : data[184]=data_set; "Q7_state_est_c_0" : data[185]=data_set; "Q7_state_est_ab_1" : data[186]=data_set; "Q7_state_est_c_1" : data[187]=data_set; "Q7_state_est_ab_2" : data[188]=data_set; "Q7_state_est_c_2" : data[189]=data_set; "Q7_i_sum" : data[190]=data_set; "Q7_q_sum" : data[191]=data_set; "Q8_state_est_ab_0" : data[192]=data_set; "Q8_state_est_c_0" : data[193]=data_set; "Q8_state_est_ab_1" : data[194]=data_set; "Q8_state_est_c_1" : data[195]=data_set; "Q8_state_est_ab_2" : data[196]=data_set; "Q8_state_est_c_2" : data[197]=data_set; "Q8_i_sum" : data[198]=data_set; "Q8_q_sum" : data[199]=data_set; "Q9_state_est_ab_0" : data[200]=data_set; "Q9_state_est_c_0" : data[201]=data_set; "Q9_state_est_ab_1" : data[202]=data_set; "Q9_state_est_c_1" : data[203]=data_set; "Q9_state_est_ab_2" : data[204]=data_set; "Q9_state_est_c_2" : data[205]=data_set; "Q9_i_sum" : data[206]=data_set; "Q9_q_sum" : data[207]=data_set; "Q10_state_est_ab_0" : data[208]=data_set; "Q10_state_est_c_0" : data[209]=data_set; "Q10_state_est_ab_1" : data[210]=data_set; "Q10_state_est_c_1" : data[211]=data_set; "Q10_state_est_ab_2" : data[212]=data_set; "Q10_state_est_c_2" : data[213]=data_set; "Q10_i_sum" : data[214]=data_set; "Q10_q_sum" : data[215]=data_set; "Q11_state_est_ab_0" : data[216]=data_set; "Q11_state_est_c_0" : data[217]=data_set; "Q11_state_est_ab_1" : data[218]=data_set; "Q11_state_est_c_1" : data[219]=data_set; "Q11_state_est_ab_2" : data[220]=data_set; "Q11_state_est_c_2" : data[221]=data_set; "Q11_i_sum" : data[222]=data_set; "Q11_q_sum" : data[223]=data_set; "Q12_state_est_ab_0" : data[224]=data_set; "Q12_state_est_c_0" : data[225]=data_set; "Q12_state_est_ab_1" : data[226]=data_set; "Q12_state_est_c_1" : data[227]=data_set; "Q12_state_est_ab_2" : data[228]=data_set; "Q12_state_est_c_2" : data[229]=data_set; "Q12_i_sum" : data[230]=data_set; "Q12_q_sum" : data[231]=data_set; "Q13_state_est_ab_0" : data[232]=data_set; "Q13_state_est_c_0" : data[233]=data_set; "Q13_state_est_ab_1" : data[234]=data_set; "Q13_state_est_c_1" : data[235]=data_set; "Q13_state_est_ab_2" : data[236]=data_set; "Q13_state_est_c_2" : data[237]=data_set; "Q13_i_sum" : data[238]=data_set; "Q13_q_sum" : data[239]=data_set; "Q14_state_est_ab_0" : data[240]=data_set; "Q14_state_est_c_0" : data[241]=data_set; "Q14_state_est_ab_1" : data[242]=data_set; "Q14_state_est_c_1" : data[243]=data_set; "Q14_state_est_ab_2" : data[244]=data_set; "Q14_state_est_c_2" : data[245]=data_set; "Q14_i_sum" : data[246]=data_set; "Q14_q_sum" : data[247]=data_set; "Q15_state_est_ab_0" : data[248]=data_set; "Q15_state_est_c_0" : data[249]=data_set; "Q15_state_est_ab_1" : data[250]=data_set; "Q15_state_est_c_1" : data[251]=data_set; "Q15_state_est_ab_2" : data[252]=data_set; "Q15_state_est_c_2" : data[253]=data_set; "Q15_i_sum" : data[254]=data_set; "Q15_q_sum" : data[255]=data_set; endcase endfunction function new(); endfunction function init(); int j=0; foreach(data[i]) data[i]=32'b0; data[18]=32'h100; data[19]=32'h100; data[20]=32'h80; for(j=32;j<48;j++) data[j]=32'h100; endfunction endclass class AWG_REGFILE; static bit[31:0] data[20]; function bit[31:0] get(string reg_name); bit[31:0] data_get; case(reg_name) "MCU_PARA0" : data_get=data[00]; "MCU_PARA1" : data_get=data[01]; "MCU_PARA2" : data_get=data[02]; "MCU_PARA3" : data_get=data[03]; "MCU_RST0" : data_get=data[04]; "MCU_RST1" : data_get=data[05]; "MCU_RST2" : data_get=data[06]; "MCU_RST3" : data_get=data[07]; "Timer" : data_get=data[08]; "Counter" : data_get=data[09]; "LOC_State" : data_get=data[10]; "GLB_State" : data_get=data[11]; "FEED_Data" : data_get=data[12]; "Amplitude" : data_get=data[13]; "Frequency" : data_get=data[14]; "Phase" : data_get=data[15]; "Command" : data_get=data[16]; "Function" : data_get=data[17]; "pump_ctrl" : data_get=data[18]; "maker_ctrl" : data_get=data[19]; endcase $display("@%8t(ns) INFO: reg_rfm RD_DATA: %8h <= ",$realtime,data_get,reg_name); return data_get; endfunction function set(string reg_name,bit[31:0] data_set); $display("@%8t(ns) INFO: reg_rfm WR_DATA: %8h => ",$realtime,data_set,reg_name); case(reg_name) "MCU_PARA0" : data[00]=data_set; "MCU_PARA1" : data[01]=data_set; "MCU_PARA2" : data[02]=data_set; "MCU_PARA3" : data[03]=data_set; "MCU_RST0" : data[04]=data_set; "MCU_RST1" : data[05]=data_set; "MCU_RST2" : data[06]=data_set; "MCU_RST3" : data[07]=data_set; "Timer" : data[08]=data_set; "Counter" : data[09]=data_set; "LOC_State" : data[10]=data_set; "GLB_State" : data[11]=data_set; "FEED_Data" : data[12]=data_set; "Amplitude" : data[13]=data_set; "Frequency" : data[14]=data_set; "Phase" : data[15]=data_set; "Command" : data[16]=data_set; "Function" : data[17]=data_set; "pump_ctrl" : data[18]=data_set; "maker_ctrl" : data[19]=data_set; endcase endfunction function new(); endfunction function init(); foreach(data[i]) data[i]=32'b0; data[13]=32'h40000000; data[14]=32'h10000000; data[18]=32'h300; data[19]=32'h300; endfunction endclass class CLK_REGFILE; static bit[31:0] data[4]; function bit[31:0] get(string reg_name); bit[31:0] data_get; case(reg_name) "CLK_SET0" : data_get=data[0]; "CLK_SET1" : data_get=data[1]; "CLK_SET2" : data_get=data[2]; "CLK_SET3" : data_get=data[3]; endcase $display("@%8t(ns) INFO: reg_rfm RD_DATA: %8h <= ",$realtime,data_get,reg_name); return data_get; endfunction function set(string reg_name,bit[31:0] data_set); $display("@%8t(ns) INFO: reg_rfm WR_DATA: %8h => ",$realtime,data_set,reg_name); case(reg_name) "CLK_SET0" : data[0]=data_set; "CLK_SET1" : data[1]=data_set; "CLK_SET2" : data[2]=data_set; "CLK_SET3" : data[3]=data_set; endcase endfunction function new(); endfunction function init(); data[0]=32'h4E189866; data[1]=32'h0081FFC0; data[2]=32'h01E40190; data[3]=32'h0; endfunction endclass class RAM #(int size=32768); static bit[7:0] data[size]; function new(); endfunction function get32bit(bit[24:0] start, ref bit[31:0] get_data[$]); int i=0,j=0,len=0; bit[31:0] temp; len = get_data.size(); get_data.delete(); if(len >= size/4) begin $display("Warnning: address outnumber!"); end for(i=0;i= size) begin $display("Warnning: address outnumber!"); end for(i=0;i= size/4) begin $display("Warnning: address outnumber!"); end for(i=0;i= size) begin $display("Warnning: address outnumber!"); end for(i=0;i