| #! /usr/bin/python | |
| #Iterate through a directory listing treating each individual verilog file as a single project and synthesize using VL2MV | |
| import os | |
| import subprocess | |
| import sys | |
| import odin_script_util as odin | |
| from os.path import abspath | |
| if len(sys.argv) is not 2: | |
| print "usage: " + sys.argv[0] + " <dir>" | |
| path = abspath(sys.argv[1]) + "/" | |
| os.system("mkdir -p \"" + path + "VL2MV_Blifs/\"") | |
| slog = open(path + "VL2MV_success.lst", "w") | |
| filelist = filter(odin.isVerilog, os.listdir(path)) | |
| for file in filelist: | |
| cmd = "vl2mv -o \"" + path + "VL2MV_Blifs/" + odin.trimDotV(file) + ".mv\" \"" + path + file + "\"" | |
| process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True) | |
| (out, err) = process.communicate() | |
| #Log our failures and successes | |
| if process.returncode != 0 : | |
| flog = open(path + "VL2MV_Blifs/" + odin.trimDotV(file) + ".log", "w") | |
| flog.write("Verilog File: " + file + "\n") | |
| flog.write("VL2MV Command: " + cmd + "\n") | |
| flog.write("VL2MV Output:\n" + out + "\n\n") | |
| flog.close() | |
| else: | |
| slog.write(file + "\n") |