addrmap OpenTitan_HMAC {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="InterruptStatus";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
                onwrite = woclr;
            } hmac_done[0:0];
            field {
                sw = rw;
                onwrite = woclr;
            } fifo_empty[1:1];
            field {
                sw = rw;
                onwrite = woclr;
            } hmac_err[2:2];
    } InterruptStatus @ 0x0;
    reg {
        name="InterruptEnable";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } hmac_done[0:0];
            field {
                sw = rw;
            } fifo_empty[1:1];
            field {
                sw = rw;
            } hmac_err[2:2];
    } 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;
            } hmac_done[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } fifo_empty[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } hmac_err[2:2];
    } 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="ConfigurationRegister";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                sw = rw;
            } hmac_en[0:0];
            field {
                sw = rw;
            } sha_en[1:1];
            field {
                sw = rw;
                reset=1'b1;
            } endian_swap[2:2];
            field {
                sw = rw;
            } digest_swap[3:3];
    } ConfigurationRegister @ 0x10;
    reg {
        name="Command";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } hash_start[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } hash_process[1:1];
    } Command @ 0x14;
    reg {
        name="Status";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } fifo_empty[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } fifo_full[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } fifo_depth[8:4];
    } Status @ 0x18;
    reg {
        name="ErrorCode";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } err_code[31:0];
    } ErrorCode @ 0x1c;
    reg {
        name="RandomizationInput";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } secret[31:0];
    } RandomizationInput @ 0x20;
    reg {
        name="SecretKey_0";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } key[31:0];
    } SecretKey_0 [8]@ 0x24 += 4;
    reg {
        name="Digest_0";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } digest[31:0];
    } Digest_0 [8]@ 0x44 += 4;
    reg {
        name="MessageLengthLowerPart";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } v[31:0];
    } MessageLengthLowerPart @ 0x64;
    reg {
        name="MessageLengthUpperPart";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } v[31:0];
    } MessageLengthUpperPart @ 0x68;
    reg {
        name="FifoWindow";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } FifoWindow @ 0x800;
} Registers_addrmap;


};