addrmap LPC_USART {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Configuration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ENABLE[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DATALEN[3:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } PARITYSEL[5:4];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } STOPLEN[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MODE32K[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LINMODE[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTSEN[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SYNCEN[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLKPOL[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SYNCMST[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LOOP[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OETA[18:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AUTOADDR[19:19];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OESEL[20:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OEPOL[21:21];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXPOL[22:22];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXPOL[23:23];
    } Configuration @ 0x0;
    reg {
        name="Control";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXBRKEN[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ADDRDET[2:2];
            field {
                sw = rw;
            } TXDIS[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CC[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLRCCONRX[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AUTOBAUD[16:16];
    } Control @ 0x4;
    reg {
        name="Status";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXIDLE[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } TXIDLE[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } CTS___Clear_To_Send[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DELTACTS[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXDISSTAT[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXBRK[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DELTARXBRK[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } START[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FRAMERRINT[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PARITYERRINT[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXNOSEINT[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABERR[16:16];
    } Status @ 0x8;
    reg {
        name="InterruptEnableReadSet";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXIDLEEN[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DELTACTSEN[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXDISEN[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DELTARXBRKEN[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } STARTEN[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FRAMERREN[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PARITYERREN[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXNOISEEN[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABERREN[16:16];
    } InterruptEnableReadSet @ 0xc;
    reg {
        name="InterruptEnableClear";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXIDLECLR[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DELTACTSCLR[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXDISCLR[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DELTARXBRKCLR[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } STARTCLR[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FRAMERRCLR[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PARITYERRCLR[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXNOISECLR[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABERRCLR[16:16];
    } InterruptEnableClear @ 0x10;
    reg {
        name="BaudRateGenerator";
        regwidth=0x20;
            field {
                sw = rw;
            } BRGVAL[15:0];
    } BaudRateGenerator @ 0x20;
    reg {
        name="InterruptStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXIDLE[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DELTACTS[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXDISINT[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DELTARXBRK[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } START[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FRAMERRINT[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PARITYERRINT[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXNOISEINT[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ABERRINT[16:16];
    } InterruptStatus @ 0x24;
    reg {
        name="OversampleSelection";
        regwidth=0x20;
            field {
                sw = rw;
            } OSRVAL[7:0];
    } OversampleSelection @ 0x28;
    reg {
        name="AutomaticAddressMatching";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ADDRESS[7:0];
    } AutomaticAddressMatching @ 0x2c;
    reg {
        name="FifoConfiguration";
        regwidth=0x20;
            field {
                sw = rw;
            } ENABLETX[0:0];
            field {
                sw = rw;
            } ENABLERX[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SIZE[5:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMATX[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMARX[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WAKETX[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WAKERX[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMPTYTX[16:16];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } EMPTYRX[17:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } POPDBG[18:18];
    } FifoConfiguration @ 0xe00;
    reg {
        name="FifoStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXERR[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXERR[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PERINT[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } TXEMPTY[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } TXNOTFULL[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RXNOTEMPTY[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RXFULL[7:7];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } TXLVL[12:8];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RXLVL[20:16];
    } FifoStatus @ 0xe04;
    reg {
        name="FifoTriggerSettings";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } TXLVLENA[0:0];
            field {
                sw = rw;
            } RXLVLENA[1:1];
            field {
                sw = rw;
            } TXLVL[11:8];
            field {
                sw = rw;
            } RXLVL[19:16];
    } FifoTriggerSettings @ 0xe08;
    reg {
        name="FifoInterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXERR[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXERR[1:1];
            field {
                sw = rw;
                onwrite = woset;
            } TXLVL[2:2];
            field {
                sw = rw;
                onwrite = woset;
            } RXLVL[3:3];
    } FifoInterruptEnable @ 0xe10;
    reg {
        name="FifoInterruptClear";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXERR[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXERR[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } TXLVL[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } RXLVL[3:3];
    } FifoInterruptClear @ 0xe14;
    reg {
        name="FifoInterruptStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TXERR[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXERR[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } TXLVL[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RXLVL[3:3];
    } FifoInterruptStatus @ 0xe18;
    reg {
        name="FifoWriteData";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } TXDATA[7:0];
    } FifoWriteData @ 0xe20;
    reg {
        name="FifoReadData";
        desc = "This register has the following custom Renode callbacks: Read";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RXDATA[7:0];
    } FifoReadData @ 0xe30;
    reg {
        name="FifoDataReadNoFifoPop";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXDATA[8:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FRAMERR[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PARITYERR[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RXNOISE[15:15];
    } FifoDataReadNoFifoPop @ 0xe40;
    reg {
        name="FifoSize";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFOSIZE[4:0];
    } FifoSize @ 0xe48;
    reg {
        name="PeripheralSelectAndId";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } PERIPHERAL_SELECT[2:0];
            field {
                sw = rw;
                onwrite = woset;
            } LOCK[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } USART_PRESENT[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SPI_PRESENT[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2C_PRESENT[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } I2S_PRESENT[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ID[31:12];
    } PeripheralSelectAndId @ 0xff8;
    reg {
        name="PeripheralIdentification";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } APRETURE[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MINOR_REV[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MAJOR_REV[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ID[31:16];
    } PeripheralIdentification @ 0xffc;
} Registers_addrmap;


};