Bump to firtool 1.58.0

This commit is contained in:
abejgonzalez
2023-11-02 17:49:18 -07:00
parent 42eb570fd8
commit 078de512ab
3 changed files with 49 additions and 24 deletions

View File

@@ -248,7 +248,6 @@ $(SFC_MFC_TARGETS) &: $(TAPEOUT_CLASSPATH_TARGETS) $(FIRRTL_FILE) $(FINAL_ANNO_F
--format=fir \ --format=fir \
--dedup \ --dedup \
--export-module-hierarchy \ --export-module-hierarchy \
--emit-metadata \
--verify-each=true \ --verify-each=true \
--warn-on-unprocessed-annotations \ --warn-on-unprocessed-annotations \
--disable-annotation-classless \ --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)) \ --lowering-options=$(shell cat $(MFC_LOWERING_OPTIONS)) \
--repl-seq-mem \ --repl-seq-mem \
--repl-seq-mem-file=$(MFC_SMEMS_CONF) \ --repl-seq-mem-file=$(MFC_SMEMS_CONF) \
--repl-seq-mem-circuit=$(MODEL) \
--annotation-file=$(SFC_ANNO_FILE) \ --annotation-file=$(SFC_ANNO_FILE) \
--split-verilog \ --split-verilog \
-o $(GEN_COLLATERAL_DIR) \ -o $(GEN_COLLATERAL_DIR) \

View File

@@ -29,7 +29,7 @@ dependencies:
- conda-gcc-specs - conda-gcc-specs
- binutils - 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 # misc
- autoconf - autoconf

View File

@@ -1,6 +1,7 @@
#!/usr/bin/env python #!/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 # args
# $1 - file to remove includes from # $1 - file to remove includes from
@@ -12,6 +13,8 @@
import sys import sys
import re import re
import os import os
import tempfile
import shutil
inVlog = sys.argv[1] inVlog = sys.argv[1]
outVlog = sys.argv[2] outVlog = sys.argv[2]
@@ -24,28 +27,52 @@ if inVlog == outVlog:
incDirs = sys.argv[3:] incDirs = sys.argv[3:]
print("[INFO] Searching following dirs for includes: " + str(incDirs)) print("[INFO] Searching following dirs for includes: " + str(incDirs))
# open file def process(inF, outF):
with open(inVlog, 'r') as inFile: # open file
with open(outVlog, 'w') as outFile: with open(inF, 'r') as inFile:
# for each include found, search through all dirs and replace if found, error if not with open(outF, 'w') as outFile:
for num, line in enumerate(inFile, 1): # 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)
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) match = re.match(r"^ *`include +\"(.*)\"", line)
if match: if match:
# search for include and replace anyIncludes = True
found = False break
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 anyIncludes:
if not found: process(temp_path, outVlog)
sys.exit("[ERROR] Couldn't replace include \"" + str(match.group(1)) + "\" found on line " + str(num)) inF = outVlog
else: os.remove(temp_path)
outFile.write(line) else:
os.remove(temp_path)
break
print("[INFO] Success. Writing output to: " + str(outVlog)) print("[INFO] Success. Writing output to: " + str(outVlog))