se.py revision 2710
14158Sgblack@eecs.umich.edu# Simple test script 24158Sgblack@eecs.umich.edu# 34158Sgblack@eecs.umich.edu# Alpha: "m5 test.py" 44158Sgblack@eecs.umich.edu# MIPS: "m5 test.py -a Mips -c hello_mips" 54158Sgblack@eecs.umich.edu 67087Snate@binkert.orgimport os, optparse, sys 77087Snate@binkert.orgimport m5 87087Snate@binkert.orgfrom m5.objects import * 97087Snate@binkert.org 107087Snate@binkert.org# parse command-line arguments 117087Snate@binkert.orgparser = optparse.OptionParser(option_list=m5.standardOptions) 127087Snate@binkert.org 137087Snate@binkert.orgparser.add_option("-c", "--cmd", default="hello") 144158Sgblack@eecs.umich.eduparser.add_option("-a", "--arch", choices=["Alpha", "Mips"], default="Alpha") 157087Snate@binkert.orgparser.add_option("-t", "--timing", action="store_true") 167087Snate@binkert.org 177087Snate@binkert.org(options, args) = parser.parse_args() 187087Snate@binkert.org 197087Snate@binkert.orgif args: 207087Snate@binkert.org print "Error: script doesn't take any positional arguments" 217087Snate@binkert.org sys.exit(1) 227087Snate@binkert.org 234158Sgblack@eecs.umich.edu# build configuration 247087Snate@binkert.orgthis_dir = os.path.dirname(__file__) 254158Sgblack@eecs.umich.edu 264158Sgblack@eecs.umich.eduprint "arch =", options.arch 274158Sgblack@eecs.umich.eduprocess_class = eval(options.arch + "LiveProcess") 284158Sgblack@eecs.umich.edu 294158Sgblack@eecs.umich.eduprocess = process_class() 304158Sgblack@eecs.umich.eduprocess.executable = os.path.join(this_dir, options.cmd) 314158Sgblack@eecs.umich.eduprocess.cmd = options.cmd 324158Sgblack@eecs.umich.edu 334158Sgblack@eecs.umich.edumagicbus = Bus() 344158Sgblack@eecs.umich.edumem = PhysicalMemory() 354158Sgblack@eecs.umich.edu 364158Sgblack@eecs.umich.eduif options.timing: 374158Sgblack@eecs.umich.edu cpu = TimingSimpleCPU() 384158Sgblack@eecs.umich.eduelse: 394158Sgblack@eecs.umich.edu cpu = AtomicSimpleCPU() 404158Sgblack@eecs.umich.educpu.workload = process 414158Sgblack@eecs.umich.educpu.mem = magicbus 424158Sgblack@eecs.umich.edu 434158Sgblack@eecs.umich.edusystem = System(physmem = mem, cpu = cpu) 444158Sgblack@eecs.umich.edusystem.c1 = Connector(side_a = mem, side_b = magicbus) 454158Sgblack@eecs.umich.eduroot = Root(system = system) 464158Sgblack@eecs.umich.edu 474158Sgblack@eecs.umich.edu# instantiate configuration 484158Sgblack@eecs.umich.edum5.instantiate(root) 494158Sgblack@eecs.umich.edu 504158Sgblack@eecs.umich.edu# simulate until program terminates 514158Sgblack@eecs.umich.eduexit_event = m5.simulate() 524544Sgblack@eecs.umich.edu 534158Sgblack@eecs.umich.eduprint 'Exiting @', m5.curTick(), 'because', exit_event.getCause() 544158Sgblack@eecs.umich.edu 554158Sgblack@eecs.umich.edu