Ejemplo n.º 1
0
def sim_start(simulator, wave_log, top_name, hex_name, tb_model_list, srclist, inclist):
	global check_list;
	cnt = 0;

	#Message
	message = "Check Instruction : ";
	for instlist in check_list:
		message = message + instlist + " ";
	print(message);
	
	#Sim Dir Make
	if(os.path.exists("sim") != True):
		subprocess.call("mkdir sim", shell=True);
	
	#Simulation Loop
	for line in check_list:
		#Start Time
		date = datetime.datetime.today();
		print("-[" + str(cnt) + "]Start : [" + line + "] : " + date.strftime("%Y-%m-%d %H:%M:%S"));

		#Generate TCL
		gen_tcl.generate_tcl(1, simulator, str(wave_log), top_name, tb_model_list, srclist, inclist, "sim/" + line + ".result\n", "sim_run.tcl");

		#Binary 2 Hex
		fr = open("./bin/" + line + ".bin", "rb");
		read_data = fr.read();
		result_hex = bin2hex.bin2hex(read_data);
		fw = open(hex_name, 'w');
		fw.write(result_hex);
		fr.close();
		fw.close();

		#Start Sim
		if(simulator == "modelsim"):
			if(wave_log == '1'):
				subprocess.call('vsim -c -voptargs="+acc" ' + top_name + " -do sim_run.tcl", shell=True);
			else:
				subprocess.call('vsim -c ' + top_name + " -do sim_run.tcl", shell=True);
		elif(simulator == "riviera"):
			subprocess.call("vsimsa -do sim_run.tcl", shell=True);
		else:
			print("Simulation Error");
			sys.exit();

		#End Time
		date = datetime.datetime.today();
		print("-[" + str(cnt) + "]Finish : [" + line + "] : " + date.strftime("%Y-%m-%d %H:%M:%S"));
		cnt = cnt + 1;

		#Tempfile Remove
		os.remove(hex_name);
		os.remove("sim_run.tcl");
Ejemplo n.º 2
0
def sim_start(wave_log, top_name, hex_name, tb_model_list, srclist, inclist):
	global check_list;
	cnt = 0;

	#Message
	message = "Check Instructions : ";
	for instlist in check_list:
		message = message + instlist + " ";
	print(message);
	
	#Sim Dir
	if(os.path.exists("sim") != True):
		subprocess.call("mkdir sim", shell=True);
	
	#Simulation Loop
	for line in check_list:
		#Start Time
		date = datetime.datetime.today();
		print("-[" + str(cnt) + "]Start : [" + line + "] : " + date.strftime("%Y-%m-%d %H:%M:%S"));

		#Make TCL File
		gen_tcl.generate_tcl(True, wave_log, tb_model_list, srclist, inclist, "sim/" + line + ".result\n", "sim_run.tcl");

		#Make Simulation HEX file
		fr = open("./bin/" + line + ".bin", "rb");
		read_data = fr.read();
		result_hex = bin2hex.bin2hex(read_data);
		fw = open(hex_name, 'w');
		fw.write(result_hex);
		fr.close();
		fw.close();

		#Start Simlation
		if(wave_log == True):
			subprocess.call('vsim -c -voptargs="+acc" ' + top_name + " -do sim_run.tcl", shell=True);
		else:
			subprocess.call('vsim -c ' + top_name + " -do sim_run.tcl", shell=True);

		#End Time
		date = datetime.datetime.today();
		print("-[" + str(cnt) + "]Finish : [" + line + "] : " + date.strftime("%Y-%m-%d %H:%M:%S"));
		cnt = cnt + 1;