addrmap Cadence_I2C {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Control";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } divisorA[15:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } divisorB[13:8];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                onwrite = woclr;
            } clearFifo[6:6];
            field {
                sw = rw;
            } targetMonitorEnabled[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } transferHold[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } transferAcknowledge[3:3];
            field {
                sw = rw;
            } addressingMode[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } interfaceMode[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } transferDirection[0:0];
    } Control @ 0x0;
    reg {
        name="Status";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } busActive[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } rxFifoOverflow[7:7];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } txFifoNotEmpty[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } rxFifoNotEmpty[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } targetModeTransferDirection[3:3];
    } Status @ 0x4;
    reg {
        name="TransferAddress";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } transferAddress[9:0];
    } TransferAddress @ 0x8;
    reg {
        name="TransferData";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } transferData[7:0];
    } TransferData @ 0xc;
    reg {
        name="InterruptStatus";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } arbitrationLostStatus[9:9];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } rxFifoUnderflowStatus[7:7];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } txFifoOverflowStatus[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } rxFifoOverflowStatus[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } targetReadyStatus[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } timeoutStatus[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } transferNotAcknowledgedStatus[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } transferNewDataStatus[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } transferCompletedStatus[0:0];
    } InterruptStatus @ 0x10;
    reg {
        name="TransferSize";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } No_name_1[7:0];
    } TransferSize @ 0x14;
    reg {
        name="TargetMonitor";
        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];
    } TargetMonitor @ 0x18;
    reg {
        name="Timeout";
        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];
    } Timeout @ 0x1c;
    reg {
        name="InterruptMask";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } arbitrationLostMask[9:9];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } rxFifoUnderflowMask[7:7];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } txFifoOverflowMask[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } rxFifoOverflowMask[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } targetReadyMask[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } timeoutMask[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } transferNotAcknowledgedMask[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } transferNewDataMask[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } transferCompletedMask[0:0];
    } InterruptMask @ 0x20;
    reg {
        name="InterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } arbitrationLostInterruptEnable[9:9];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } rxFifoUnderflowInterruptEnable[7:7];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } txFifoOverflowInterruptEnable[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } rxFifoOverflowInterruptEnable[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } targetReadyInterruptEnable[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } timeoutInterruptEnable[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } transferNotAcknowledgedInterruptEnable[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } transferNewDataInterruptEnable[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } transferCompletedInterruptEnable[0:0];
    } InterruptEnable @ 0x24;
    reg {
        name="InterruptDisable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } arbitrationLostInterruptDisable[9:9];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } rxFifoUnderflowInterruptDisable[7:7];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } txFifoOverflowInterruptDisable[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } rxFifoOverflowInterruptDisable[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } targetReadyInterruptDisable[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } timeoutInterruptDisable[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } transferNotAcknowledgedInterruptDisable[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } transferNewDataInterruptDisable[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } transferCompletedInterruptDisable[0:0];
    } InterruptDisable @ 0x28;
    reg {
        name="GlitchFilter";
        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];
    } GlitchFilter @ 0x2c;
} Registers_addrmap;


};