Bump to firtool 1.58.0
This commit is contained in:
@@ -248,7 +248,6 @@ $(SFC_MFC_TARGETS) &: $(TAPEOUT_CLASSPATH_TARGETS) $(FIRRTL_FILE) $(FINAL_ANNO_F
|
||||
--format=fir \
|
||||
--dedup \
|
||||
--export-module-hierarchy \
|
||||
--emit-metadata \
|
||||
--verify-each=true \
|
||||
--warn-on-unprocessed-annotations \
|
||||
--disable-annotation-classless \
|
||||
@@ -257,7 +256,6 @@ $(SFC_MFC_TARGETS) &: $(TAPEOUT_CLASSPATH_TARGETS) $(FIRRTL_FILE) $(FINAL_ANNO_F
|
||||
--lowering-options=$(shell cat $(MFC_LOWERING_OPTIONS)) \
|
||||
--repl-seq-mem \
|
||||
--repl-seq-mem-file=$(MFC_SMEMS_CONF) \
|
||||
--repl-seq-mem-circuit=$(MODEL) \
|
||||
--annotation-file=$(SFC_ANNO_FILE) \
|
||||
--split-verilog \
|
||||
-o $(GEN_COLLATERAL_DIR) \
|
||||
|
||||
@@ -29,7 +29,7 @@ dependencies:
|
||||
- conda-gcc-specs
|
||||
- binutils
|
||||
|
||||
- firtool==1.30.0 # from ucb-bar channel - https://github.com/ucb-bar/firtool-feedstock
|
||||
- firtool==1.58.0 # from ucb-bar channel - https://github.com/ucb-bar/firtool-feedstock
|
||||
|
||||
# misc
|
||||
- autoconf
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# replaces a `include with the full include file
|
||||
# replaces a `include with the full include file.
|
||||
# recursively replaces `include's until none are left
|
||||
#
|
||||
# args
|
||||
# $1 - file to remove includes from
|
||||
@@ -12,6 +13,8 @@
|
||||
import sys
|
||||
import re
|
||||
import os
|
||||
import tempfile
|
||||
import shutil
|
||||
|
||||
inVlog = sys.argv[1]
|
||||
outVlog = sys.argv[2]
|
||||
@@ -24,9 +27,10 @@ if inVlog == outVlog:
|
||||
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:
|
||||
def process(inF, outF):
|
||||
# open file
|
||||
with open(inF, 'r') as inFile:
|
||||
with open(outF, '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)
|
||||
@@ -48,4 +52,27 @@ with open(inVlog, 'r') as inFile:
|
||||
else:
|
||||
outFile.write(line)
|
||||
|
||||
inF = inVlog
|
||||
|
||||
while True:
|
||||
# create a copy of the input
|
||||
fd, temp_path = tempfile.mkstemp()
|
||||
shutil.copy2(inF, temp_path)
|
||||
|
||||
with open(temp_path, 'r') as inFile:
|
||||
anyIncludes = False
|
||||
for line in inFile:
|
||||
match = re.match(r"^ *`include +\"(.*)\"", line)
|
||||
if match:
|
||||
anyIncludes = True
|
||||
break
|
||||
|
||||
if anyIncludes:
|
||||
process(temp_path, outVlog)
|
||||
inF = outVlog
|
||||
os.remove(temp_path)
|
||||
else:
|
||||
os.remove(temp_path)
|
||||
break
|
||||
|
||||
print("[INFO] Success. Writing output to: " + str(outVlog))
|
||||
|
||||
Reference in New Issue
Block a user