addrmap MC3635 {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="ExtendedStatus1";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2C_AD0[3:3];
    } ExtendedStatus1 @ 0x0;
    reg {
        name="ExtendedStatus2";
        regwidth=0x8;
            field {
                sw = rw;
            } OVR_DATA[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PD_CLK_STAT[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OPT_BUSY[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SNIFF_EN[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SNIFF_DETECT[7:7];
    } ExtendedStatus2 @ 0x1;
    reg {
        name="XoutLsb";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } XOUT_LSB[7:0];
    } XoutLsb @ 0x2;
    reg {
        name="XoutMsb";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } XOUT_MSB[7:0];
    } XoutMsb @ 0x3;
    reg {
        name="YoutLsb";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } YOUT_LSB[7:0];
    } YoutLsb @ 0x4;
    reg {
        name="YoutMsb";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } YOUT_MSB[7:0];
    } YoutMsb @ 0x5;
    reg {
        name="ZoutLsb";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } ZOUT_LSB[7:0];
    } ZoutLsb @ 0x6;
    reg {
        name="ZoutMsb";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } ZOUT_MSB[7:0];
    } ZoutMsb @ 0x7;
    reg {
        name="Status1";
        regwidth=0x8;
            field {
                sw = r;
            } MODE[2:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } NEW_DATA[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_EMPTY[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_FULL[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_THRESH[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } INT_PEND[7:7];
    } Status1 @ 0x8;
    reg {
        name="Status2";
        desc = "This register has the following custom Renode callbacks: Read, Write";
        regwidth=0x8;
            field {
                sw = r;
            } INT_WAKE[2:2];
            field {
                sw = r;
            } INT_ACQ[3:3];
            field {
                sw = r;
            } INT_FIFO_EMPTY[4:4];
            field {
                sw = r;
            } INT_FIFO_FULL[5:5];
            field {
                sw = r;
            } INT_FIFO_THRESH[6:6];
            field {
                sw = r;
            } INT_SWAKE[7:7];
    } Status2 @ 0x9;
    reg {
        name="Feature1";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FREEZE[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INTSC_EN[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SPI3_EN[5:5];
            field {
                sw = r;
            } I2C_EN[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } SPI_EN[7:7];
    } Feature1 @ 0xd;
    reg {
        name="Feature2";
        regwidth=0x8;
            field {
                sw = rw;
            } WRAPA[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_BURST[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SPI_STAT_EN[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_STAT_EN[3:3];
            field {
                sw = rw;
            } I2CINT_WRCLRE[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_STREAM[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EXT_TRIG_POL[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EXT_TRIG_EN[7:7];
    } Feature2 @ 0xe;
    reg {
        name="Initialization1";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
                reset=8'b1000000;
            } INIT_1[7:0];
    } Initialization1 @ 0xf;
    reg {
        name="ModeControl";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } MCTRL[2:0];
            field {
                sw = rw;
            } X_AXIS_PD[4:4];
            field {
                sw = rw;
            } Y_AXIS_PD[5:5];
            field {
                sw = rw;
            } Z_AXIS_PD[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TRIG_CMD[7:7];
    } ModeControl @ 0x10;
    reg {
        name="Rate1";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } RATE_1[3:0];
    } Rate1 @ 0x11;
    reg {
        name="SniffControl";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SNIFF_RR[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } STB_RATE[7:5];
    } SniffControl @ 0x12;
    reg {
        name="SniffThresholdControl";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SNIFF_TH[5:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SNIFF_AND_OR[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SNIFF_MODE[7:7];
    } SniffThresholdControl @ 0x13;
    reg {
        name="SniffConfiguration";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SNIFF_THARD[1:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SNIFF_CNTEN[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SNIFF_MUX[5:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SNIFF_RESET[7:7];
    } SniffConfiguration @ 0x14;
    reg {
        name="RangeResolutionControl";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } RES[2:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } RANGE[6:4];
    } RangeResolutionControl @ 0x15;
    reg {
        name="FifoControl";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_TH[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_MODE[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_EN[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_RESET[7:7];
    } FifoControl @ 0x16;
    reg {
        name="InterruptControl";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IPP[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IAH[1:1];
            field {
                sw = rw;
            } INT_WAKE[2:2];
            field {
                sw = rw;
            } INT_ACQ[3:3];
            field {
                sw = rw;
            } INT_FIFO_EMPTY[4:4];
            field {
                sw = rw;
            } INT_FIFO_FULL[5:5];
            field {
                sw = rw;
            } INT_FIFO_THRESH[6:6];
            field {
                sw = rw;
            } INT_SWAKE[7:7];
    } InterruptControl @ 0x17;
    reg {
        name="Initialization3";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INIT_3[7:0];
    } Initialization3 @ 0x1a;
    reg {
        name="Scratchpad";
        regwidth=0x8;
            field {
                sw = rw;
            } SCRATCH[7:0];
    } Scratchpad @ 0x1b;
    reg {
        name="PowerModeControl";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } CSPM[1:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } SPM[6:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SPI_HS_EN[7:7];
    } PowerModeControl @ 0x1c;
    reg {
        name="DriveMotionX";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DPX[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DNX[3:3];
    } DriveMotionX @ 0x20;
    reg {
        name="DriveMotionY";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DPY[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DNY[3:3];
    } DriveMotionY @ 0x21;
    reg {
        name="DriveMotionZ";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DPZ[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DNZ[3:3];
    } DriveMotionZ @ 0x22;
    reg {
        name="Reset";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } RESET[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RELOAD[7:7];
    } Reset @ 0x24;
    reg {
        name="Initialization2";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } INIT_2[7:0];
    } Initialization2 @ 0x28;
    reg {
        name="TrigggerCount";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TRIGC[7:0];
    } TrigggerCount @ 0x29;
    reg {
        name="XOffsetLSB";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } XOFFL[7:0];
    } XOffsetLSB @ 0x2a;
    reg {
        name="XOffsetMSB";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } XOFFH[6:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } XGAINH[7:7];
    } XOffsetMSB @ 0x2b;
    reg {
        name="YOffsetLSB";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } YOFFL[7:0];
    } YOffsetLSB @ 0x2c;
    reg {
        name="YOffsetMSB";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } YOFFH[6:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } YGAINH[7:7];
    } YOffsetMSB @ 0x2d;
    reg {
        name="ZOffsetLSB";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ZOFFL[7:0];
    } ZOffsetLSB @ 0x2e;
    reg {
        name="ZOffsetMSB";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ZOFFH[6:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ZGAINH[7:7];
    } ZOffsetMSB @ 0x2f;
    reg {
        name="GainX";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } XGAINL[7:0];
    } GainX @ 0x30;
    reg {
        name="GainY";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } YGAINL[7:0];
    } GainY @ 0x31;
    reg {
        name="GainZ";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ZGAINL[7:0];
    } GainZ @ 0x32;
} Registers_addrmap;


};