addrmap LSM303DLHC_Accelerometer {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="ChipID";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
                reset=8'b110011;
            } DUMMY[7:0];
    } ChipID @ 0xf;
    reg {
        name="Control1";
        regwidth=0x8;
            field {
                sw = rw;
                reset=1'b1;
            } X_AXIS_ENABLE[0:0];
            field {
                sw = rw;
                reset=1'b1;
            } Y_AXIS_ENABLE[1:1];
            field {
                sw = rw;
            } Z_AXIS_ENABLE[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LOW_POWER_ENABLE[3:3];
            field {
                sw = rw;
                reset=4'b100;
            } DATA_RATE[7:4];
    } Control1 @ 0x20;
    reg {
        name="Control4";
        regwidth=0x8;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SIM[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PREREQ[2:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HR[3:3];
            field {
                sw = rw;
            } FS[5:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BLE[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BDU[7:7];
    } Control4 @ 0x23;
    reg {
        name="StatusReg";
        regwidth=0x8;
            field {
                sw = r;
            } X_DATA_AVAILABLE[0:0];
            field {
                sw = r;
            } Y_DATA_AVAILABLE[1:1];
            field {
                sw = r;
            } Z_DATA_AVAILABLE[2:2];
            field {
                sw = r;
                reset=1'b1;
            } XYZ_DATA_AVAILABLE[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } X_DATA_OVERRUN[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Y_DATA_OVERRUN[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Z_DATA_OVERRUN[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } XYZ_DATA_OVERRUN[7:7];
    } StatusReg @ 0x27;
    reg {
        name="DataOutXL";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } X_ACCEL_DATA7_0[7:0];
    } DataOutXL @ 0x28;
    reg {
        name="DataOutXH";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } X_ACCEL_DATA15_8[7:0];
    } DataOutXH @ 0x29;
    reg {
        name="DataOutYL";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Y_ACCEL_DATA7_0[7:0];
    } DataOutYL @ 0x2a;
    reg {
        name="DataOutYH";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Y_ACCEL_DATA15_8[7:0];
    } DataOutYH @ 0x2b;
    reg {
        name="DataOutZL";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Z_ACCEL_DATA7_0[7:0];
    } DataOutZL @ 0x2c;
    reg {
        name="DataOutZH";
        regwidth=0x8;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Z_ACCEL_DATA15_8[7:0];
    } DataOutZH @ 0x2d;
    reg {
        name="Interrupt1Config";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                sw = rw;
                reset=1'b1;
            } XL_EVENT_IRQ_ENABLE[0:0];
            field {
                sw = rw;
                reset=1'b1;
            } XH_EVENT_IRQ_ENABLE[1:1];
            field {
                sw = rw;
                reset=1'b1;
            } YL_EVENT_IRQ_ENABLE[2:2];
            field {
                sw = rw;
                reset=1'b1;
            } YH_EVENT_IRQ_ENABLE[3:3];
            field {
                sw = rw;
                reset=1'b1;
            } ZL_EVENT_IRQ_ENABLE[4:4];
            field {
                sw = rw;
                reset=1'b1;
            } ZH_EVENT_IRQ_ENABLE[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } _6DIR_DETECT_ENABLE[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AO_IRQ_EVENTS[7:7];
    } Interrupt1Config @ 0x30;
    reg {
        name="Interrupt1Source";
        regwidth=0x8;
            field {
                sw = r;
            } XL_IRQ[0:0];
            field {
                sw = r;
            } XH_IRQ[1:1];
            field {
                sw = r;
            } YL_IRQ[2:2];
            field {
                sw = r;
            } YH_IRQ[3:3];
            field {
                sw = r;
            } ZL_IRQ[4:4];
            field {
                sw = r;
            } ZH_IRQ[5:5];
            field {
                sw = r;
                reset=1'b1;
            } IRQ_ACTIVE[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PREREQ[7:7];
    } Interrupt1Source @ 0x31;
    reg {
        name="Interrupt2Config";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x8;
            field {
                sw = rw;
                reset=1'b1;
            } XL_EVENT_IRQ_ENABLE[0:0];
            field {
                sw = rw;
                reset=1'b1;
            } XH_EVENT_IRQ_ENABLE[1:1];
            field {
                sw = rw;
                reset=1'b1;
            } YL_EVENT_IRQ_ENABLE[2:2];
            field {
                sw = rw;
                reset=1'b1;
            } YH_EVENT_IRQ_ENABLE[3:3];
            field {
                sw = rw;
                reset=1'b1;
            } ZL_EVENT_IRQ_ENABLE[4:4];
            field {
                sw = rw;
                reset=1'b1;
            } ZH_EVENT_IRQ_ENABLE[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } _6DIR_DETECT_ENABLE[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AO_IRQ_EVENTS[7:7];
    } Interrupt2Config @ 0x34;
    reg {
        name="Interrupt2Source";
        regwidth=0x8;
            field {
                sw = r;
            } XL_IRQ[0:0];
            field {
                sw = r;
            } XH_IRQ[1:1];
            field {
                sw = r;
            } YL_IRQ[2:2];
            field {
                sw = r;
            } YH_IRQ[3:3];
            field {
                sw = r;
            } ZL_IRQ[4:4];
            field {
                sw = r;
            } ZH_IRQ[5:5];
            field {
                sw = r;
                reset=1'b1;
            } IRQ_ACTIVE[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PREREQ[7:7];
    } Interrupt2Source @ 0x35;
} Registers_addrmap;


};