addrmap ArmPerformanceMonitoringUnit {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="MainID_MIDR";
        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];
    } MainID_MIDR @ 0xd00;
    reg {
        name="CacheType_CTR";
        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];
    } CacheType_CTR @ 0xd04;
    reg {
        name="TCMType_TCMTR";
        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];
    } TCMType_TCMTR @ 0xd08;
    reg {
        name="TLBType_TLBTR";
        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];
    } TLBType_TLBTR @ 0xd0c;
    reg {
        name="MPUType_MPUIR";
        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];
    } MPUType_MPUIR @ 0xd10;
    reg {
        name="MultiprocessorAffinity_MPIDR";
        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];
    } MultiprocessorAffinity_MPIDR @ 0xd14;
    reg {
        name="RevisionID_REVIDR";
        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];
    } RevisionID_REVIDR @ 0xd18;
    reg {
        name="MainIDAlias";
        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];
    } MainIDAlias @ 0xd1c;
    reg {
        name="ProcessorFeature0_ID_PFR0";
        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];
    } ProcessorFeature0_ID_PFR0 @ 0xd20;
    reg {
        name="ProcessorFeature1_ID_PFR1";
        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];
    } ProcessorFeature1_ID_PFR1 @ 0xd24;
    reg {
        name="DebugFeature0_ID_DFR0";
        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];
    } DebugFeature0_ID_DFR0 @ 0xd28;
    reg {
        name="AuxiliaryFeature0_ID_AFR0";
        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];
    } AuxiliaryFeature0_ID_AFR0 @ 0xd2c;
    reg {
        name="MemoryModelFeature0_ID_MMFR0";
        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];
    } MemoryModelFeature0_ID_MMFR0 @ 0xd30;
    reg {
        name="MemoryModelFeature1_ID_MMFR1";
        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];
    } MemoryModelFeature1_ID_MMFR1 @ 0xd34;
    reg {
        name="MemoryModelFeature2_ID_MMFR2";
        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];
    } MemoryModelFeature2_ID_MMFR2 @ 0xd38;
    reg {
        name="MemoryModelFeature3_ID_MMFR3";
        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];
    } MemoryModelFeature3_ID_MMFR3 @ 0xd3c;
    reg {
        name="InstructionSetAttribute0_ID_ISAR0";
        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];
    } InstructionSetAttribute0_ID_ISAR0 @ 0xd40;
    reg {
        name="InstructionSetAttribute1_ID_ISAR1";
        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];
    } InstructionSetAttribute1_ID_ISAR1 @ 0xd44;
    reg {
        name="InstructionSetAttribute2_ID_ISAR2";
        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];
    } InstructionSetAttribute2_ID_ISAR2 @ 0xd48;
    reg {
        name="InstructionSetAttribute3_ID_ISAR3";
        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];
    } InstructionSetAttribute3_ID_ISAR3 @ 0xd4c;
    reg {
        name="InstructionSetAttribute4_ID_ISAR4";
        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];
    } InstructionSetAttribute4_ID_ISAR4 @ 0xd50;
    reg {
        name="InstructionSetAttribute5_ID_ISAR5";
        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];
    } InstructionSetAttribute5_ID_ISAR5 @ 0xd54;
} ProcessorIdRegisters_addrmap;
addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="EventCount0";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } EventCount0 [31]@ 0x0 += 4;
    reg {
        name="CycleCount";
        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];
    } CycleCount @ 0x7c;
    reg {
        name="EventTypeSelect0";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } EventTypeSelect0 [31]@ 0x400 += 4;
    reg {
        name="CountEnableSet";
        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];
    } CountEnableSet @ 0xc00;
    reg {
        name="CountEnableClear";
        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];
    } CountEnableClear @ 0xc20;
    reg {
        name="InterruptEnableSet";
        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];
    } InterruptEnableSet @ 0xc40;
    reg {
        name="InterruptEnableClear";
        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];
    } InterruptEnableClear @ 0xc60;
    reg {
        name="OverflowFlagStatus";
        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];
    } OverflowFlagStatus @ 0xc80;
    reg {
        name="SoftwareIncrement";
        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];
    } SoftwareIncrement @ 0xca0;
    reg {
        name="OverflowFlagStatusSet";
        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];
    } OverflowFlagStatusSet @ 0xcc0;
    reg {
        name="Configuration";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Number_of_event_counters_N[7:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Counter_size_SIZE[13:8];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Cycle_counter_implemented_CC[14:14];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Cycle_counter_clock_divider_implemented_CCD[15:15];
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } Export_supported_EX[16:16];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } User_mode_EnableRegister_implemented_UEN[19:19];
    } Configuration @ 0xe00;
    reg {
        name="Control";
        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];
    } Control @ 0xe04;
    reg {
        name="UserEnable";
        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];
    } UserEnable @ 0xe08;
    reg {
        name="CommonEventIdentification0";
        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];
    } CommonEventIdentification0 @ 0xe20;
    reg {
        name="CommonEventIdentification1";
        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];
    } CommonEventIdentification1 @ 0xe24;
    reg {
        name="ClaimTagSet";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } No_name_1[7:0];
    } ClaimTagSet @ 0xfa0;
    reg {
        name="ClaimTagClear";
        regwidth=0x20;
            field {
                sw = rw;
                onwrite = woclr;
            } No_name_2[7:0];
    } ClaimTagClear @ 0xfa4;
    reg {
        name="LockAccess";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } No_name_3[31:0];
    } LockAccess @ 0xfb0;
    reg {
        name="LockStatus";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Software_Lock_implemented_SLI[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Software_Lock_status_SLK[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Not_32_bit_nTT[2:2];
    } LockStatus @ 0xfb4;
    reg {
        name="AuthenticationStatus";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Non_secure_invasive_debug_enabled_NSE[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Non_secure_invasive_debug_features_implemented_NSI[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Non_secure_non_invasive_debug_enabled_NSNE[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Non_secure_non_invasive_debug_features_implemented_NSNI[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Secure_invasive_debug_enabled_SE[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Secure_invasive_debug_features_implemented_SI[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Secure_non_invasive_debug_enabled_SNE[6:6];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Secure_non_invasive_debug_features_implemented_SNI[7:7];
    } AuthenticationStatus @ 0xfb8;
    reg {
        name="DeviceConfiguration";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } No_name_4[31:0];
    } DeviceConfiguration @ 0xfc8;
    reg {
        name="DeviceType";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Main_class_C[3:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Sub_type_T[7:4];
    } DeviceType @ 0xfcc;
    reg {
        name="PeripheralIdentification4";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } PeripheralIdentification4 [8]@ 0xfd0 += 4;
    reg {
        name="ComponentIdentification0";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } ComponentIdentification0 [4]@ 0xff0 += 4;
} Registers_addrmap;


};