blob: 7ae2d50d7f0abb3e200d8e8990028a2e0eac189d [file] [log] [blame] [edit]
#!/usr/bin/env python3
import argparse
# ============================================================================
def main():
# Parse args
parser = argparse.ArgumentParser(
description="Generates top-level verilog for scalable processing test"
)
parser.add_argument('--top-name', type=str, default=None)
parser.add_argument(
'--num-processing-units', type=int, default=1, required=True
)
parser.add_argument('--template', type=str, default="basys3_top.v")
args = parser.parse_args()
# Read template
with open(args.template, "r") as fp:
template = fp.readlines()
# Find a line with "NUM_PROCESSING_UNITS" and change it
verilog = []
for line in template:
line = line.strip()
if "NUM_PROCESSING_UNITS" in line:
verilog.append(
".NUM_PROCESSING_UNITS (%d)," % args.num_processing_units
)
elif args.top_name is not None and "module top" in line:
verilog.append("module %s" % args.top_name)
else:
verilog.append(line)
# Spit out the code
for line in verilog:
print(line)
# ============================================================================
if __name__ == '__main__':
main()