addrmap OpenTitan_CSRNG {

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;
            } cs_cmd_req_done[0:0];
            field {
                sw = rw;
                onwrite = woclr;
            } cs_entropy_req[1:1];
            field {
                sw = rw;
                onwrite = woclr;
            } cs_hw_inst_exc[2:2];
            field {
                sw = rw;
                onwrite = woclr;
            } cs_fatal_err[3:3];
    } InterruptState @ 0x0;
    reg {
        name="InterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
                onwrite = woclr;
            } cs_cmd_req_done[0:0];
            field {
                sw = rw;
                onwrite = woclr;
            } cs_entropy_req[1:1];
            field {
                sw = rw;
                onwrite = woclr;
            } cs_hw_inst_exc[2:2];
            field {
                sw = rw;
                onwrite = woclr;
            } cs_fatal_err[3:3];
    } 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;
            } cs_cmd_req_done[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } cs_entropy_req[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } cs_hw_inst_exc[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } cs_fatal_err[3:3];
    } InterruptTest @ 0x8;
    reg {
        name="AlertTest";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } recov_alert[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } fatal_alert[1:1];
    } AlertTest @ 0xc;
    reg {
        name="RegisterWriteEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } REGWEN[0:0];
    } RegisterWriteEnable @ 0x10;
    reg {
        name="Control";
        regwidth=0x20;
            field {
                sw = rw;
                reset=4'b1001;
            } ENABLE[3:0];
            field {
                sw = rw;
                reset=4'b1001;
            } SW_APP_ENABLE[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=4'b1001;
            } READ_INT_STATE[11:8];
    } Control @ 0x14;
    reg {
        name="CommandRequest";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } CMD_REQ[31:0];
    } CommandRequest @ 0x18;
    reg {
        name="CommandStatus";
        regwidth=0x20;
            field {
                sw = r;
                reset=1'b1;
            } CMD_RDY[0:0];
            field {
                sw = r;
            } CMD_STS[1:1];
    } CommandStatus @ 0x1c;
    reg {
        name="GenerateBitsValid";
        regwidth=0x20;
            field {
                sw = r;
            } GENBITS_VLD[0:0];
            field {
                sw = r;
            } GENBITS_FIPS[1:1];
    } GenerateBitsValid @ 0x20;
    reg {
        name="GenerateBits";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } GENBITS[31:0];
    } GenerateBits @ 0x24;
    reg {
        name="InternalStateNumber";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } INT_STATE_NUM[3:0];
    } InternalStateNumber @ 0x28;
    reg {
        name="InternalStateReadAccess";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } INT_STATE_VAL[31:0];
    } InternalStateReadAccess @ 0x2c;
    reg {
        name="HardwareExceptionStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HW_EXC_STS[14:0];
    } HardwareExceptionStatus @ 0x30;
    reg {
        name="RecoverableAlertStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ENABLE_FIELD_ALERT[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SW_APP_ENABLE_FIELD_ALERT[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } READ_INT_STATE_FIELD_ALERT[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CS_BUS_CMP_ALERT[12:12];
    } RecoverableAlertStatus @ 0x34;
    reg {
        name="ErrorCode";
        regwidth=0x20;
            field {
                sw = r;
            } SFIFO_CMD_ERR[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_GENBITS_ERR[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_CMDREQ_ERR[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_RCSTAGE_ERR[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_KEYVRC_ERR[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_UPDREQ_ERR[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_BENCREQ_ERR[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_BENCACK_ERR[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_PDATA_ERR[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_FINAL_ERR[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_GBENCACK_ERR[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_GRCSTAGE_ERR[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_GGENREQ_ERR[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_GADSTAGE_ERR[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_GGENBITS_ERR[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SFIFO_BLKENC_ERR[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CMD_STAGE_SM_ERR[20:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MAIN_SM_ERR[21:21];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DRBG_GEN_SM_ERR[22:22];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DRBG_UPDBE_SM_ERR[23:23];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DRBG_UPDOB_SM_ERR[24:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AES_CIPHER_SM_ERR[25:25];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CMD_GEN_CNT_ERR[26:26];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_WRITE_ERR[28:28];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_READ_ERR[29:29];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIFO_STATE_ERR[30:30];
    } ErrorCode @ 0x38;
    reg {
        name="ErrorCodeTest";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ERR_CODE_TEST[4:0];
    } ErrorCodeTest @ 0x3c;
    reg {
        name="StateMachineState";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=8'b1001110;
            } MAIN_SM_STATE[7:0];
    } StateMachineState @ 0x40;
} Registers_addrmap;


};