addrmap MPFS_eNVM {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="PageAddress";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Byte_Select[1:0];
            field {
                sw = rw;
            } PA[13:8];
    } PageAddress @ 0x0;
    reg {
        name="WriteDataAtPageAddress";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = r;
            } PAGE_WRITE_ADDR[31:0];
    } WriteDataAtPageAddress @ 0x4;
    reg {
        name="WriteDataAtPageAddressThenIncrement";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = r;
            } PAGE_WRITE_INC_ADDR[31:0];
    } WriteDataAtPageAddressThenIncrement @ 0x8;
    reg {
        name="FlashMacroAddress";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Bya[1:0];
            field {
                sw = rw;
            } Wa[8:8];
            field {
                sw = rw;
            } Ca[13:9];
            field {
                sw = rw;
            } Ra[23:16];
            field {
                sw = rw;
            } Ba[25:24];
    } FlashMacroAddress @ 0xc;
    reg {
        name="ReadFlashData";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } FM_READ[31:0];
    } ReadFlashData @ 0x10;
    reg {
        name="ReadFlashDataThenIncrement";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } FM_READ_INC[31:0];
    } ReadFlashDataThenIncrement @ 0x14;
    reg {
        name="FlashMacroConfiguration";
        regwidth=0x20;
            field {
                sw = rw;
            } FM_Mode[3:0];
            field {
                sw = rw;
            } FM_Seq[9:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DAA_MUX_Select[21:16];
    } FlashMacroConfiguration @ 0x18;
    reg {
        name="TimerConfiguration";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Period[15:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Timer_En[16:16];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Scale[17:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Pe_en[18:18];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } Aclk_en[19:19];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } cfg[29:24];
    } TimerConfiguration @ 0x1c;
    reg {
        name="AnalogConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=4'b1000;
            } BDAC[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=4'b110;
            } itim[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MDAC[15:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=5'b10100;
            } PDAC[20:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=5'b10110;
            } NDAC[28:24];
    } AnalogConfiguration @ 0x20;
    reg {
        name="TestModeConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } tm[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } tm_disneg[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } tm_dispos[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } tm_itim[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } tm_rdhvpl[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } tm_rdstrb[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } tm_vdac_force[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } tm_xydec[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } turbo_b[14:14];
            field {
                sw = rw;
            } tm_cmpr[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } extrm_tim[20:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } pg_en[23:23];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } pe_tm[24:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } pnb[25:25];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } tm_daa[26:26];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } tm_disrow[27:27];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } tm_isa[31:31];
    } TestModeConfiguration @ 0x24;
    reg {
        name="Status";
        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;
            } hv_timer[0:0];
    } Status @ 0x28;
    reg {
        name="Wait";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b10;
            } wait_wr_hvpl[1:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=3'b101;
            } wait_rd_fm[4:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } vref_vlevel[10:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } vref_ilevel_p[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } vref_ilevel_n[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ctat[26:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } vbg_ilevel[28:27];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } vbg_curve[31:29];
    } Wait @ 0x2c;
    reg {
        name="Monitor";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } xy_out[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } sw2fm_r[1:1];
            field {
                sw = r;
            } cmprx[2:2];
    } Monitor @ 0x30;
    reg {
        name="SW2FMEnable";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } switch_code[7:0];
    } SW2FMEnable @ 0x34;
    reg {
        name="ScratchPad";
        regwidth=0x20;
            field {
                sw = rw;
            } scratch_pad[31:0];
    } ScratchPad @ 0x38;
    reg {
        name="HVConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=8'b11001;
            } FM_Clock_Frequency[7:0];
    } HVConfiguration @ 0x3c;
    reg {
        name="InterruptMask";
        regwidth=0x20;
            field {
                sw = rw;
            } Mask_reg0[0:0];
    } InterruptMask @ 0x40;
    reg {
        name="GenerateAClk";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } ACLK_GEN_ADDR[31:0];
    } GenerateAClk @ 0x44;
    reg {
        name="FlashMacroDummyRead";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Read.";
                sw = r;
            } Mask_regX[31:0];
    } FlashMacroDummyRead @ 0x48;
} Registers_addrmap;


};