addrmap S32K3XX_FlexCAN {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="ModuleConfiguration";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
                reset=7'b1111;
            } Number_of_the_Last_Message_Buffer_MCR_MAXMB[6:0];
            field {
                sw = rw;
            } ID_Acceptance_Mode_MCR_IDAM[9:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CAN_FD_Operation_Enable_MCR_FDEN[11:11];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } Abort_Enable_MCR_AEN[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Local_Priority_Enable_MCR_LPRIOEN[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMA_Enable_MCR_DMA[15:15];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } Individual_RX_Masking_and_Queue_Enable_MCR_IRMQ[16:16];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } Self_Reception_Disable_MCR_SRXDIS[17:17];
            field {
                sw = wr;
                onwrite = woclr;
                reset=1'b1;
            } Low_Power_Mode_Acknowledge_MCR_LPMACK[20:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Warning_Interrupt_Enable_MCR_WRNEN[21:21];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } Supervisor_Mode_MCR_SUPV[23:23];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Freeze_Mode_Acknowledge_MCR_FRZACK[24:24];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } Soft_Reset_MCR_SOFTRST[25:25];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                reset=1'b1;
            } FlexCAN_Not_Ready_MCR_NOTRDY[27:27];
            field {
                sw = rw;
                reset=1'b1;
            } Halt_FlexCAN_MCR_HALT[28:28];
            field {
                sw = rw;
            } Legacy_RX_FIFO_Enable_MCR_RFEN[29:29];
            field {
                sw = rw;
                reset=1'b1;
            } Freeze_Enable_MCR_FRZ[30:30];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=1'b1;
            } Module_Disable_MCR_MDIS[31:31];
    } ModuleConfiguration @ 0x0;
    reg {
        name="Control1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Propagation_Segment_CTRL1_PROPSEG[2:0];
            field {
                sw = rw;
            } Listen_Only_Mode_CTRL1_LOM[3:3];
            field {
                sw = rw;
            } Lowest_Buffer_Transmitted_First_CTRL1_LBUF[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Timer_Sync_CTRL1_TSYN[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Bus_Off_Recovery_CTRL1_BOFFREC[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CAN_Bit_Sampling_CTRL1_SMP[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RX_Warning_Interrupt_Mask_CTRL1_RWRNMSK[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TX_Warning_Interrupt_Mask_CTRL1_TWRNMSK[11:11];
            field {
                sw = rw;
            } Loopback_Mode_CTRL1_LPB[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Error_Interrupt_Mask_CTRL1_ERRMSK[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Bus_Off_Interrupt_Mask_CTRL1_BOFFMSK[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Phase_Segment_2_CTRL1_PSEG2[18:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Phase_Segment_1_CTRL1_PSEG1[21:19];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Resync_Jump_Width_CTRL1_RJW[23:22];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Prescaler_Division_Factor_CTRL1_PRESDIV[31:24];
    } Control1 @ 0x4;
    reg {
        name="FreeRunningTimer";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Timer_Value_TIMER_TIMER[15:0];
    } FreeRunningTimer @ 0x8;
    reg {
        name="RxMessageBuffersGlobalMask";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Global_Mask_for_RX_Message_Buffers_RXMGMASK_MG[31:0];
    } RxMessageBuffersGlobalMask @ 0x10;
    reg {
        name="Receive14Mask";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RX_Buffer_14_Mask_Bits_RX14MASK_RX14M[31:0];
    } Receive14Mask @ 0x14;
    reg {
        name="Receive15Mask";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RX_Buffer_15_Mask_Bits_RX15MASK_RX15M[31:0];
    } Receive15Mask @ 0x18;
    reg {
        name="ErrorCounter";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transmit_Error_Counter_ECR_TXERRCNT[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Receive_Error_Counter_ECR_RXERRCNT[15:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transmit_Error_Counter_for_Fast_Bits_ECR_TXERRCNT_FAST[23:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Receive_Error_Counter_for_Fast_Bits_ECR_RXERRCNT_FAST[31:24];
    } ErrorCounter @ 0x1c;
    reg {
        name="ErrorAndStatus1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Error_Interrupt_Flag_ESR1_ERRINT[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Bus_Off_Interrupt_Flag_ESR1_BOFFINT[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FlexCAN_in_Reception_Flag_ESR1_RX[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Fault_Confinement_State_ESR1_FLTCONF[5:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FlexCAN_In_Transmission_ESR1_TX[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Idle_ESR1_IDLE[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RX_Error_Warning_Flag_ESR1_RXWRN[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TX_Error_Warning_Flag_ESR1_TXWRN[9:9];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Stuffing_Error_Flag_ESR1_STFERR[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Form_Error_Flag_ESR1_FRMERR[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Cyclic_Redundancy_Check_Error_Flag_ESR1_CRCERR[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Acknowledge_Error_Flag_ESR1_ACKERR[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Bit0_Error_Flag_ESR1_BIT0ERR[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Bit1_Error_Flag_ESR1_BIT1ERR[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RX_Warning_Interrupt_Flag_ESR1_RWRNINT[16:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TX_Warning_Interrupt_Flag_ESR1_TWRNINT[17:17];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } CAN_Synchronization_Status_Flag_ESR1_SYNCH[18:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Bus_Off_Done_Interrupt_Flag_ESR1_BOFFDONEINT[19:19];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Fast_Error_Interrupt_Flag_ESR1_ERRINT_FAST[20:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Error_Overrun_Flag_ESR1_ERROVR[21:21];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Fast_Stuffing_Error_Flag_ESR1_STFERR_FAST[26:26];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Fast_Form_Error_Flag_ESR1_FRMERR_FAST[27:27];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Fast_Cyclic_Redundancy_Check_Error_Flag_ESR1_CRCERR_FAST[28:28];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Fast_Bit0_Error_Flag_ESR1_BIT0ERR_FAST[30:30];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Fast_Bit1_Error_Flag_ESR1_BIT1ERR_FAST[31:31];
    } ErrorAndStatus1 @ 0x20;
    reg {
        name="InterruptMasks2";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } InterruptMasks2 @ 0x24;
    reg {
        name="InterruptMasks1";
        regwidth=0x20;
            field {
                sw = rw;
            } Buffer_MB0_Mask_IMASK1_BUF0M[0:0];
            field {
                sw = rw;
            } Buffer_MB1_Mask_IMASK1_BUF1M[1:1];
            field {
                sw = rw;
            } Buffer_MB2_Mask_IMASK1_BUF2M[2:2];
            field {
                sw = rw;
            } Buffer_MB3_Mask_IMASK1_BUF3M[3:3];
            field {
                sw = rw;
            } Buffer_MB4_Mask_IMASK1_BUF4M[4:4];
            field {
                sw = rw;
            } Buffer_MB5_Mask_IMASK1_BUF5M[5:5];
            field {
                sw = rw;
            } Buffer_MB6_Mask_IMASK1_BUF6M[6:6];
            field {
                sw = rw;
            } Buffer_MB7_Mask_IMASK1_BUF7M[7:7];
    } InterruptMasks1 @ 0x28;
    reg {
        name="InterruptFlags2";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } InterruptFlags2 @ 0x2c;
    reg {
        name="InterruptFlags1";
        regwidth=0x20;
            field {
                sw = wr;
                onwrite = woclr;
            } Buffer_MB0_Interrupt_or_Clear_Legacy_FIFO_bit_IFLAG1_BUF0I[0:0];
            field {
                sw = wr;
                onwrite = woclr;
            } Buffer_MB1_Interrupt_IFLAG1_BUF1M[1:1];
            field {
                sw = wr;
                onwrite = woclr;
            } Buffer_MB2_Interrupt_IFLAG1_BUF2M[2:2];
            field {
                sw = wr;
                onwrite = woclr;
            } Buffer_MB3_Interrupt_IFLAG1_BUF3M[3:3];
            field {
                sw = wr;
                onwrite = woclr;
            } Buffer_MB4_Interrupt_IFLAG1_BUF4M[4:4];
            field {
                sw = wr;
                onwrite = woclr;
            } Buffer_MB5_Interrupt_or_Frames_available_in_Legacy_RX_FIFO_IFLAG1_BUF5I[5:5];
            field {
                sw = wr;
                onwrite = woclr;
            } Buffer_MB6_Interrupt_or_Legacy_RX_FIFO_Warning_IFLAG1_BUF6I[6:6];
            field {
                sw = wr;
                onwrite = woclr;
            } Buffer_MB7_Interrupt_or_Legacy_RX_FIFO_Overflow_IFLAG1_BUF7I[7:7];
    } InterruptFlags1 @ 0x30;
    reg {
        name="Control2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } Timestamp_Capture_Point_CTRL2_TSTAMPCAP[7:6];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } Message_Buffer_Timestamp_Base_CTRL2_MBTSBASE[9:8];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } Edge_Filter_Disable_CTRL2_EDFLTDIS[11:11];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } ISO_CAN_FD_Enable_CTRL2_ISOCANFDEN[12:12];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } Bit_Timing_Expansion_Enable_CTRL2_BTE[13:13];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } Protocol_Exception_Enable_CTRL2_PREXCEN[14:14];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } Timer_Source_CTRL2_TIMER_SRC[15:15];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } Entire_Frame_Arbitration_Field_Comparison_Enable_for_RX_Message_Buffers_CTRL2_EACEN[16:16];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } Remote_Request_Storing_CTRL2_RRS[17:17];
            field {
                desc = "This field has the following custom Renode callbacks: Change. This field has reset value calculated at runtime.";
                sw = rw;
            } Message_Buffers_Reception_Priority_CTRL2_MRP[18:18];
            field {
                desc = "This field has the following custom Renode callbacks: Change. This field has reset value calculated at runtime.";
                sw = rw;
            } Transmission_Arbitration_Start_Delay_CTRL2_TASD[23:19];
            field {
                desc = "This field has the following custom Renode callbacks: Change. This field has reset value calculated at runtime.";
                sw = rw;
            } Number_of_Legacy_Receive_FIFO_Filters_CTRL2_RFFN[27:24];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } Write_Access_to_Memory_in_Freeze_Mode_CTRL2_WRMFRZ[28:28];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } Error_Correction_Configuration_Register_Write_Enable_CTRL2_ECRWRE[29:29];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } Bus_Off_Done_Interrupt_Mask_CTRL2_BOFFDONEMSK[30:30];
            field {
                desc = "The field is a Tag. This field has reset value calculated at runtime.";
                sw = rw;
            } Error_Interrupt_Mask_for_Errors_Detected_in_the_Data_Phase_of_Fast_CAN_FD_Frames_CTRL2_ERRMSK_FAST[31:31];
    } Control2 @ 0x34;
    reg {
        name="ErrorAndStatus2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Inactive_Message_Buffer_ESR2_IMB[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Valid_Priority_Status_ESR2_VPS[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Lowest_Priority_TX_Message_Buffer_ESR2_LPTM[22:16];
    } ErrorAndStatus2 @ 0x38;
    reg {
        name="CyclicRedundancyCheck";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transmitted_CRC_value_CRCR_TXCRC[14:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CRC_Message_Buffer_CRCR_MBCRC[22:16];
    } CyclicRedundancyCheck @ 0x44;
    reg {
        name="LegacyRxFifoGlobalMask";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Legacy_RX_FIFO_Global_Mask_Bits_RXFGMASK_FGM[31:0];
    } LegacyRxFifoGlobalMask @ 0x48;
    reg {
        name="LegacyRxFifoInformation";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } Identifier_Acceptance_Filter_Hit_Indicator_RXFIR_IDHIT[8:0];
    } LegacyRxFifoInformation @ 0x4c;
    reg {
        name="CanBitTiming";
        regwidth=0x20;
            field {
                sw = rw;
            } Extended_Phase_Segment_2_CBT_EPSEG2[4:0];
            field {
                sw = rw;
            } Extended_Phase_Segment_1_CBT_EPSEG1[9:5];
            field {
                sw = rw;
            } Extended_Propagation_Segment_CBT_EPROPSEG[15:10];
            field {
                sw = rw;
            } Extended_Resync_Jump_Width_CBT_ERJW[20:16];
            field {
                sw = rw;
            } Extended_Prescaler_Division_Factor_CBT_EPRESDIV[30:21];
            field {
                sw = rw;
            } Bit_Timing_Format_Enable_CBT_BTF[31:31];
    } CanBitTiming @ 0x50;
    reg {
        name="InterruptMasks3";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } InterruptMasks3 @ 0x6c;
    reg {
        name="InterruptFlags3";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } InterruptFlags3 @ 0x74;
    reg {
        name="MessageBuffer";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } MessageBuffer @ 0x80;
    reg {
        name="ReceiveIndividualMask";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } ReceiveIndividualMask @ 0x880;
    reg {
        name="MemoryErrorControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } Non_Correctable_Errors_in_FlexCAN_Access_Put_Device_in_Freeze_Mode_MECR_NCEFAFRZ[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Error_Correction_Disable_MECR_ECCDIS[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Error_Report_Disable_MECR_RERRDIS[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Extended_Error_Injection_Enable_MECR_EXTERRIE[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FlexCAN_Access_Error_Injection_Enable_MECR_FAERRIE[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Host_Access_Error_Injection_Enable_MECR_HAERRIE[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Correctable_Errors_Interrupt_Mask_MECR_CEI_MSK[16:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } FlexCAN_Access_with_Non_Correctable_Errors_Interrupt_Mask_MECR_FANCEI_MSK[18:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } Host_Access_with_Non_Correctable_Errors_Interrupt_Mask_MECR_HANCEI_MSK[19:19];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } Error_Configuration_Register_Write_Disable_MECR_ECRWRDIS[31:31];
    } MemoryErrorControl @ 0xae0;
    reg {
        name="ErrorInjectionAddress";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Error_Injection_Address_Low_ERRIAR_INJADDR_L[1:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Error_Injection_Address_High_ERRIAR_INJADDR_H[13:2];
    } ErrorInjectionAddress @ 0xae4;
    reg {
        name="ErrorInjectionDataPattern";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Data_Flip_Pattern_ERRIDPR_DFLIP[31:0];
    } ErrorInjectionDataPattern @ 0xae8;
    reg {
        name="ErrorInjectionParityPattern";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Parity_Flip_Pattern_for_Byte_0_Least_Significant_ERRIPPR_PFLIP0[4:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Parity_Flip_Pattern_for_Byte_1_ERRIPPR_PFLIP1[12:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Parity_Flip_Pattern_for_Byte_2_ERRIPPR_PFLIP2[20:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Parity_Flip_Pattern_for_Byte_3_Most_Significant_ERRIPPR_PFLIP3[28:24];
    } ErrorInjectionParityPattern @ 0xaec;
    reg {
        name="ErrorReportAddress";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Address_Where_Error_Detected_RERRAR_ERRADDR[13:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SAID_RERRAR_SAID[18:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Non_Correctable_Error_RERRAR_NCE[24:24];
    } ErrorReportAddress @ 0xaf0;
    reg {
        name="ErrorReportData";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Raw_Data_Word_Read_from_Memory_with_Error_RERRDR_RDATA[31:0];
    } ErrorReportData @ 0xaf4;
    reg {
        name="ErrorReportSyndrome";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Error_Syndrome_for_Byte_0_Least_Significant_RERRSYNR_SYND0[4:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Byte_Enabled_for_Byte_0_Least_Significant_RERRSYNR_BE0[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Error_Syndrome_for_Byte_1_RERRSYNR_SYND1[12:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Byte_Enabled_for_Byte_1_RERRSYNR_BE1[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Error_Syndrome_for_Byte_2_RERRSYNR_SYND2[20:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Byte_Enabled_for_Byte_2_RERRSYNR_BE2[23:23];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Error_Syndrome_for_Byte_3_Most_Significant_RERRSYNR_SYND3[28:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Byte_Enabled_for_Byte_3_Most_Significant_RERRSYNR_BE3[31:31];
    } ErrorReportSyndrome @ 0xaf8;
    reg {
        name="ErrorStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Correctable_Error_Interrupt_Overrun_Flag_ERRSR_CEIOF[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FlexCAN_Access_with_Non_Correctable_Error_Interrupt_Overrun_Flag_ERRSR_FANCEIOF[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Host_Access_With_Non_Correctable_Error_Interrupt_Overrun_Flag_ERRSR_HANCEIOF[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Correctable_Error_Interrupt_Flag_ERRSR_CEIF[16:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FlexCAN_Access_with_Non_Correctable_Error_Interrupt_Flag_ERRSR_FANCEIF[18:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Host_Access_with_Noncorrectable_Error_Interrupt_Flag_ERRSR_HANCEIF[19:19];
    } ErrorStatus @ 0xafc;
    reg {
        name="EnhancedCanBitTimingPrescalers";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Extended_Nominal_Prescaler_Division_Factor_EPRS_ENPRESDIV[9:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Extended_Data_Phase_Prescaler_Division_Factor_EPRS_EDPRESDIV[25:16];
    } EnhancedCanBitTimingPrescalers @ 0xbf0;
    reg {
        name="EnhancedNominalCanBitTiming";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Nominal_Time_Segment_1_ENCBT_NTSEG1[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Nominal_Time_Segment_2_ENCBT_NTSEG2[18:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Nominal_Resynchronization_Jump_Width_ENCBT_NRJW[28:22];
    } EnhancedNominalCanBitTiming @ 0xbf4;
    reg {
        name="EnhancedDataPhaseCanBitTiming";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Data_Phase_Segment_1_EDCBT_DTSEG1[4:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Data_Phase_Time_Segment_2_EDCBT_DTSEG2[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Data_Phase_Resynchronization_Jump_Width_EDCBT_DRJW[25:22];
    } EnhancedDataPhaseCanBitTiming @ 0xbf8;
    reg {
        name="EnhancedTransceiverDelayCompensation";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_Transceiver_Delay_Compensation_Value_ETDC_ETDCVAL[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transceiver_Delay_Compensation_Fail_ETDC_ETDCFAIL[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_Transceiver_Delay_Compensation_Offset_ETDC_ETDCOFF[22:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transceiver_Delay_Measurement_Disable_ETDC_TDMDIS[30:30];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transceiver_Delay_Compensation_Enable_ETDC_ETDCEN[31:31];
    } EnhancedTransceiverDelayCompensation @ 0xbfc;
    reg {
        name="CanFdControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transceiver_Delay_Compensation_Value_FDCTRL_TDCVAL[5:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=5'b1;
            } Transceiver_Delay_Compensation_Offset_FDCTRL_TDCOFF[12:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transceiver_Delay_Compensation_Fail_FDCTRL_TDCFAIL[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transceiver_Delay_Compensation_Enable_FDCTRL_TDCEN[15:15];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } Message_Buffer_Data_Size_for_Region_0_FDCTRL_MBDSR0[17:16];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } Message_Buffer_Data_Size_for_Region_1_FDCTRL_MBDSR1[20:19];
            field {
                desc = "This field has the following custom Renode callbacks: Change, Provider.";
                sw = rw;
            } Message_Buffer_Data_Size_for_Region_2_FDCTRL_MBDSR2[23:22];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } Bit_Rate_Switch_Enable_FDCTRL_FDRATE[31:31];
    } CanFdControl @ 0xc00;
    reg {
        name="CanFdBitTiming";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Fast_Phase_Segment_2_FDCBT_FPSEG2[2:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Fast_Phase_Segment_1_FDCBT_FPSEG1[7:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Fast_Propagation_Segment_FDCBT_FPROPSEG[14:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Fast_Resync_Jump_Width_FDCBT_FRJW[18:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Fast_Prescaler_Division_Factor_FDCBT_FPRESDIV[29:20];
    } CanFdBitTiming @ 0xc04;
    reg {
        name="CanFdCrc";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Extended_Transmitted_CRC_value_FDCRC_FD_TXCRC[20:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CRC_Message_Buffer_Number_for_FD_TXCRC_FDCRC_FD_MBCRC[30:24];
    } CanFdCrc @ 0xc08;
    reg {
        name="EnhancedRxFifoControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_Watermark_ERFCR_ERFWM[4:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Number_of_Enhanced_RX_FIFO_Filter_Elements_ERFCR_NFE[13:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Number_of_Extended_ID_Filter_Elements_ERFCR_NEXIF[22:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMA_Last_Word_ERFCR_DMALW[30:26];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_enable_ERFCR_ERFEN[31:31];
    } EnhancedRxFifoControl @ 0xc0c;
    reg {
        name="EnhancedRxFifoInterruptEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_Data_Available_Interrupt_Enable_ERFIER_ERFDAIE[28:28];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_Watermark_Indication_Interrupt_Enable_ERFIER_ERFWMIIE[29:29];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_Overflow_Interrupt_Enable_ERFIER_ERFOVFIE[30:30];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_Underflow_Interrupt_Enable_ERFIER_ERFUFWIE[31:31];
    } EnhancedRxFifoInterruptEnable @ 0xc10;
    reg {
        name="EnhancedRxFifoStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_Elements_ERFSR_ERFEL[5:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_Full_Flag_ERFSR_ERFF[16:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_Empty_Flag_ERFSR_ERFE[17:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_Clear_ERFSR_ERFCLR[27:27];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_Data_Available_Flag_ERFSR_ERFDA[28:28];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_Watermark_Indication_Flag_ERFSR_ERFWMI[29:29];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_Overflow_Flag_ERFSR_ERFOVF[30:30];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Enhanced_RX_FIFO_Underflow_Flag_ERFSR_ERFUFW[31:31];
    } EnhancedRxFifoStatus @ 0xc14;
    reg {
        name="HighResolutionTimestamp";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } HighResolutionTimestamp @ 0xc30;
    reg {
        name="EnhancedRxFifo";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } EnhancedRxFifo @ 0x2000;
    reg {
        name="EnhancedRxFifoFilterElement";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } EnhancedRxFifoFilterElement @ 0x3000;
} Registers_addrmap;


};