se.py revision 2715
16019Shines@cs.fsu.edu# Simple test script
212299Sandreas.sandberg@arm.com#
37097Sgblack@eecs.umich.edu# Alpha: "m5 test.py"
47097Sgblack@eecs.umich.edu# MIPS: "m5 test.py -a Mips -c hello_mips"
57097Sgblack@eecs.umich.edu
67097Sgblack@eecs.umich.eduimport os, optparse, sys
77097Sgblack@eecs.umich.eduimport m5
87097Sgblack@eecs.umich.edufrom m5.objects import *
97097Sgblack@eecs.umich.edu
107097Sgblack@eecs.umich.edu# parse command-line arguments
117097Sgblack@eecs.umich.eduparser = optparse.OptionParser(option_list=m5.standardOptions)
127097Sgblack@eecs.umich.edu
137097Sgblack@eecs.umich.eduparser.add_option("-c", "--cmd", default="hello")
146019Shines@cs.fsu.eduparser.add_option("-t", "--timing", action="store_true")
156019Shines@cs.fsu.edu
166019Shines@cs.fsu.edu(options, args) = parser.parse_args()
176019Shines@cs.fsu.edu
186019Shines@cs.fsu.eduif args:
196019Shines@cs.fsu.edu    print "Error: script doesn't take any positional arguments"
206019Shines@cs.fsu.edu    sys.exit(1)
216019Shines@cs.fsu.edu
226019Shines@cs.fsu.edu# build configuration
236019Shines@cs.fsu.eduthis_dir = os.path.dirname(__file__)
246019Shines@cs.fsu.edu
256019Shines@cs.fsu.eduprocess = LiveProcess()
266019Shines@cs.fsu.eduprocess.executable = os.path.join(this_dir, options.cmd)
276019Shines@cs.fsu.eduprocess.cmd = options.cmd
286019Shines@cs.fsu.edu
296019Shines@cs.fsu.edumagicbus = Bus()
306019Shines@cs.fsu.edumem = PhysicalMemory()
316019Shines@cs.fsu.edu
326019Shines@cs.fsu.eduif options.timing:
336019Shines@cs.fsu.edu    cpu = TimingSimpleCPU()
346019Shines@cs.fsu.eduelse:
356019Shines@cs.fsu.edu    cpu = AtomicSimpleCPU()
366019Shines@cs.fsu.educpu.workload = process
376019Shines@cs.fsu.educpu.mem = magicbus
386019Shines@cs.fsu.edu
396019Shines@cs.fsu.edusystem = System(physmem = mem, cpu = cpu)
406019Shines@cs.fsu.edusystem.c1 =  Connector(side_a = mem, side_b = magicbus)
416019Shines@cs.fsu.eduroot = Root(system = system)
426019Shines@cs.fsu.edu
436019Shines@cs.fsu.edu# instantiate configuration
446019Shines@cs.fsu.edum5.instantiate(root)
456019Shines@cs.fsu.edu
467720Sgblack@eecs.umich.edu# simulate until program terminates
476251Sgblack@eecs.umich.eduexit_event = m5.simulate()
4812334Sgabeblack@google.com
496214Snate@binkert.orgprint 'Exiting @', m5.curTick(), 'because', exit_event.getCause()
509023Sgblack@eecs.umich.edu
516019Shines@cs.fsu.edu