test_sys.vm = KvmVM()
if options.caches or options.l2cache:
- test_sys.iocache = IOCache(clock = '1GHz',
- addr_ranges = test_sys.mem_ranges)
+ # By default the IOCache runs at the system clock
+ test_sys.iocache = IOCache(addr_ranges = test_sys.mem_ranges)
test_sys.iocache.cpu_side = test_sys.iobus.master
test_sys.iocache.mem_side = test_sys.membus.slave
else:
def addTwoLevelCacheHierarchy(self, ic, dc, l2c, iwc = None, dwc = None):
self.addPrivateSplitL1Caches(ic, dc, iwc, dwc)
- # Override the default bus clock of 1 GHz and uses the CPU
- # clock for the L1-to-L2 bus, and also set a width of 32 bytes
- # (256-bits), which is four times that of the default bus.
- self.toL2Bus = CoherentBus(clock = Parent.clock, width = 32)
+ # Set a width of 32 bytes (256-bits), which is four times that
+ # of the default bus. The clock of the CPU is inherited by
+ # default.
+ self.toL2Bus = CoherentBus(width = 32)
self.connectCachedPorts(self.toL2Bus)
self.l2cache = l2c
self.toL2Bus.master = self.l2cache.cpu_side
ChanCnt = Param.UInt8(4, "Number of DMA channels that exist on device")
XferCap = Param.MemorySize('4kB', "Number of bits of transfer size that are supported")
- # Override the default clock
- clock = '500MHz'
latBeforeBegin = Param.Latency('20ns', "Latency after a DMA command is seen before it's proccessed")
latAfterCompletion = Param.Latency('20ns', "Latency after a DMA command is complete before it's reported as such")
gic = Param.BaseGic(Parent.any, "Gic to use for interrupting")
int_num_timer = Param.UInt32("Interrrupt number used per-cpu to GIC")
int_num_watchdog = Param.UInt32("Interrupt number for per-cpu watchdog to GIC")
- # Override the default clock
- clock = '1GHz'
class PL031(AmbaIntDevice):
type = 'PL031'
random_seed = Param.Int(1234, "random seed used by the simulation");
randomization = Param.Bool(False,
"insert random delays on message enqueue times");
- clock = '1GHz'
block_size_bytes = Param.UInt32(64,
"default cache block size; must be a power of two");
mem_size = Param.MemorySize("total memory size of the system");
def init_system(self, system):
BaseSystem.init_system(self, system)
- #create the iocache
- system.iocache = IOCache(clock='1GHz', addr_ranges=system.mem_ranges)
+ # create the iocache, which by default runs at the system clock
+ system.iocache = IOCache(addr_ranges=system.mem_ranges)
system.iocache.cpu_side = system.iobus.master
system.iocache.mem_side = system.membus.slave
system = System(cpu = cpus, funcmem = SimpleMemory(in_addr_map = False),
funcbus = NoncoherentBus(),
physmem = SimpleMemory(),
- membus = CoherentBus(clock="1GHz", width=16))
+ membus = CoherentBus(width=16))
# l2cache & bus
system.toL2Bus = CoherentBus(clock="2GHz", width=16)
# system simulated
system = System(cpu = cpu, physmem = DDR3_1600_x64(),
- membus = NoncoherentBus(clock="1GHz", width = 16))
+ membus = NoncoherentBus(width = 16))
# add a communication monitor
system.monitor = CommMonitor()
# system simulated
system = System(cpu = cpu, physmem = SimpleMemory(),
- membus = NoncoherentBus(clock="1GHz", width = 16))
+ membus = NoncoherentBus(width = 16))
# add a communication monitor, and also trace all the packets
system.monitor = CommMonitor(trace_file = "monitor.ptrc.gz")