addrmap STM32F1_I2C {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Control1";
        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;
            } PE[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } SMBUS[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SMBTYPE[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ENARP[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ENPEC[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ENGC[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } NOSTRETCH[7:7];
            field {
                sw = rw;
            } START[8:8];
            field {
                sw = rw;
            } STOP[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ACK[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } POS[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PEC[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ALERT[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SWRST[15:15];
    } Control1 @ 0x0;
    reg {
        name="Control2";
        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;
                reset=6'b100;
            } FREQ[5:0];
            field {
                sw = rw;
            } ITERREN[8:8];
            field {
                sw = rw;
            } ITEVTEN[9:9];
            field {
                sw = rw;
            } ITBUFFEN[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMAEN[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LAST[12:12];
    } Control2 @ 0x4;
    reg {
        name="OwnAddress1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ADD0[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ADD7_1[7:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ADD9_8[9:8];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ONE[14:14];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } ADDMODE[15:15];
    } OwnAddress1 @ 0x8;
    reg {
        name="OwnAddress2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ENDUAL[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ADD27_1[7:1];
    } OwnAddress2 @ 0xc;
    reg {
        name="Data";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } DR[7:0];
    } Data @ 0x10;
    reg {
        name="Status1";
        regwidth=0x20;
            field {
                sw = r;
            } SB[0:0];
            field {
                sw = r;
            } ADDR[1:1];
            field {
                sw = r;
            } BTF[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ADD10[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } STOPF[4:4];
            field {
                sw = r;
            } RxNE[6:6];
            field {
                sw = r;
            } TxE[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BERR[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ARLO[9:9];
            field {
                sw = rw;
                onwrite = wzc;
                onread = rclr;
            } AF[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OVR[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PECERR[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIMEOUT[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SMBALERT[15:15];
    } Status1 @ 0x14;
    reg {
        name="Status2";
        desc = "This register has the following custom Renode callbacks: Read";
        regwidth=0x20;
            field {
                sw = r;
            } MSL[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } BUSY[1:1];
            field {
                sw = r;
            } TRA[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } GENCALL[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SMBDEFAULT[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SMBHOST[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DUALF[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PEC[15:8];
    } Status2 @ 0x18;
    reg {
        name="ClockControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CCR[11:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DUTY[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } F_S[15:15];
    } ClockControl @ 0x1c;
    reg {
        name="RiseTime";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TRISE[5:0];
    } RiseTime @ 0x20;
} Registers_addrmap;


};