From 801ff63e243fac6811f951f6be6b50f79eeee487 Mon Sep 17 00:00:00 2001 From: Kevin Kim Date: Sun, 27 Aug 2023 14:00:10 -0700 Subject: [PATCH] started wrapper generation script --- synthDC/scripts/wrapperGen.py | 60 +++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 synthDC/scripts/wrapperGen.py diff --git a/synthDC/scripts/wrapperGen.py b/synthDC/scripts/wrapperGen.py new file mode 100644 index 000000000..76ae24a33 --- /dev/null +++ b/synthDC/scripts/wrapperGen.py @@ -0,0 +1,60 @@ +""" +wrapperGen.py + +kekim@hmc.edu + +script that generates top-level wrappers for verilog modules to synthesize +""" + +import argparse +import os + +#create argument parser +parser = argparse.ArgumentParser() + +parser.add_argument("fin") + +args=parser.parse_args() + +fin = open(args.fin, "r") + +lines = fin.readlines() + +# keeps track of what line number the module header begins +lineModuleStart = 0 + +# keeps track of what line number the module header ends +lineModuleEnd = 0 + +# keeps track of module name +moduleName = "" + +# string that will keep track of the running module header +buf = "`include \"config.vh\"\n`include \"parameter-defs.vh\"\nimport cvw::*;\n" + +# are we writing into the buffer +writeBuf=False + +index=0 + +# string copy logic +for l in lines: + if l.find("module") == 0: + lineModuleStart = index + moduleName = l.split()[1] + writeBuf = True + buf += f"module {moduleName}wrapper (\n" + continue + if (writeBuf): + buf += l + if l.find (");") == 0: + lineModuleEnd = index + break + index+=1 + +# post-processing buffer: add DUT and endmodule lines +buf += f"\t{moduleName} #(P) dut(.*);\nendmodule" + + + +print(buf) \ No newline at end of file