addrmap AmbiqApollo4_ADC {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Configuration";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } ADCEN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RPTEN[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LPMODE[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CKMODE[4:4];
            field {
                sw = rw;
            } DFIFORDEN[12:12];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TRIGSEL[18:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TRIGPOL[19:19];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RPTTRIGSEL[20:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLKSEL[25:24];
    } Configuration @ 0x0;
    reg {
        name="PowerStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWDSTAT[0:0];
    } PowerStatus @ 0x4;
    reg {
        name="SoftwareTrigger";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } SWT[7:0];
    } SoftwareTrigger @ 0x8;
    reg {
        name="Slot0Configuration";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } Slot0Configuration @ 0xc;
    reg {
        name="Slot1Configuration";
        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];
    } Slot1Configuration @ 0x10;
    reg {
        name="Slot2Configuration";
        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];
    } Slot2Configuration @ 0x14;
    reg {
        name="Slot3Configuration";
        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];
    } Slot3Configuration @ 0x18;
    reg {
        name="Slot4Configuration";
        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];
    } Slot4Configuration @ 0x1c;
    reg {
        name="Slot5Configuration";
        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];
    } Slot5Configuration @ 0x20;
    reg {
        name="Slot6Configuration";
        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];
    } Slot6Configuration @ 0x24;
    reg {
        name="Slot7Configuration";
        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];
    } Slot7Configuration @ 0x28;
    reg {
        name="WindowComparatorUpperLimits";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ULIM[19:0];
    } WindowComparatorUpperLimits @ 0x2c;
    reg {
        name="WindowComparatorLowerLimits";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LLIM[19:0];
    } WindowComparatorLowerLimits @ 0x30;
    reg {
        name="ScaleWindowComparatorLimits";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SCWLIMEN[0:0];
    } ScaleWindowComparatorLimits @ 0x34;
    reg {
        name="Fifo";
        desc = "This register has the following custom Renode callbacks: Write";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } DATA[19:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } COUNT[27:20];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } SLOTNUM[30:28];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RSVD[31:31];
    } Fifo @ 0x38;
    reg {
        name="FifoPopRead";
        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;
            } DATA[19:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } COUNT[27:20];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } SLOTNUMPR[30:28];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RSVDPR[31:31];
    } FifoPopRead @ 0x3c;
    reg {
        name="InternalTimerConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIMERMAX[9:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLKDIV[18:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIMEREN[31:31];
    } InternalTimerConfiguration @ 0x40;
    reg {
        name="ZeroCrossingComparatorConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ZXEN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ZXCHANSEL[4:4];
    } ZeroCrossingComparatorConfiguration @ 0x60;
    reg {
        name="ZeroCrossingComparatorLimits";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LZXC[11:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } UZXC[27:16];
    } ZeroCrossingComparatorLimits @ 0x64;
    reg {
        name="PGAGainConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PGACTRLEN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } UPDATEMODE[4:4];
    } PGAGainConfiguration @ 0x68;
    reg {
        name="PGAGainCodes";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LGA[6:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HGADELTA[14:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LGB[22:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } HGBDELTA[30:24];
    } PGAGainCodes @ 0x6c;
    reg {
        name="SaturationComparatorConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SATEN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SATCHANSEL[4:4];
    } SaturationComparatorConfiguration @ 0xa4;
    reg {
        name="SaturationComparatorLimits";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LSATC[11:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } USATC[27:16];
    } SaturationComparatorLimits @ 0xa8;
    reg {
        name="SaturationComparatorEventCounterLimits";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=12'b1;
            } SATCAMAX[11:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=12'b1;
            } SATCBMAX[27:16];
    } SaturationComparatorEventCounterLimits @ 0xac;
    reg {
        name="SaturationComparatorEventCounterClear";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SATCACLR[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SATCBCLR[1:1];
    } SaturationComparatorEventCounterClear @ 0xb0;
    reg {
        name="InterruptEnable";
        desc = "This register has the following custom Renode callbacks: Change";
        regwidth=0x20;
            field {
                sw = rw;
            } INTENx[11:0];
    } InterruptEnable @ 0x200;
    reg {
        name="InterruptStatus";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } INTSTATx[11:0];
    } InterruptStatus @ 0x204;
    reg {
        name="InterruptClear";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } INTCLRx[11:0];
    } InterruptClear @ 0x208;
    reg {
        name="InterruptSet";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } INTSETx[11:0];
    } InterruptSet @ 0x20c;
    reg {
        name="DMATriggerEnable";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DFIFO75[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DFIFOFULL[1:1];
    } DMATriggerEnable @ 0x240;
    reg {
        name="DMATriggerStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } D75STAT[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DFULLSTAT[1:1];
    } DMATriggerStatus @ 0x244;
    reg {
        name="DMAConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMAEN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMADIR[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMAPRI[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMADYNPRI[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMAMSK[17:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DPWROFF[18:18];
    } DMAConfiguration @ 0x280;
    reg {
        name="DMATotalTransferCount";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TOTCOUNT[17:2];
    } DMATotalTransferCount @ 0x288;
    reg {
        name="DMATargetAddress";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LTARGADDR[27:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=4'b1;
            } UTARGADDR[31:28];
    } DMATargetAddress @ 0x28c;
    reg {
        name="DMAStatus";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMATIP[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMACPL[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DMAERR[2:2];
    } DMAStatus @ 0x290;
} Registers_addrmap;


};