addrmap AmbiqApollo4_SystemTimer {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Configuration";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } CLKSEL[3:0];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } COMPARExEN[15:8];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } CLEAR[30:30];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                reset=1'b1;
            } FREEZE[31:31];
    } Configuration @ 0x0;
    reg {
        name="SystemTimerCount";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } STTMR[31:0];
    } SystemTimerCount @ 0x4;
    reg {
        name="CaptureControl0";
        regwidth=0x20;
            field {
                sw = rw;
                reset=7'b1111111;
            } STSELregisterIndex[6:0];
            field {
                sw = rw;
            } STPOLregisterIndex[8:8];
            field {
                sw = rw;
            } CAPTUREregisterIndex[9:9];
    } CaptureControl0 [4]@ 0x10 += 4;
    reg {
        name="Compare0";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } SCMPRregisterIndex[31:0];
    } Compare0 [8]@ 0x20 += 4;
    reg {
        name="Capture0";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } SCAPTregisterIndex[31:0];
    } Capture0 [4]@ 0x40 += 4;
    reg {
        name="SystemTimerNVRAM0";
        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];
    } SystemTimerNVRAM0 @ 0x50;
    reg {
        name="SystemTimerNVRAM1";
        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];
    } SystemTimerNVRAM1 @ 0x54;
    reg {
        name="SystemTimerNVRAM2";
        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];
    } SystemTimerNVRAM2 @ 0x58;
    reg {
        name="InterruptEnable";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change, Provider.";
                sw = rw;
            } COMPAREx[7:0];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } OVERFLOW[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Change, Provider.";
                sw = rw;
            } CAPTUREx[12:9];
    } InterruptEnable @ 0x100;
    reg {
        name="InterruptStatus";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } COMPAREx[7:0];
            field {
                sw = r;
            } OVERFLOW[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } CAPTUREx[12:9];
    } InterruptStatus @ 0x104;
    reg {
        name="InterruptClear";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } COMPAREx[7:0];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = w;
                onwrite = woclr;
            } OVERFLOW[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } CAPTUREx[12:9];
    } InterruptClear @ 0x108;
    reg {
        name="InterruptSet";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } COMPAREx[7:0];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = w;
                onwrite = woset;
            } OVERFLOW[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } CAPTUREx[12:9];
    } InterruptSet @ 0x10c;
} Registers_addrmap;


};