addrmap S32K3XX_LowPowerInterIntegratedCircuit {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="VersionID";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=16'b1001000000011;
            } FeatureSpecificationNumber[15:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MinorVersionNumber[23:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MajorVersionNumber[31:24];
    } VersionID @ 0x0;
    reg {
        name="Parameter";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=4'b10;
            } ControllerTransmitFIFOSize[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ControllerReceiveFIFOSize[11:8];
    } Parameter @ 0x4;
    reg {
        name="ControllerControl";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } ControllerEnable[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SoftwareReset[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DozeModeEnable[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DebugEnable[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                onwrite = woclr;
            } ResetTransmitFIFO[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                onwrite = woclr;
            } ResetReceiveFIFO[9:9];
    } ControllerControl @ 0x10;
    reg {
        name="ControllerStatus";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                reset=1'b1;
            } TransmitDataFlag[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } ReceiveDataFlag[1:1];
            field {
                sw = rw;
                onwrite = woclr;
            } EndPacketFlag[8:8];
            field {
                sw = rw;
                onwrite = woclr;
            } STOPDetectFlag[9:9];
            field {
                sw = rw;
                onwrite = woclr;
            } NACKDetectFlag[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ArbitrationLostFlag[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFOErrorFlag[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PinLowTimeoutFlag[13:13];
            field {
                sw = rw;
                onwrite = woclr;
            } DataMatchFlag[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ControllerBusyFlag[24:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BusBusyFlag[25:25];
    } ControllerStatus @ 0x14;
    reg {
        name="ControllerInterruptEnable";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
            } TransmitDataInterruptEnable[0:0];
            field {
                sw = rw;
            } ReceiveDataInterruptEnable[1:1];
            field {
                sw = rw;
            } EndPacketInterruptEnable[8:8];
            field {
                sw = rw;
            } STOPDetectInterruptEnable[9:9];
            field {
                sw = rw;
            } NACKDetectInterruptEnable[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ArbitrationLostInterruptEnable[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFOErrorInterruptEnable[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PinLowTimeoutInterruptEnable[13:13];
            field {
                sw = rw;
            } DataMatchInterruptEnable[14:14];
    } ControllerInterruptEnable @ 0x18;
    reg {
        name="ControllerDMAEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TransmitDataDMAEnable[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ReceiveDataDMAEnable[1:1];
    } ControllerDMAEnable @ 0x1c;
    reg {
        name="ControllerConfiguration0";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HostRequestEnable[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HostRequestPolarity[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HostRequestSelect[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CircularFIFOEnable[8:8];
            field {
                sw = rw;
            } ReceiveDataMatchOnly[9:9];
    } ControllerConfiguration0 @ 0x20;
    reg {
        name="ControllerConfiguration1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Prescaler[2:0];
            field {
                sw = rw;
            } AutomaticSTOPGeneration[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IgnoreNACK[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TimeoutConfiguration[10:10];
            field {
                sw = rw;
            } MatchConfiguration[18:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PinConfiguration[26:24];
    } ControllerConfiguration1 @ 0x24;
    reg {
        name="ControllerConfiguration2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BusIdleTimeout[11:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GlitchFilterSCL[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GlitchFilterSDA[27:24];
    } ControllerConfiguration2 @ 0x28;
    reg {
        name="ControllerConfiguration3";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PinLowTimeout[19:8];
    } ControllerConfiguration3 @ 0x2c;
    reg {
        name="ControllerDataMatch";
        regwidth=0x20;
            field {
                sw = rw;
            } Match0Value[7:0];
            field {
                sw = rw;
            } Match1Value[23:16];
    } ControllerDataMatch @ 0x40;
    reg {
        name="ControllerClockConfiguration0";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ClockLowPeriod[5:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ClockHighPeriod[12:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SetupHoldDelay[21:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DataValidDelay[29:24];
    } ControllerClockConfiguration0 @ 0x48;
    reg {
        name="ControllerClockConfiguration1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ClockLowPeriod[5:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ClockHighPeriod[12:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SetupHoldDelay[21:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DataValidDelay[29:24];
    } ControllerClockConfiguration1 @ 0x50;
    reg {
        name="ControllerFIFOControl";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
            } TransmitFIFOWatermark[1:0];
            field {
                sw = rw;
            } ReceiveFIFOWatermark[17:16];
    } ControllerFIFOControl @ 0x58;
    reg {
        name="ControllerFIFOStatus";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } TransmitFIFOCount[1:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } ReceiveFIFOCount[17:16];
    } ControllerFIFOStatus @ 0x5c;
    reg {
        name="ControllerTransmitData";
        regwidth=0x20;
            field {
                sw = rw;
            } TransmitData[7:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } CommandData[10:8];
    } ControllerTransmitData @ 0x60;
    reg {
        name="ControllerReceiveData";
        desc = "This register has the following custom Renode callbacks: Read";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } ReceiveData[7:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } ReceiveEmpty[14:14];
    } ControllerReceiveData @ 0x70;
    reg {
        name="TargetControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TargetEnable[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SoftwareReset[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FilterEnable[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FilterDozeEnable[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ResetTransmitFIFO[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ResetReceiveFIFO[9:9];
    } TargetControl @ 0x110;
    reg {
        name="TargetStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TransmitDataFlag[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ReceiveDataFlag[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AddressValidFlag[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TransmitACKFlag[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RepeatedStartFlag[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } STOPDetectFlag[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BitErrorFlag[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFOErrorFlag[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AddressMatch0Flag[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AddressMatch1Flag[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GeneralCallFlag[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SMBusAlertResponseFlag[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TargetBusyFlag[24:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BusBusyFlag[25:25];
    } TargetStatus @ 0x114;
    reg {
        name="TargetInterruptEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TransmitDataInterruptEnable[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ReceiveDataInterruptEnable[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AddressValidInterruptEnable[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TransmitACKInterruptEnable[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RepeatedStartInterruptEnable[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } STOPDetectInterruptEnable[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BitErrorInterruptEnable[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFOErrorInterruptEnable[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AddressMatch0InterruptEnable[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AddressMatch1InterruptEnable[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GeneralCallInterruptEnable[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SMBusAlertResponseInterruptEnable[15:15];
    } TargetInterruptEnable @ 0x118;
    reg {
        name="TargetDMAEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TransmitDataDMAEnable[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ReceiveDataDMAEnable[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AddressValidDMAEnable[2:2];
    } TargetDMAEnable @ 0x11c;
    reg {
        name="TargetConfiguration1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AddressSCLStall[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXSCLStall[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TransmitDataSCLStall[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ACKSCLStall[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GeneralCallEnable[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SMBusAlertEnable[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TransmitFlagConfiguration[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ReceiveDataConfiguration[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IgnoreNACK[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HighSpeedModeEnable[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AddressConfiguration[18:16];
    } TargetConfiguration1 @ 0x124;
    reg {
        name="TargetConfiguration2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ClockHoldTime[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DataValidDelay[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GlitchFilterSCL[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GlitchFilterSDA[27:24];
    } TargetConfiguration2 @ 0x128;
    reg {
        name="TargetAddressMatch";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Address0Value[10:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Address0Value_[26:17];
    } TargetAddressMatch @ 0x140;
    reg {
        name="TargetAddressStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ReceivedAddress[10:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AddressNotValid[14:14];
    } TargetAddressStatus @ 0x150;
    reg {
        name="TargetTransmitACK";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TransmitNACK[0:0];
    } TargetTransmitACK @ 0x154;
    reg {
        name="TargetTransmitData";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TransmitData[7:0];
    } TargetTransmitData @ 0x160;
    reg {
        name="TargetReceiveData";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ReceiveData[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ReceivedAddress[10:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ReceiveEmpty[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } StartOfFrame[15:15];
    } TargetReceiveData @ 0x170;
} Registers_addrmap;


};