addrmap STM32SPI {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Control1";
        regwidth=0x20;
            field {
                sw = rw;
            } CPHA[0:0];
            field {
                sw = rw;
            } CPOL[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } MSTR[2:2];
            field {
                sw = rw;
            } Baud[5:3];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } SpiEnable[6:6];
            field {
                sw = rw;
            } LSBFIRST[7:7];
            field {
                sw = rw;
            } SSI[8:8];
            field {
                sw = rw;
            } SSM[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXONLY[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DFF[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CRCNEXT[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CRCEN[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BIDIOE[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BIDIMODE[15:15];
    } Control1 @ 0x0;
    reg {
        name="Control2";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } RXDMAEN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXDMAEN[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SSOE[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FRF[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ERRIE[5:5];
            field {
                sw = rw;
            } RXNEIE[6:6];
            field {
                sw = rw;
            } TXEIE[7:7];
    } Control2 @ 0x4;
    reg {
        name="Status";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RXNE[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                reset=1'b1;
            } TXE[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CHSIDE[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } UDR[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CRCERR[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MODF[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OVR[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } BSY[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FRE[8:8];
    } Status @ 0x8;
    reg {
        name="Data";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } DR[15:0];
    } Data @ 0xc;
    reg {
        name="CRCPolynomial";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=16'b111;
            } CRCPOLY[15:0];
    } CRCPolynomial @ 0x10;
    reg {
        name="ReceivedCRC";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RxCRC[15:0];
    } ReceivedCRC @ 0x14;
    reg {
        name="TransmittedCRC";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TxCRC[15:0];
    } TransmittedCRC @ 0x18;
    reg {
        name="I2SConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CHLEN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DATLEN[2:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CKPOL[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2SSTD[5:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PCMSYNC[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2SCFG[9:8];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                onwrite = woclr;
            } I2SE[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2SMOD[11:11];
    } I2SConfiguration @ 0x1c;
    reg {
        name="I2SPrescaler";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=8'b10;
            } I2SDIV[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ODD[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MCKOE[9:9];
    } I2SPrescaler @ 0x20;
} Registers_addrmap;


};