addrmap AmbiqApollo4_PowerController {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="MCUPerformanceControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b1;
            } MCUPERFREQ[1:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MCUPERFACK[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b1;
            } MCUPERFSTATUS[4:3];
    } MCUPerformanceControl @ 0x0;
    reg {
        name="DevicePowerEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENIOS[0:0];
            field {
                sw = rw;
            } PWRENIOMx[4:1];
            field {
                sw = rw;
            } PWRENIOMx_[8:5];
            field {
                sw = rw;
            } PWRENUARTx[12:9];
            field {
                sw = rw;
            } PWRENADC[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENMSPI0[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENMSPI1[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENMSPI2[16:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENGFX[17:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENDISP[18:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENDISPPHY[19:19];
            field {
                sw = rw;
                reset=1'b1;
            } PWRENCRYPTO[20:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENSDIO[21:21];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENUSB[22:22];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENUSBPHY[23:23];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENDBG[24:24];
    } DevicePowerEnable @ 0x4;
    reg {
        name="DevicePowerStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTIOS[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } PWRSTIOMx[4:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } PWRSTIOMx_[8:5];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } PWRSTUARTx[12:9];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } PWRSTADC[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTMSPI0[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTMSPI1[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTMSPI2[16:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTGFX[17:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTDISP[18:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTDISPPHY[19:19];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } PWRSTCRYPTO[20:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTSDIO[21:21];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTUSB[22:22];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTUSBPHY[23:23];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTDBG[24:24];
    } DevicePowerStatus @ 0x8;
    reg {
        name="AudioSubsystemPowerEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENAUDREC[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENAUDPB[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENPDM0[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENPDM1[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENPDM2[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENPDM3[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENI2S0[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENI2S1[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENAUDADC[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENDSPA[11:11];
    } AudioSubsystemPowerEnable @ 0xc;
    reg {
        name="AudioSubsystemPowerStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTAUDREC[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTAUDPB[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTPDM0[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTPDM1[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTPDM2[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTPDM3[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTI2S0[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTI2S1[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTAUDADC[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTDSPA[11:11];
    } AudioSubsystemPowerStatus @ 0x10;
    reg {
        name="MemoryPowerEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=3'b111;
            } PWRENDTCM[2:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PWRENNVM0[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PWRENCACHEB0[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PWRENCACHEB2[5:5];
    } MemoryPowerEnable @ 0x14;
    reg {
        name="MemoryPowerStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=3'b111;
            } PWRSTDTCM[2:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PWRSTNVM0[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PWRSTCACHEB0[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PWRSTCACHEB2[5:5];
    } MemoryPowerStatus @ 0x18;
    reg {
        name="MemoryRetConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DTCMPWDSLP[2:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } NVM0PWDSLP[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CACHEPWDSLP[4:4];
    } MemoryRetConfiguration @ 0x1c;
    reg {
        name="SystemPowerStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PWRSTMCUL[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PWRSTMCUH[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PWRSTDSP0H[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PWRSTDSP1H[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CORESLEEP[29:29];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } COREDEEPSLEEP[30:30];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SYSDEEPSLEEP[31:31];
    } SystemPowerStatus @ 0x20;
    reg {
        name="SharedSRAMPowerEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENSSRAM[1:0];
    } SharedSRAMPowerEnable @ 0x24;
    reg {
        name="SharedSRAMPowerStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b11;
            } SSRAMPWRST[1:0];
    } SharedSRAMPowerStatus @ 0x28;
    reg {
        name="SharedSRAMRetConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SSRAMPWDSLP[1:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b11;
            } SSRAMACTMCU[3:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b11;
            } SSRAMACTDSP[5:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b11;
            } SSRAMACTGFX[7:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b11;
            } SSRAMACTDISP[9:8];
    } SharedSRAMRetConfiguration @ 0x2c;
    reg {
        name="DevicePowerEventEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MCULEVEN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MCUHEVEN[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HCPAEVEN[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HCPBEVEN[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HCPCEVEN[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ADCEVEN[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MSPIEVEN[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AUDEVEN[7:7];
    } DevicePowerEventEnable @ 0x30;
    reg {
        name="MemoryPowerEventEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DTCMEN[2:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } NVM0EN[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CACHEB0EN[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CACHEB2EN[5:5];
    } MemoryPowerEventEnable @ 0x34;
    reg {
        name="MultimediaSystemOverride";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MMSOVRMCULDISP[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MMSOVRMCULGFX[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } MMSOVRSSRAMDISP[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } MMSOVRSSRAMGFX[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b11;
            } MMSOVRDSPRAMRETDISP[5:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b11;
            } MMSOVRDSPRAMRETGFX[7:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b11;
            } MMSOVRSSRAMRETDISP[9:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b11;
            } MMSOVRSSRAMRETGFX[11:10];
    } MultimediaSystemOverride @ 0x40;
    reg {
        name="DSP0PowerAndResetControls";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=4'b1000;
            } DSP0PCMRSTDLY[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DSP0PCMRSTOR[4:4];
    } DSP0PowerAndResetControls @ 0x50;
    reg {
        name="DSP0PerformanceControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b1;
            } DSP0PERFREQ[1:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DSP0PERFACK[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b1;
            } DSP0PERFSTATUS[4:3];
    } DSP0PerformanceControl @ 0x54;
    reg {
        name="DSP0MemoryPowerEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENDSP0RAM[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENDSP0ICACHE[1:1];
    } DSP0MemoryPowerEnable @ 0x58;
    reg {
        name="DSP0MemoryPowerStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTDSP0RAM[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTDSP0ICACHE[1:1];
    } DSP0MemoryPowerStatus @ 0x5c;
    reg {
        name="DSP0MemoryRetConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RAMPWDDSP0OFF[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DSP0RAMACTMCU[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ICACHEPWDDSP0OFF[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DSP0RAMACTDISP[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DSP0RAMACTGFX[4:4];
    } DSP0MemoryRetConfiguration @ 0x60;
    reg {
        name="DSP1PowerAndResetControls";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=4'b1000;
            } DSP1PCMRSTDLY[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DSP1PCMRSTOR[4:4];
    } DSP1PowerAndResetControls @ 0x70;
    reg {
        name="DSP1PerformanceControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b1;
            } DSP1PERFREQ[1:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DSP1PERFACK[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b1;
            } DSP1PERFSTATUS[4:3];
    } DSP1PerformanceControl @ 0x74;
    reg {
        name="DSP1MemoryPowerEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENDSP1RAM[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRENDSP1ICACHE[1:1];
    } DSP1MemoryPowerEnable @ 0x78;
    reg {
        name="DSP1MemoryPowerStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTDSP1RAM[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRSTDSP1ICACHE[1:1];
    } DSP1MemoryPowerStatus @ 0x7c;
    reg {
        name="DSP1MemoryRetConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RAMPWDDSP1OFF[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DSP1RAMACTMCU[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ICACHEPWDDSP1OFF[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DSP1RAMACTDISP[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DSP1RAMACTGFX[4:4];
    } DSP1MemoryRetConfiguration @ 0x80;
    reg {
        name="VoltageRegulatorsControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SIMOBUCKEN[0:0];
    } VoltageRegulatorsControl @ 0x100;
    reg {
        name="VoltageRegulatorsLegacyLowPowerOverrides";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREIOS[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREHCPA[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREHCPB[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREHCPC[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREHCPD[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREHCPE[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREMSPI[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREGFX[7:7];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREDISP[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREDISPPHY[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNORECRYPTO[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNORESDIO[11:11];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREUSB[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREUSBPHY[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREAUD[14:14];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREDSPA[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREDSP0H[16:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREDSP1H[17:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IGNOREDBG[18:18];
    } VoltageRegulatorsLegacyLowPowerOverrides @ 0x104;
    reg {
        name="VoltageRegulatorsStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CORELDOST[1:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } MEMLDOST[3:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SIMOBUCKST[5:4];
    } VoltageRegulatorsStatus @ 0x108;
    reg {
        name="ULPLowPowerWeights0";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPMCU[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPDSP0[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPDSP1[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPIOS[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPUART0[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPUART1[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPUART2[27:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPUART3[31:28];
    } ULPLowPowerWeights0 @ 0x140;
    reg {
        name="ULPLowPowerWeights1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPIOM0[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPIOM1[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPIOM2[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPIOM3[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPIOM4[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPIOM5[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPIOM6[27:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPIOM7[31:28];
    } ULPLowPowerWeights1 @ 0x144;
    reg {
        name="ULPLowPowerWeights2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPADC[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPMSPI0[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPMSPI1[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPGFX[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPDISP[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPCRYPTO[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPSDIO[27:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPUSB[31:28];
    } ULPLowPowerWeights2 @ 0x148;
    reg {
        name="ULPLowPowerWeights3";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPDSPA[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPDBG[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPAUDREC[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPAUDPB[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPAUDADC[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPMSPI2[31:28];
    } ULPLowPowerWeights3 @ 0x14c;
    reg {
        name="ULPLowPowerWeights4";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPI2S0[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPI2S1[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPPDM0[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPPDM1[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPPDM2[27:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPPDM3[31:28];
    } ULPLowPowerWeights4 @ 0x150;
    reg {
        name="ULPLowPowerWeights5";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPDISPPHY[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTULPUSBPHY[7:4];
    } ULPLowPowerWeights5 @ 0x154;
    reg {
        name="LPLowPowerWeights0";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPMCU[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPDSP0[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPDSP1[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPIOS[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPUART0[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPUART1[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPUART2[27:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPUART3[31:28];
    } LPLowPowerWeights0 @ 0x158;
    reg {
        name="LPLowPowerWeights1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPIOM0[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPIOM1[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPIOM2[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPIOM3[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPIOM4[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPIOM5[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPIOM6[27:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPIOM7[31:28];
    } LPLowPowerWeights1 @ 0x15c;
    reg {
        name="LPLowPowerWeights2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPADC[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPMSPI0[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPMSPI1[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPGFX[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPDISP[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPCRYPTO[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPSDIO[27:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPUSB[31:28];
    } LPLowPowerWeights2 @ 0x160;
    reg {
        name="LPLowPowerWeights3";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPDSPA[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPDBG[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPAUDREC[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPAUDPB[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPAUDADC[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPMSPI2[31:28];
    } LPLowPowerWeights3 @ 0x164;
    reg {
        name="LPLowPowerWeights4";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPI2S0[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPI2S1[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPPDM0[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPPDM1[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPPDM2[27:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPPDM3[31:28];
    } LPLowPowerWeights4 @ 0x168;
    reg {
        name="LPLowPowerWeights5";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPDISPPHY[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTLPUSBPHY[7:4];
    } LPLowPowerWeights5 @ 0x16c;
    reg {
        name="HPLowPowerWeights0";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPMCU[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPDSP0[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPDSP1[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPIOS[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPUART0[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPUART1[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPUART2[27:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPUART3[31:28];
    } HPLowPowerWeights0 @ 0x170;
    reg {
        name="HPLowPowerWeights1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPIOM0[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPIOM1[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPIOM2[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPIOM3[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPIOM4[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPIOM5[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPIOM6[27:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPIOM7[31:28];
    } HPLowPowerWeights1 @ 0x174;
    reg {
        name="HPLowPowerWeights2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPADC[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPMSPI0[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPMSPI1[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPGFX[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPDISP[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPCRYPTO[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPSDIO[27:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPUSB[31:28];
    } HPLowPowerWeights2 @ 0x178;
    reg {
        name="HPLowPowerWeights3";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPDSPA[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPDBG[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPAUDREC[11:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPAUDPB[15:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPAUDADC[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPMSPI2[31:28];
    } HPLowPowerWeights3 @ 0x17c;
    reg {
        name="HPLowPowerWeights4";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPI2S0[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPI2S1[7:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPPDM0[19:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPPDM1[23:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPPDM2[27:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPPDM3[31:28];
    } HPLowPowerWeights4 @ 0x180;
    reg {
        name="HPLowPowerWeights5";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPDISPPHY[3:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTHPUSBPHY[7:4];
    } HPLowPowerWeights5 @ 0x184;
    reg {
        name="SleepLowPowerWeights";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WTDSMCU[3:0];
    } SleepLowPowerWeights @ 0x188;
    reg {
        name="VoltageRegulatorsDemotionThreshold";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } VRDEMOTIONTHR[31:0];
    } VoltageRegulatorsDemotionThreshold @ 0x18c;
    reg {
        name="SRAMControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SRAMCLKGATE[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SRAMMASTERCLKGATE[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SRAMLIGHTSLEEP[19:8];
    } SRAMControl @ 0x190;
    reg {
        name="ADCPowerStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } ADCPWD[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } BGTPWD[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } VPTATPWD[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } VBATPWD[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } REFKEEPPWD[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } REFBUFPWD[5:5];
    } ADCPowerStatus @ 0x194;
    reg {
        name="AudioADCPowerStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } AUDADCPWD[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } AUDBGTPWD[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } AUDVPTATPWD[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } AUDVBATPWD[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } AUDREFKEEPPWD[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } AUDREFBUFPWD[5:5];
    } AudioADCPowerStatus @ 0x198;
    reg {
        name="EnergyMonitorControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=8'b11111111;
            } FREEZE[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLEAR[15:8];
    } EnergyMonitorControl @ 0x200;
    reg {
        name="EnergyMonitorModeSelect0";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONSEL0[7:0];
    } EnergyMonitorModeSelect0 @ 0x204;
    reg {
        name="EnergyMonitorModeSelect1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONSEL1[7:0];
    } EnergyMonitorModeSelect1 @ 0x208;
    reg {
        name="EnergyMonitorModeSelect2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONSEL2[7:0];
    } EnergyMonitorModeSelect2 @ 0x20c;
    reg {
        name="EnergyMonitorModeSelect3";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONSEL3[7:0];
    } EnergyMonitorModeSelect3 @ 0x210;
    reg {
        name="EnergyMonitorModeSelect4";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONSEL4[7:0];
    } EnergyMonitorModeSelect4 @ 0x214;
    reg {
        name="EnergyMonitorModeSelect5";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONSEL5[7:0];
    } EnergyMonitorModeSelect5 @ 0x218;
    reg {
        name="EnergyMonitorModeSelect6";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONSEL6[7:0];
    } EnergyMonitorModeSelect6 @ 0x21c;
    reg {
        name="EnergyMonitorModeSelect7";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONSEL7[7:0];
    } EnergyMonitorModeSelect7 @ 0x220;
    reg {
        name="EnergyMonitorCount0";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONCOUNT0[31:0];
    } EnergyMonitorCount0 @ 0x228;
    reg {
        name="EnergyMonitorCount1";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONCOUNT1[31:0];
    } EnergyMonitorCount1 @ 0x22c;
    reg {
        name="EnergyMonitorCount2";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONCOUNT2[31:0];
    } EnergyMonitorCount2 @ 0x230;
    reg {
        name="EnergyMonitorCount3";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONCOUNT3[31:0];
    } EnergyMonitorCount3 @ 0x234;
    reg {
        name="EnergyMonitorCount4";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONCOUNT4[31:0];
    } EnergyMonitorCount4 @ 0x238;
    reg {
        name="EnergyMonitorCount5";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONCOUNT5[31:0];
    } EnergyMonitorCount5 @ 0x23c;
    reg {
        name="EnergyMonitorCount6";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONCOUNT6[31:0];
    } EnergyMonitorCount6 @ 0x240;
    reg {
        name="EnergyMonitorCount7";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONCOUNT7[31:0];
    } EnergyMonitorCount7 @ 0x244;
    reg {
        name="EnergyMonitorStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONOVERFLOW0[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONOVERFLOW1[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONOVERFLOW2[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONOVERFLOW3[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONOVERFLOW4[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONOVERFLOW5[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONOVERFLOW6[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EMONOVERFLOW7[7:7];
    } EnergyMonitorStatus @ 0x24c;
} Registers_addrmap;


};