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");
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;