BaseCPU.py revision 1366
11689SN/Asimobj BaseCPU(SimObject):
27598Sminkyu.jeong@arm.com    type = 'BaseCPU'
37598Sminkyu.jeong@arm.com    abstract = True
47598Sminkyu.jeong@arm.com    icache = Param.BaseMem(NULL, "L1 instruction cache object")
57598Sminkyu.jeong@arm.com    dcache = Param.BaseMem(NULL, "L1 data cache object")
67598Sminkyu.jeong@arm.com
77598Sminkyu.jeong@arm.com    dtb = Param.AlphaDTB("Data TLB")
87598Sminkyu.jeong@arm.com    itb = Param.AlphaITB("Instruction TLB")
97598Sminkyu.jeong@arm.com    mem = Param.FunctionalMemory("memory")
107598Sminkyu.jeong@arm.com    system = Param.BaseSystem(Super, "system object")
117598Sminkyu.jeong@arm.com    workload = VectorParam.Process("processes to run")
127598Sminkyu.jeong@arm.com
137598Sminkyu.jeong@arm.com    max_insts_all_threads = Param.Counter(0,
142326SN/A        "terminate when all threads have reached this inst count")
151689SN/A    max_insts_any_thread = Param.Counter(0,
161689SN/A        "terminate when any thread reaches this inst count")
171689SN/A    max_loads_all_threads = Param.Counter(0,
181689SN/A        "terminate when all threads have reached this load count")
191689SN/A    max_loads_any_thread = Param.Counter(0,
201689SN/A        "terminate when any thread reaches this load count")
211689SN/A
221689SN/A    defer_registration = Param.Bool(false,
231689SN/A        "defer registration with system (for sampling)")
241689SN/A
251689SN/A    def check(self):
261689SN/A        has_workload = self._hasvalue('workload')
271689SN/A        has_dtb = self._hasvalue('dtb')
281689SN/A        has_itb = self._hasvalue('itb')
291689SN/A        has_mem = self._hasvalue('mem')
301689SN/A        has_system = self._hasvalue('system')
311689SN/A
321689SN/A        if has_workload:
331689SN/A            self.dtb.disable = True
341689SN/A            self.itb.disable = True
351689SN/A            self.mem.disable = True
361689SN/A            self.system.disable = True
371689SN/A
381689SN/A        if has_dtb or has_itb or has_mem or has_system:
392665Ssaidi@eecs.umich.edu            self.workload.disable = True
402665Ssaidi@eecs.umich.edu