#!/usr/bin/env python3 #------------------------------------------------------------------------------------ # Verilog Filelist compilation script # A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. # # Contributors # # David Mapstone (d.a.mapstone@soton.ac.uk) # Copyright (c) 2023, SoC Labs (www.soclabs.org) #------------------------------------------------------------------------------------ import argparse import os # Files with these extensions are included in compiled filelists verilog_extensions = (".v", ".sv", ".vh") # Exclude paths including these strings filelist_exclusions = ["cortex","pl230"] filelist_header = """//----------------------------------------------------------------------------- // AUTOGENERATED: Compiled Verilog Defines List // A joint work commissioned on behalf of SoC Labs, under Arm Academic Access license. // // Contributors // // David Mapstone (d.a.mapstone@soton.ac.uk) // // Copyright 2021-3, SoC Labs (www.soclabs.org) //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // Abstract : Verilog Defines file //----------------------------------------------------------------------------- """ def defines_compile(args): temp_str = "" if len(args.defines) > 0: for define in args.defines: temp_str += f"`define {define}\n" return temp_str def defines_list_compile(args): output_defineslist = args.output print("Compiling Defines") # Compile string defines_str = filelist_header defines_str += defines_compile(args) # Write out output file f_outlist = open(output_defineslist, "w") f_outlist.write(defines_str) f_outlist.close() if __name__ == "__main__": # Capture Arguments from Command Line parser = argparse.ArgumentParser(description='Compiles Verilog Defines List') parser.add_argument("-o", "--output", type=str, help="Output Filelist location") parser.add_argument('-d', '--defines', nargs='+', default=[], help="List of defines to put into file") args = parser.parse_args() defines_list_compile(args)