se.py revision 2715
1# Simple test script
2#
3# Alpha: "m5 test.py"
4# MIPS: "m5 test.py -a Mips -c hello_mips"
5
6import os, optparse, sys
7import m5
8from m5.objects import *
9
10# parse command-line arguments
11parser = optparse.OptionParser(option_list=m5.standardOptions)
12
13parser.add_option("-c", "--cmd", default="hello")
14parser.add_option("-t", "--timing", action="store_true")
15
16(options, args) = parser.parse_args()
17
18if args:
19    print "Error: script doesn't take any positional arguments"
20    sys.exit(1)
21
22# build configuration
23this_dir = os.path.dirname(__file__)
24
25process = LiveProcess()
26process.executable = os.path.join(this_dir, options.cmd)
27process.cmd = options.cmd
28
29magicbus = Bus()
30mem = PhysicalMemory()
31
32if options.timing:
33    cpu = TimingSimpleCPU()
34else:
35    cpu = AtomicSimpleCPU()
36cpu.workload = process
37cpu.mem = magicbus
38
39system = System(physmem = mem, cpu = cpu)
40system.c1 =  Connector(side_a = mem, side_b = magicbus)
41root = Root(system = system)
42
43# instantiate configuration
44m5.instantiate(root)
45
46# simulate until program terminates
47exit_event = m5.simulate()
48
49print 'Exiting @', m5.curTick(), 'because', exit_event.getCause()
50
51