NVDLA Integration + Cleanup Ariane Preprocessing (#505)
* [nvdla] initial nvdla integration * [nvdla] add firesim configs * [nvdla] re-add accidentally deleted line * [nvdla] works on master with small * [nvdla] use master branch of nvdla * [nvdla] remove extra sources * [nvdla] bump * [nvdla + ariane] bump and use insert-includes for pre-processing * [nvdla] add ci | remove target configs in FireChip | update naming * [nvdla] bump nvdla | fix ci run-tests error * [nvdla] re-enable PCWM-L error | fix/update makefile(s) * [nvdla] bump nvdla fragments in FireChip * [misc] bump tutorial patches * [chipyard] remove extra import * [nvdla] bump nvdla for pbus [ci skip] * [nvdla] update firemarshal and add nvdla workload * [nvdla] bump nvdla-workload * [nvdla] bump hw * [docs] add basic documentation * [docs] adjustments to documentation * [misc] update docs | bump firesim with recipe * [misc] disable error on warnings in verilator | bump number width to match RC * [docs] fix doc build error * [verilator] move no fail on warning to be global * [ci skip] [nvdla] bump submodule urls * [misc] move firesim specific configs into nvdla dir [ci skip] * [nvdla] fix run-tests in ci * update RC configs | bump marshal | bump nvdla-workload * [nvdla] bump nvdla-workload [ci skip] * add topology mixin to nvdla configs * update tutorial patches
This commit is contained in:
51
scripts/insert-includes.py
Executable file
51
scripts/insert-includes.py
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# replaces a `include with the full include file
|
||||
#
|
||||
# args
|
||||
# $1 - file to remove includes from
|
||||
# $2 - file to write output to
|
||||
# $3 - list of directories to search for includes in (note: NON-RECURSIVE must specify all dirs)
|
||||
# includes are found relative to this path
|
||||
# this is equivalent to something like +incdir+
|
||||
|
||||
import sys
|
||||
import re
|
||||
import os
|
||||
|
||||
inVlog = sys.argv[1]
|
||||
outVlog = sys.argv[2]
|
||||
print("[INFO] Replaces includes from: " + str(inVlog))
|
||||
|
||||
if inVlog == outVlog:
|
||||
sys.exit("[ERROR] The input and output file cannot be the same.")
|
||||
|
||||
# add directories to search list
|
||||
incDirs = sys.argv[3:]
|
||||
print("[INFO] Searching following dirs for includes: " + str(incDirs))
|
||||
|
||||
# open file
|
||||
with open(inVlog, 'r') as inFile:
|
||||
with open(outVlog, 'w') as outFile:
|
||||
# for each include found, search through all dirs and replace if found, error if not
|
||||
for num, line in enumerate(inFile, 1):
|
||||
match = re.match(r"^ *`include +\"(.*)\"", line)
|
||||
if match:
|
||||
# search for include and replace
|
||||
found = False
|
||||
for d in incDirs:
|
||||
potentialIncFileName = d + "/" + match.group(1)
|
||||
if os.path.exists(potentialIncFileName):
|
||||
found = True
|
||||
with open(potentialIncFileName, 'r') as incFile:
|
||||
for iline in incFile:
|
||||
outFile.write(iline)
|
||||
break
|
||||
|
||||
# must find something to include with
|
||||
if not found:
|
||||
sys.exit("[ERROR] Couldn't replace include \"" + str(match.group(1)) + "\" found on line " + str(num))
|
||||
else:
|
||||
outFile.write(line)
|
||||
|
||||
print("[INFO] Success. Writing output to: " + str(outVlog))
|
||||
Reference in New Issue
Block a user