addrmap OpenTitan_UART {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="InterruptState";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
                onwrite = woclr;
            } INTR_STATE_tx_watermark[0:0];
            field {
                sw = rw;
                onwrite = woclr;
            } INTR_STATE_rx_watermark[1:1];
            field {
                sw = rw;
                onwrite = woclr;
            } INTR_STATE_tx_empty[2:2];
            field {
                sw = rw;
                onwrite = woclr;
            } INTR_STATE_rx_overflow[3:3];
            field {
                sw = rw;
                onwrite = woclr;
            } INTR_STATE_rx_frame_err[4:4];
            field {
                sw = rw;
                onwrite = woclr;
            } INTR_STATE_rx_break_err[5:5];
            field {
                sw = rw;
                onwrite = woclr;
            } INTR_STATE_rx_timeout[6:6];
            field {
                sw = rw;
                onwrite = woclr;
            } INTR_STATE_rx_parity_err[7:7];
    } InterruptState @ 0x0;
    reg {
        name="InterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } INTR_ENABLE_tx_watermark[0:0];
            field {
                sw = rw;
            } INTR_ENABLE_rx_watermark[1:1];
            field {
                sw = rw;
            } INTR_ENABLE_tx_empty[2:2];
            field {
                sw = rw;
            } INTR_ENABLE_rx_overflow[3:3];
            field {
                sw = rw;
            } INTR_ENABLE_rx_frame_err[4:4];
            field {
                sw = rw;
            } INTR_ENABLE_rx_break_err[5:5];
            field {
                sw = rw;
            } INTR_ENABLE_rx_timeout[6:6];
            field {
                sw = rw;
            } INTR_ENABLE_rx_parity_err[7:7];
    } InterruptEnable @ 0x4;
    reg {
        name="InterruptTest";
        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;
            } INTR_TEST_tx_watermark[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } INTR_TEST_rx_watermark[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } INTR_TEST_tx_empty[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } INTR_TEST_rx_overflow[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } INTR_TEST_rx_frame_err[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } INTR_TEST_rx_break_err[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } INTR_TEST_rx_timeout[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } INTR_TEST_rx_parity_err[7:7];
    } InterruptTest @ 0x8;
    reg {
        name="AlertTest";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } fatal_fault[0:0];
    } AlertTest @ 0xc;
    reg {
        name="Control";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } CTRL_TX[0:0];
            field {
                sw = rw;
            } CTRL_RX[1:1];
            field {
                sw = rw;
            } CTRL_NF[2:2];
            field {
                sw = rw;
            } CTRL_SLPBK[4:4];
            field {
                sw = rw;
            } CTRL_LLPBK[5:5];
            field {
                sw = rw;
            } CTRL_PARITY_EN[6:6];
            field {
                sw = rw;
            } CTRL_PARITY_ODD[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTRL_RXBLVL[9:8];
            field {
                sw = rw;
            } CTRL_NCO[31:16];
    } Control @ 0x10;
    reg {
        name="LiveStatus";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STATUS_TXFULL[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STATUS_RXFULL[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STATUS_TXEMPTY[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STATUS_TXIDLE[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STATUS_RXIDLE[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STATUS_RXEMPTY[5:5];
    } LiveStatus @ 0x14;
    reg {
        name="ReadData";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RDATA[7:0];
    } ReadData @ 0x18;
    reg {
        name="WriteData";
        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;
            } WDATA[7:0];
    } WriteData @ 0x1c;
    reg {
        name="FIFOControl";
        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;
            } FIFO_CTRL_RXRST[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } FIFO_CTRL_TXRST[1:1];
            field {
                sw = rw;
            } FIFO_CTRL_RXILVL[4:2];
            field {
                sw = rw;
            } FIFO_CTRL_TXILVL[6:5];
    } FIFOControl @ 0x20;
    reg {
        name="FIFOStatus";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } FIFO_STATUS_TXLVL[5:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } FIFO_STATUS_RXLVL[21:16];
    } FIFOStatus @ 0x24;
    reg {
        name="TxPinOverrideControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OVRD_TXEN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OVRD_TXVAL[1:1];
    } TxPinOverrideControl @ 0x28;
    reg {
        name="OversampledValues";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } VAL_RX[15:0];
    } OversampledValues @ 0x2c;
    reg {
        name="RxTimeoutControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIMEOUT_CTRL_VAL[23:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIMEOUT_CTRL_EN[31:31];
    } RxTimeoutControl @ 0x30;
} Registers_addrmap;


};