// ========== Copyright Header Begin ========================================== // // OpenSPARC T2 Processor File: mac_shadow_class.vr // Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved // 4150 Network Circle, Santa Clara, California 95054, U.S.A. // // * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; version 2 of the License. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // For the avoidance of doubt, and except that if any non-GPL license // choice is available it will apply instead, Sun elects to use only // the General Public License version 2 (GPLv2) at this time for any // software where a choice of GPL license versions is made // available with the language indicating that GPLv2 or any later version // may be used, or where a choice of which version of the GPL is applied is // otherwise unspecified. // // Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, // CA 95054 USA or visit www.sun.com if you need additional information or // have any questions. // // ========== Copyright Header End ============================================ #include #include "bmac_memory_map.vri" #include "neptune_memory_map.vri" class mac_shadow_cl { integer port_id; bit [32:0] all_mac_regs[]; bit [32:0] fall_mac_regs[]; bit [47:0] fmac0_addr; bit [47:0] fmac1_addr; bit [47:0] fmac2_addr; bit [47:0] fmac3_addr; bit [31:0] btxmac_sw_rst; bit [31:0] brxmac_sw_rst; bit [31:0] mac_send_pause; bit [31:0] btxmac_status; bit [31:0] brxmac_status; bit [31:0] bmac_ctrl_stat; bit [31:0] btxmac_stat_msk; bit [31:0] brxmac_stat_msk; bit [31:0] bmac_c_s_msk; bit [31:0] txmac_config; bit [31:0] rxmac_config; bit [31:0] mac_ctrl_config; bit [31:0] mac_xif_config; bit [31:0] mac_ipg0; bit [31:0] mac_ipg1; bit [31:0] mac_ipg2; bit [31:0] mac_slot_time; bit [31:0] bmac_min; bit [31:0] bmac_max; bit [31:0] mac_pa_size; bit [31:0] mac_jam_size; bit [31:0] mac_attmpt_lmt; bit [31:0] mac_ctrl_type; bit [31:0] bmac_addr0; bit [31:0] bmac_addr1; bit [31:0] bmac_addr2; bit [31:0] mac_addr3; bit [31:0] mac_addr4; bit [31:0] mac_addr5; bit [31:0] mac_addr6; bit [31:0] mac_addr7; bit [31:0] mac_addr8; bit [31:0] mac_addr9; bit [31:0] mac_addr10; bit [31:0] mac_addr11; bit [31:0] mac_addr12; bit [31:0] mac_addr13; bit [31:0] mac_addr14; bit [31:0] mac_addr15; bit [31:0] mac_addr16; bit [31:0] mac_addr17; bit [31:0] mac_addr18; bit [31:0] mac_addr19; bit [31:0] mac_addr20; bit [31:0] mac_addr21; bit [31:0] mac_addr22; bit [31:0] mac_addr23; bit [31:0] mac_addr24; bit [31:0] mac_addr25; bit [31:0] mac_addr26; bit [31:0] mac_addr27; bit [31:0] mac_addr28; bit [31:0] mac_addr29; bit [31:0] mac_addr30; bit [31:0] mac_addr31; bit [31:0] mac_addr32; bit [31:0] mac_addr33; bit [31:0] mac_addr34; bit [31:0] mac_addr35; bit [31:0] mac_addr36; bit [31:0] mac_addr37; bit [31:0] mac_addr38; bit [31:0] mac_addr39; bit [31:0] mac_addr40; bit [31:0] mac_addr41; bit [31:0] mac_addr42; bit [31:0] mac_addr43; bit [31:0] mac_addr44; bit [31:0] mac_fc_addr0; bit [31:0] mac_fc_addr1; bit [31:0] mac_fc_addr2; bit [31:0] mac_add_filt0; bit [31:0] mac_add_filt1; bit [31:0] mac_add_filt2; bit [31:0] mac_add_filt12_mask; bit [31:0] mac_add_filt00_mask; bit [31:0] mac_hash_tbl0; bit [31:0] mac_hash_tbl1; bit [31:0] mac_hash_tbl2; bit [31:0] mac_hash_tbl3; bit [31:0] mac_hash_tbl4; bit [31:0] mac_hash_tbl5; bit [31:0] mac_hash_tbl6; bit [31:0] mac_hash_tbl7; bit [31:0] mac_hash_tbl8; bit [31:0] mac_hash_tbl9; bit [31:0] mac_hash_tbl10; bit [31:0] mac_hash_tbl11; bit [31:0] mac_hash_tbl12; bit [31:0] mac_hash_tbl13; bit [31:0] mac_hash_tbl14; bit [31:0] mac_hash_tbl15; bit [31:0] bmac_col_cnt; bit [31:0] bmac_oa_col_cnt; bit [31:0] bmac_ex_col_cnt; bit [31:0] bmac_lt_col_cnt; bit [31:0] mac_def_timer; bit [31:0] bmac_pk_att_cnt; bit [31:0] brxmac_frm_cnt; bit [31:0] mac_len_er_cnt; bit [31:0] bmac_al_er_cnt; bit [31:0] bmac_crc_er_cnt; bit [31:0] bmac_cd_vio_cnt; bit [31:0] mac_rnd_seed; bit [31:0] bmac_sm_reg; bit [31:0] bmac_altad_cmpen; bit [31:0] bmac_host_inf0; bit [31:0] bmac_host_inf1; bit [31:0] bmac_host_inf2; bit [31:0] bmac_host_inf3; bit [31:0] bmac_host_inf4; bit [31:0] bmac_host_inf5; bit [31:0] bmac_host_inf6; bit [31:0] bmac_host_inf7; bit [31:0] btxmac_frm_cnt; bit [31:0] btxmac_byte_cnt; bit [31:0] brxmac_byte_cnt; task new(integer p) { integer i; port_id = p; btxmac_sw_rst=32'h0000_0000; brxmac_sw_rst=32'h0000_0000; mac_send_pause=32'h0000_xxxx; btxmac_status=32'h0000_0000; brxmac_status=32'h0000_0000; bmac_ctrl_stat=32'h0000_0000; btxmac_stat_msk=32'h0000_01ff; brxmac_stat_msk=32'h0000_007f; bmac_c_s_msk=32'h0000_0007; txmac_config=32'h0000_0000; rxmac_config=32'h0000_0000; mac_ctrl_config=32'h0000_0000; mac_xif_config=32'h0000_000a; mac_ipg0=32'hxxxx_xxxx; mac_ipg1=32'hxxxx_xxxx; mac_ipg2=32'hxxxx_xxxx; mac_slot_time=32'hxxxx_xxxx; bmac_min=32'hxxxx_xxxx; bmac_max= {16'hxxxx,1'b0,15'hxxxx}; mac_pa_size=32'hxxxx_xxxx; mac_jam_size=32'hxxxx_xxxx; mac_attmpt_lmt=32'hxxxx_xxxx; mac_ctrl_type=32'hxxxx_xxxx; bmac_addr0=32'hxxxx_xxxx; bmac_addr1=32'hxxxx_xxxx; bmac_addr2=32'hxxxx_xxxx; mac_addr3=32'hxxxx_xxxx; mac_addr4=32'hxxxx_xxxx; mac_addr5=32'hxxxx_xxxx; mac_addr6=32'hxxxx_xxxx; mac_addr7=32'hxxxx_xxxx; mac_addr8=32'hxxxx_xxxx; mac_addr9=32'hxxxx_xxxx; mac_addr10=32'hxxxx_xxxx; mac_addr11=32'hxxxx_xxxx; mac_addr12=32'hxxxx_xxxx; mac_addr13=32'hxxxx_xxxx; mac_addr14=32'hxxxx_xxxx; mac_addr15=32'hxxxx_xxxx; mac_addr16=32'hxxxx_xxxx; mac_addr17=32'hxxxx_xxxx; mac_addr18=32'hxxxx_xxxx; mac_addr19=32'hxxxx_xxxx; mac_addr20=32'hxxxx_xxxx; mac_addr21=32'hxxxx_xxxx; mac_addr22=32'hxxxx_xxxx; mac_addr23=32'hxxxx_xxxx; mac_addr24=32'hxxxx_xxxx; mac_addr25=32'hxxxx_xxxx; mac_addr26=32'hxxxx_xxxx; mac_addr27=32'hxxxx_xxxx; mac_addr28=32'hxxxx_xxxx; mac_addr29=32'hxxxx_xxxx; mac_addr30=32'hxxxx_xxxx; mac_addr31=32'hxxxx_xxxx; mac_addr32=32'hxxxx_xxxx; mac_addr33=32'hxxxx_xxxx; mac_addr34=32'hxxxx_xxxx; mac_addr35=32'hxxxx_xxxx; mac_addr36=32'hxxxx_xxxx; mac_addr37=32'hxxxx_xxxx; mac_addr38=32'hxxxx_xxxx; mac_addr39=32'hxxxx_xxxx; mac_addr40=32'hxxxx_xxxx; mac_addr41=32'hxxxx_xxxx; mac_addr42=32'hxxxx_xxxx; mac_addr43=32'hxxxx_xxxx; mac_addr44=32'hxxxx_xxxx; mac_fc_addr0=32'hxxxx_xxxx; mac_fc_addr1=32'hxxxx_xxxx; mac_fc_addr2=32'hxxxx_xxxx; mac_add_filt0=32'hxxxx_xxxx; mac_add_filt1=32'hxxxx_xxxx; mac_add_filt2=32'hxxxx_xxxx; mac_add_filt12_mask=32'hxxxx_xxxx; mac_add_filt00_mask=32'hxxxx_xxxx; mac_hash_tbl0=32'hxxxx_xxxx; mac_hash_tbl1=32'hxxxx_xxxx; mac_hash_tbl2=32'hxxxx_xxxx; mac_hash_tbl3=32'hxxxx_xxxx; mac_hash_tbl4=32'hxxxx_xxxx; mac_hash_tbl5=32'hxxxx_xxxx; mac_hash_tbl6=32'hxxxx_xxxx; mac_hash_tbl7=32'hxxxx_xxxx; mac_hash_tbl8=32'hxxxx_xxxx; mac_hash_tbl9=32'hxxxx_xxxx; mac_hash_tbl10=32'hxxxx_xxxx; mac_hash_tbl11=32'hxxxx_xxxx; mac_hash_tbl12=32'hxxxx_xxxx; mac_hash_tbl13=32'hxxxx_xxxx; mac_hash_tbl14=32'hxxxx_xxxx; mac_hash_tbl15=32'hxxxx_xxxx; bmac_col_cnt=32'hxxxx_xxxx; bmac_oa_col_cnt=32'hxxxx_xxxx; bmac_ex_col_cnt=32'hxxxx_xxxx; bmac_lt_col_cnt=32'hxxxx_xxxx; mac_def_timer=32'hxxxx_xxxx; bmac_pk_att_cnt=32'h0000_0000; brxmac_frm_cnt=32'hxxxx_xxxx; mac_len_er_cnt=32'hxxxx_xxxx; bmac_al_er_cnt=32'hxxxx_xxxx; bmac_crc_er_cnt=32'hxxxx_xxxx; bmac_cd_vio_cnt=32'hxxxx_xxxx; mac_rnd_seed=32'hxxxx_xxxx; bmac_sm_reg=32'h0000_0000; bmac_altad_cmpen=32'h0000_0000; bmac_host_inf0=32'h0000_0000; bmac_host_inf1=32'h0000_0000; bmac_host_inf2=32'h0000_0000; bmac_host_inf3=32'h0000_0000; bmac_host_inf4=32'h0000_0000; bmac_host_inf5=32'h0000_0000; bmac_host_inf6=32'h0000_0000; bmac_host_inf7=32'h0000_0000; btxmac_byte_cnt=32'hxxxx_xxxx; btxmac_frm_cnt=32'hxxxx_xxxx; brxmac_byte_cnt=32'hxxxx_xxxx; } task put_fdata(integer mport, bit [47:0] data) { case(mport) { 0: fmac0_addr = data; 1: fmac1_addr = data; 2: fmac2_addr = data; 3: fmac3_addr = data; } } task get_fdata(integer mport, var bit[47:0] data) { case(mport) { 0: data = fmac0_addr ; 1: data = fmac1_addr ; 2: data = fmac2_addr ; 3: data = fmac3_addr ; } } task get_data (bit [32:0] addr, var bit [31:0] data, var bit [31:0] data_mask, var bit data_valid) { integer i=0; data_mask = 32'hffff_ffff; data_valid = 1; case (addr[11:0]) { BTxMAC_SW_RST :{ data = btxmac_sw_rst; data_mask= BTxMAC_SW_RST_MASK; } BRxMAC_SW_RST :{ data = brxmac_sw_rst; data_mask=BRxMAC_SW_RST_MASK; } MAC_SEND_PAUSE :{ data = mac_send_pause; data_mask = MAC_SEND_PAUSE_MASK; } BTxMAC_STATUS :{ data = btxmac_status; data_mask = BTxMAC_STATUS_MASK; } BRxMAC_STATUS :{ data= brxmac_status; data_mask = BRxMAC_STATUS_MASK; } BMAC_CTRL_STAT :{ data= bmac_ctrl_stat; data_mask = BMAC_CTRL_STAT_MASK; } BTxMAC_STAT_MSK :{ data= btxmac_stat_msk; data_mask = BTxMAC_STAT_MSK_MASK; } BRxMAC_STAT_MSK :{ data= brxmac_stat_msk; data_mask = BRxMAC_STAT_MSK_MASK; } BMAC_C_S_MSK :{ data= bmac_c_s_msk; data_mask =BMAC_C_S_MSK_MASK; } TxMAC_CONFIG :{ data= txmac_config; data_mask=TxMAC_CONFIG_MASK; } RxMAC_CONFIG :{ data= rxmac_config; data_mask =RxMAC_CONFIG_MASK; } MAC_CTRL_CONFIG :{ data= mac_ctrl_config; data_mask = MAC_CTRL_CONFIG_MASK; } MAC_XIF_CONFIG :{ data= mac_xif_config; data_mask = MAC_XIF_CONFIG_MASK; } MAC_IPG0 :{ data= mac_ipg0; data_mask = MAC_IPG0_MASK; } MAC_IPG1 :{ data= mac_ipg1; data_mask = MAC_IPG1_MASK; } MAC_IPG2 :{ data= mac_ipg2; data_mask = MAC_IPG2_MASK; } MAC_SLOT_TIME :{ data= mac_slot_time; data_mask = MAC_SLOT_TIME_MASK; } BMAC_MIN :{ data= bmac_min; data_mask = BMAC_MIN_MASK; } BMAC_MAX :{ data= bmac_max; data_mask = BMAC_MAX_MASK; } MAC_PA_SIZE :{ data= mac_pa_size; data_mask = MAC_PA_SIZE_MASK; } MAC_JAM_SIZE :{ data= mac_jam_size; data_mask = MAC_JAM_SIZE_MASK; } MAC_ATTMPT_LMT :{ data= mac_attmpt_lmt; data_mask = MAC_ATTMPT_LMT_MASK; } MAC_CTRL_TYPE :{ data= mac_ctrl_type; data_mask = MAC_CTRL_TYPE_MASK; } BMAC_ADDR0 :{ data = bmac_addr0; data_mask = BMAC_ADDR0_MASK; } BMAC_ADDR1 :{ data = bmac_addr1; data_mask = BMAC_ADDR1_MASK; } BMAC_ADDR2 :{ data = bmac_addr2; data_mask = BMAC_ADDR2_MASK; } MAC_ADDR3 :{ data= mac_addr3; data_mask = MAC_ADDR3_MASK; } MAC_ADDR4 :{ data = mac_addr4; data_mask= MAC_ADDR4_MASK; } MAC_ADDR5 :{ data = mac_addr5; data_mask = MAC_ADDR5_MASK; } MAC_ADDR6 :{ data = mac_addr6; data_mask = MAC_ADDR6_MASK; } MAC_ADDR7 :{ data = mac_addr7; data_mask = MAC_ADDR7_MASK; } MAC_ADDR8 :{ data = mac_addr8; data_mask = MAC_ADDR8_MASK; } MAC_ADDR9 :{ data = mac_addr9; data_mask = MAC_ADDR9_MASK; } MAC_ADDR10 :{ data = mac_addr10; data_mask = MAC_ADDR10_MASK; } MAC_ADDR11 :{ data = mac_addr11; data_mask = MAC_ADDR11_MASK; } MAC_ADDR12 :{ data = mac_addr12; data_mask = MAC_ADDR12_MASK; } MAC_ADDR13 :{ data = mac_addr13; data_mask = MAC_ADDR13_MASK; } MAC_ADDR14 :{ data = mac_addr14; data_mask = MAC_ADDR14_MASK; } MAC_ADDR15 :{ data = mac_addr15; data_mask = MAC_ADDR15_MASK; } MAC_ADDR16 :{ data = mac_addr16; data_mask = MAC_ADDR16_MASK; } MAC_ADDR17 :{ data = mac_addr17; data_mask = MAC_ADDR17_MASK; } MAC_ADDR18 :{ data = mac_addr18; data_mask= MAC_ADDR18_MASK; } MAC_ADDR19 :{ data = mac_addr19; data_mask = MAC_ADDR19_MASK; } MAC_ADDR20 :{ data = mac_addr20; data_mask = MAC_ADDR20_MASK; } MAC_ADDR21 :{ data = mac_addr21; data_mask = MAC_ADDR21_MASK; } MAC_ADDR22 :{ data = mac_addr22; data_mask = MAC_ADDR22_MASK; } MAC_ADDR23 :{ data = mac_addr23; data_mask = MAC_ADDR23_MASK; } MAC_ADDR24 :{ data = mac_addr24; data_mask = MAC_ADDR24_MASK; } MAC_ADDR25 :{ data = mac_addr25; data_mask = MAC_ADDR25_MASK; } MAC_ADDR26 :{ data = mac_addr26; data_mask= MAC_ADDR26_MASK; } MAC_ADDR27 :{ data = mac_addr27; data_mask = MAC_ADDR27_MASK; } MAC_ADDR28 :{ data = mac_addr28; data_mask = MAC_ADDR28_MASK; } MAC_ADDR29 :{ data = mac_addr29; data_mask = MAC_ADDR29_MASK; } MAC_ADDR30 :{ data = mac_addr30; data_mask= MAC_ADDR30_MASK; } MAC_ADDR31 :{ data = mac_addr31; data_mask = MAC_ADDR31_MASK; } MAC_ADDR32 :{ data = mac_addr32; data_mask = MAC_ADDR32_MASK; } MAC_ADDR33 :{ data = mac_addr33; data_mask = MAC_ADDR33_MASK; } MAC_ADDR34 :{ data = mac_addr34; data_mask = MAC_ADDR34_MASK; } MAC_ADDR35 :{ data = mac_addr35; data_mask = MAC_ADDR35_MASK; } MAC_ADDR36 :{ data = mac_addr36; data_mask = MAC_ADDR36_MASK; } MAC_ADDR37 :{ data = mac_addr37; data_mask = MAC_ADDR37_MASK; } MAC_ADDR38 :{ data = mac_addr38; data_mask = MAC_ADDR38_MASK; } MAC_ADDR39 :{ data = mac_addr39; data_mask = MAC_ADDR39_MASK; } MAC_ADDR40 :{ data = mac_addr40; data_mask = MAC_ADDR40_MASK; } MAC_ADDR41 :{ data = mac_addr41; data_mask = MAC_ADDR41_MASK; } MAC_ADDR42 :{ data = mac_addr42; data_mask = MAC_ADDR42_MASK; } MAC_ADDR43 :{ data = mac_addr43; data_mask = MAC_ADDR43_MASK; } MAC_ADDR44 :{ data = mac_addr44; data_mask = MAC_ADDR44_MASK; } MAC_FC_ADDR0 :{ data = mac_fc_addr0; data_mask = MAC_FC_ADDR0_MASK; } MAC_FC_ADDR1 :{ data = mac_fc_addr1; data_mask = MAC_FC_ADDR1_MASK; } MAC_FC_ADDR2 :{ data = mac_fc_addr2; data_mask = MAC_FC_ADDR2_MASK; } MAC_ADD_FILT0 :{ data = mac_add_filt0; data_mask = MAC_ADD_FILT0_MASK; } MAC_ADD_FILT1 :{ data = mac_add_filt1; data_mask = MAC_ADD_FILT1_MASK; } MAC_ADD_FILT2 :{ data = mac_add_filt2; data_mask = MAC_ADD_FILT2_MASK; } MAC_ADD_FILT12_MASK :{ data = mac_add_filt12_mask; data_mask = MAC_ADD_FILT12_MASK_MASK; } MAC_ADD_FILT00_MASK :{ data = mac_add_filt00_mask; data_mask = MAC_ADD_FILT00_MASK_MASK; } MAC_HASH_TBL0 :{ data = mac_hash_tbl0; data_mask = MAC_HASH_TBL0_MASK; } MAC_HASH_TBL1 :{ data = mac_hash_tbl1; data_mask = MAC_HASH_TBL1_MASK; } MAC_HASH_TBL2 :{ data = mac_hash_tbl2; data_mask = MAC_HASH_TBL2_MASK; } MAC_HASH_TBL3 :{ data = mac_hash_tbl3; data_mask = MAC_HASH_TBL3_MASK; } MAC_HASH_TBL4 :{ data = mac_hash_tbl4; data_mask = MAC_HASH_TBL4_MASK; } MAC_HASH_TBL5 :{ data = mac_hash_tbl5; data_mask = MAC_HASH_TBL5_MASK; } MAC_HASH_TBL6 :{ data = mac_hash_tbl6; data_mask = MAC_HASH_TBL6_MASK; } MAC_HASH_TBL7 :{ data = mac_hash_tbl7; data_mask = MAC_HASH_TBL7_MASK; } MAC_HASH_TBL8 :{ data = mac_hash_tbl8; data_mask = MAC_HASH_TBL8_MASK; } MAC_HASH_TBL9 :{ data = mac_hash_tbl9; data_mask = MAC_HASH_TBL9_MASK; } MAC_HASH_TBL10 :{ data = mac_hash_tbl10; data_mask = MAC_HASH_TBL10_MASK; } MAC_HASH_TBL11 :{ data = mac_hash_tbl11; data_mask =MAC_HASH_TBL11_MASK; } MAC_HASH_TBL12 :{ data = mac_hash_tbl12; data_mask = MAC_HASH_TBL12_MASK; } MAC_HASH_TBL13 :{ data = mac_hash_tbl13; data_mask = MAC_HASH_TBL13_MASK; } MAC_HASH_TBL14 :{ data = mac_hash_tbl14; data_mask = MAC_HASH_TBL14_MASK; } MAC_HASH_TBL15 :{ data = mac_hash_tbl15; data_mask = MAC_HASH_TBL15_MASK; } BMAC_COL_CNT :{ data = bmac_col_cnt; data_mask = BMAC_COL_CNT_MASK; } BMAC_OA_COL_CNT :{ data = bmac_oa_col_cnt; data_mask = BMAC_OA_COL_CNT_MASK; } BMAC_EX_COL_CNT :{ data = bmac_ex_col_cnt; data_mask = BMAC_EX_COL_CNT_MASK; } BMAC_LT_COL_CNT :{ data = bmac_lt_col_cnt; data_mask = BMAC_LT_COL_CNT_MASK; } MAC_DEF_TIMER :{ data = mac_def_timer; data_mask = MAC_DEF_TIMER_MASK; } BMAC_PK_ATT_CNT :{ data = bmac_pk_att_cnt; data_mask= BMAC_PK_ATT_CNT_MASK; } BRxMAC_FRM_CNT :{ data = brxmac_frm_cnt; data_mask = BRxMAC_FRM_CNT_MASK; } MAC_LEN_ER_CNT :{ data = mac_len_er_cnt; data_mask = MAC_LEN_ER_CNT_MASK; } BMAC_AL_ER_CNT :{ data = bmac_al_er_cnt; data_mask = BMAC_AL_ER_CNT_MASK; } BMAC_CRC_ER_CNT :{ data = bmac_crc_er_cnt; data_mask= BMAC_CRC_ER_CNT_MASK; } BMAC_CD_VIO_CNT :{ data = bmac_cd_vio_cnt; data_mask = BMAC_CD_VIO_CNT_MASK; } MAC_RND_SEED :{ data = mac_rnd_seed; data_mask = MAC_RND_SEED_MASK; } BMAC_SM_REG :{ data = bmac_sm_reg; data_mask = BMAC_SM_REG_MASK; } BMAC_ALTAD_CMPEN :{ data = bmac_altad_cmpen; data_mask = BMAC_ALTAD_CMPEN_MASK; } BMAC_HOST_INFO :{ data = bmac_host_inf0; data_mask = BMAC_HOST_INFO0_MASK; } BMAC_HOST_INF1 :{ data = bmac_host_inf1; data_mask = BMAC_HOST_INFO1_MASK; } BMAC_HOST_INF2 :{ data = bmac_host_inf2; data_mask = BMAC_HOST_INFO2_MASK; } BMAC_HOST_INF3 :{ data = bmac_host_inf3; data_mask = BMAC_HOST_INFO3_MASK; } BMAC_HOST_INF4 :{ data = bmac_host_inf4; data_mask = BMAC_HOST_INFO4_MASK; } BMAC_HOST_INF5 :{ data = bmac_host_inf5; data_mask = BMAC_HOST_INFO5_MASK; } BMAC_HOST_INF6 :{ data = bmac_host_inf6; data_mask = BMAC_HOST_INFO6_MASK; } BMAC_HOST_INF7 :{ data = bmac_host_inf7; data_mask = BMAC_HOST_INFO7_MASK; } BTxMAC_BYTE_CNT :{ data = btxmac_byte_cnt; data_mask = BTxMAC_BYTE_CNT_MASK; } BTxMAC_BYTE_CNT :{ data = btxmac_frm_cnt; data_mask = BTxMAC_BYTE_CNT_MASK; } BRxMAC_BYTE_CNT :{ data = brxmac_byte_cnt; data_mask = BRxMAC_BYTE_CNT_MASK; } } } task put_data (bit [32:0] addr, bit [31:0] data) { case(addr[11:0]) { BTxMAC_SW_RST :btxmac_sw_rst = data; BRxMAC_SW_RST :brxmac_sw_rst = data; MAC_SEND_PAUSE :mac_send_pause = data; BTxMAC_STATUS :btxmac_status = data; BRxMAC_STATUS :brxmac_status = data; BMAC_CTRL_STAT :bmac_ctrl_stat = data; BTxMAC_STAT_MSK :btxmac_stat_msk = data; BRxMAC_STAT_MSK :brxmac_stat_msk = data; BMAC_C_S_MSK :bmac_c_s_msk = data; TxMAC_CONFIG :txmac_config = data; RxMAC_CONFIG :rxmac_config = data; MAC_CTRL_CONFIG :mac_ctrl_config = data; MAC_XIF_CONFIG :mac_xif_config = data; MAC_IPG0 :mac_ipg0 = data; MAC_IPG1 :mac_ipg1 = data; MAC_IPG2 :mac_ipg2 = data; MAC_SLOT_TIME :mac_slot_time = data; BMAC_MIN :bmac_min = data; BMAC_MAX :bmac_max = data; MAC_PA_SIZE :mac_pa_size = data; MAC_JAM_SIZE :mac_jam_size = data; MAC_ATTMPT_LMT :mac_attmpt_lmt = data; MAC_CTRL_TYPE :mac_ctrl_type = data; BMAC_ADDR0 :bmac_addr0 = data; BMAC_ADDR1 :bmac_addr1 = data; BMAC_ADDR2 :bmac_addr2 = data; MAC_ADDR3 :mac_addr3 = data; MAC_ADDR4 :mac_addr4 = data; MAC_ADDR5 :mac_addr5 = data; MAC_ADDR6 :mac_addr6 = data; MAC_ADDR7 :mac_addr7 = data; MAC_ADDR8 :mac_addr8 = data; MAC_ADDR9 :mac_addr9 = data; MAC_ADDR10 :mac_addr10 = data; MAC_ADDR11 :mac_addr11 = data; MAC_ADDR12 :mac_addr12 = data; MAC_ADDR13 :mac_addr13 = data; MAC_ADDR14 :mac_addr14 = data; MAC_ADDR15 :mac_addr15 = data; MAC_ADDR16 :mac_addr16 = data; MAC_ADDR17 :mac_addr17 = data; MAC_ADDR18 :mac_addr18 = data; MAC_ADDR19 :mac_addr19 = data; MAC_ADDR20 :mac_addr20 = data; MAC_ADDR21 :mac_addr21 = data; MAC_ADDR22 :mac_addr22 = data; MAC_ADDR23 :mac_addr23 = data; MAC_ADDR24 :mac_addr24 = data; MAC_ADDR25 :mac_addr25 = data; MAC_ADDR26 :mac_addr26 = data; MAC_ADDR27 :mac_addr27 = data; MAC_ADDR28 :mac_addr28 = data; MAC_ADDR29 :mac_addr29 = data; MAC_ADDR30 :mac_addr30 = data; MAC_ADDR31 :mac_addr31 = data; MAC_ADDR32 :mac_addr32 = data; MAC_ADDR33 :mac_addr33 = data; MAC_ADDR34 :mac_addr34 = data; MAC_ADDR35 :mac_addr35 = data; MAC_ADDR36 :mac_addr36 = data; MAC_ADDR37 :mac_addr37 = data; MAC_ADDR38 :mac_addr38 = data; MAC_ADDR39 :mac_addr39 = data; MAC_ADDR40 :mac_addr40 = data; MAC_ADDR41 :mac_addr41 = data; MAC_ADDR42 :mac_addr42 = data; MAC_ADDR43 :mac_addr43 = data; MAC_ADDR44 :mac_addr44 = data; MAC_FC_ADDR0 :mac_fc_addr0 = data; MAC_FC_ADDR1 :mac_fc_addr1 = data; MAC_FC_ADDR2 :mac_fc_addr2 = data; MAC_ADD_FILT0 :mac_add_filt0 = data; MAC_ADD_FILT1 :mac_add_filt1 = data; MAC_ADD_FILT2 :mac_add_filt2 = data; MAC_ADD_FILT12_MASK :mac_add_filt12_mask = data; MAC_ADD_FILT00_MASK :mac_add_filt00_mask = data; MAC_HASH_TBL0 :mac_hash_tbl0 = data; MAC_HASH_TBL1 :mac_hash_tbl1 = data; MAC_HASH_TBL2 :mac_hash_tbl2 = data; MAC_HASH_TBL3 :mac_hash_tbl3 = data; MAC_HASH_TBL4 :mac_hash_tbl4 = data; MAC_HASH_TBL5 :mac_hash_tbl5 = data; MAC_HASH_TBL6 :mac_hash_tbl6 = data; MAC_HASH_TBL7 :mac_hash_tbl7 = data; MAC_HASH_TBL8 :mac_hash_tbl8 = data; MAC_HASH_TBL9 :mac_hash_tbl9 = data; MAC_HASH_TBL10 :mac_hash_tbl10 = data; MAC_HASH_TBL11 :mac_hash_tbl11 = data; MAC_HASH_TBL12 :mac_hash_tbl12 = data; MAC_HASH_TBL13 :mac_hash_tbl13 = data; MAC_HASH_TBL14 :mac_hash_tbl14 = data; MAC_HASH_TBL15 :mac_hash_tbl15 = data; BMAC_COL_CNT :bmac_col_cnt = data; BMAC_OA_COL_CNT :bmac_oa_col_cnt = data; BMAC_EX_COL_CNT :bmac_ex_col_cnt = data; BMAC_LT_COL_CNT :bmac_lt_col_cnt = data; MAC_DEF_TIMER :mac_def_timer = data; BMAC_PK_ATT_CNT :bmac_pk_att_cnt = data; BRxMAC_FRM_CNT :brxmac_frm_cnt = data; MAC_LEN_ER_CNT :mac_len_er_cnt = data; BMAC_AL_ER_CNT :bmac_al_er_cnt = data; BMAC_CRC_ER_CNT :bmac_crc_er_cnt = data; BMAC_CD_VIO_CNT :bmac_cd_vio_cnt = data; MAC_RND_SEED :mac_rnd_seed = data; BMAC_SM_REG :bmac_sm_reg = data; BMAC_ALTAD_CMPEN :bmac_altad_cmpen = data; BMAC_HOST_INFO :bmac_host_inf0 = data; BMAC_HOST_INF1 :bmac_host_inf1 = data; BMAC_HOST_INF2 :bmac_host_inf2 = data; BMAC_HOST_INF3 :bmac_host_inf3 = data; BMAC_HOST_INF4 :bmac_host_inf4 = data; BMAC_HOST_INF5 :bmac_host_inf5 = data; BMAC_HOST_INF6 :bmac_host_inf6 = data; BMAC_HOST_INF7 :bmac_host_inf7 = data; BTxMAC_BYTE_CNT :btxmac_byte_cnt = data; BTxMAC_FRM_CNT :btxmac_frm_cnt = data; BRxMAC_BYTE_CNT :brxmac_byte_cnt = data; } } }