diff --git a/bin/filelist_compile.py b/bin/filelist_compile.py index 0aa21c44680c1efdd63aa2e3474f69e890914c14..91b3b297e8bb8404d75e4c4965b11e78eb94b28c 100755 --- a/bin/filelist_compile.py +++ b/bin/filelist_compile.py @@ -16,7 +16,7 @@ import os verilog_extensions = (".v", ".sv", ".vh") # Exclude paths including these strings -filelist_exclusions = ["cortex","dma"] +filelist_exclusions = ["cortex","pl230"] filelist_header = """//----------------------------------------------------------------------------- // AUTOGENERATED: Compiled Filelist @@ -34,14 +34,17 @@ filelist_header = """//--------------------------------------------------------- """ -def env_var_substitute(path): +def env_var_substitute(path, tcl=False): # Interpret the path and remove brackets from path - sub_path = path.translate(str.maketrans('', '', '()')) + if tcl == False: + sub_path = path.translate(str.maketrans('', '', '()')) + else: + sub_path = path # Expand environment variables in Path sub_path = os.path.expandvars(sub_path) return sub_path -def read_list(filelist): +def read_list(filelist, args): # Create Filelist List Structure compiled_filelist = [] # Open Filelist and Read Lines @@ -64,24 +67,53 @@ def read_list(filelist): print(line_list[1]+" is in the exclusions list") else: print(line_list[1]) - compiled_filelist += read_list(env_var_substitute(line_list[1])) + compiled_filelist += read_list(env_var_substitute(line_list[1]), args) elif line_list[0] == "-y": # Append to filelist for file in os.listdir(env_var_substitute(line_list[1])): if file.endswith(verilog_extensions): - compiled_filelist.append(env_var_substitute(line_list[1])+"/"+str(file)) + # Append to filelist + if args.absolute == True: + if args.tcl == True: + compiled_filelist.append("read_verilog " + str(env_var_substitute(line_list[1], tcl=True)).replace("$","$env")+"/"+str(file)) + else: + compiled_filelist.append(env_var_substitute(line_list[1])+"/"+str(file)) + else: + if args.tcl == True: + compiled_filelist.append("read_verilog " + str(line_list[1])+"/"+str(file).replace("$","$env")) + else: + compiled_filelist.append(line_list[1]+"/"+str(file)) elif line_list[0].startswith("+incdir+"): # Append to filelist - for file in os.listdir(env_var_substitute(line_list[0].lstrip("+incdir+"))): - if file.endswith(verilog_extensions): - compiled_filelist.append(env_var_substitute(line_list[0].lstrip("+incdir+"))+"/"+str(file)) + if args.tcl == False: + for file in os.listdir(env_var_substitute(line_list[0].lstrip("+incdir+"))): + if file.endswith(verilog_extensions): + # Append to filelist + if args.absolute == True: + compiled_filelist.append(env_var_substitute(line_list[0].lstrip("+incdir+"))+"/"+str(file)) + else: + compiled_filelist.append(line_list[0].lstrip("+incdir+")+"/"+str(file)) + else: + if args.absolute == True: + compiled_filelist.append("set search_path [ concat $search_path " + str(env_var_substitute(line_list[0].lstrip("+incdir+"), tcl=True)).replace("$","$env") + " ]") + else: + compiled_filelist.append(str(line_list[0].lstrip("+incdir+")).replace("$","$env")+"/") # If file list a verilog file elif line_list[0].endswith(verilog_extensions): # Append to filelist - compiled_filelist.append(env_var_substitute(line_list[0])) + if args.absolute == True: + if args.tcl == True: + compiled_filelist.append("read_verilog " + str(env_var_substitute(line_list[0], tcl=True)).replace("$","$env")) + else: + compiled_filelist.append(env_var_substitute(line_list[0])) + else: + if args.tcl == True: + compiled_filelist.append("read_verilog " + str(line_list[0]).replace("$","$env")) + else: + compiled_filelist.append(line_list[0]) return compiled_filelist @@ -92,7 +124,7 @@ def filelist_compile(args): print("Compiling Filelist") print("------------------") # Read in filelist and add newlines to paths - filelist = read_list(input_filelist) + filelist = read_list(input_filelist, args) filelist = [x+"\n" for x in filelist] # Create string of all paths to write out filelist_str = filelist_header @@ -110,5 +142,7 @@ if __name__ == "__main__": parser.add_argument("-f", "--filelist", type=str, help="Input Filelist to Read") parser.add_argument("-o", "--output", type=str, help="Output Filelist location") parser.add_argument("-e", "--exclude", action='store_true', help="Exclude filists including these strings") + parser.add_argument("-t", "--tcl", action='store_true', help="Generate a TCL Script") + parser.add_argument("-a", "--absolute", action='store_true', help="Substitute environment Variables with Absolute Path") args = parser.parse_args() filelist_compile(args) \ No newline at end of file diff --git a/bin/htmlgen/makefile b/bin/htmlgen/makefile index 56c03b16f8b8f177a83e0461192f9d9fac905fb3..0ddd5aff809a7e73ab38e3896ab69d49ff992091 100644 --- a/bin/htmlgen/makefile +++ b/bin/htmlgen/makefile @@ -13,10 +13,10 @@ TOP_MODULE ?= nanosoc_chip # Filelist to give to v2html -FILELIST ?= $(SOCLABS_PROJECT_DIR)/flist/project/system.flist +FILELIST ?= $(SOCLABS_PROJECT_DIR)/flist/project/top.flist # Directory to store generated HTML -OUT_DIR ?= $(SOCLABS_PROJECT_DIR) +OUT_DIR ?= $(SOCLABS_PROJECT_DIR)/html # Name of generated filelist by python script OUTPUT_FILELIST := $(OUT_DIR)/filelist.flist @@ -26,5 +26,5 @@ gen_html: @mkdir -p $(OUT_DIR)/build @(cd $(OUT_DIR)/build; \ rm *.html; rm *.gif; \ - $(SOCLABS_SOCTOOLS_FLOW_DIR)/bin/filelist_compile.py -e -f $(FILELIST) -o $(OUTPUT_FILELIST) ; \ + $(SOCLABS_SOCTOOLS_FLOW_DIR)/bin/filelist_compile.py -ea -f $(FILELIST) -o $(OUTPUT_FILELIST) ; \ $(SOCLABS_SOCTOOLS_FLOW_DIR)/bin/htmlgen/v2html/v2html -f $(OUTPUT_FILELIST) -ht $(TOP_MODULE) ; )