Skip to content
Snippets Groups Projects
defines_compile.py 2.15 KiB
#!/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)