forked from Github_Repos/cvw
automate synth
This commit is contained in:
parent
ce56e2dd73
commit
975005dbfa
@ -24,11 +24,19 @@ export SAIFPOWER ?= 0
|
|||||||
CONFIGDIR ?= ${WALLY}/pipelined/config
|
CONFIGDIR ?= ${WALLY}/pipelined/config
|
||||||
CONFIGFILES ?= $(shell find $(CONFIGDIR) -name rv*_*)
|
CONFIGFILES ?= $(shell find $(CONFIGDIR) -name rv*_*)
|
||||||
CONFIGFILESTRIM = $(notdir $(CONFIGFILES))
|
CONFIGFILESTRIM = $(notdir $(CONFIGFILES))
|
||||||
FREQS = 25 50 100 150 200 250 300 350 400
|
# FREQS = 25 50 100 150 200 250 300 350 400
|
||||||
k = 3 6
|
k = 3 6
|
||||||
|
|
||||||
|
ifeq ($(TECH), sky130)
|
||||||
|
FREQS = 25 50 100 150 200 250 300 350 400
|
||||||
|
else
|
||||||
|
FREQS = 500 550 600 650 700 750 800 850 900 950 1000
|
||||||
|
endif
|
||||||
|
|
||||||
print:
|
print:
|
||||||
echo $(k)
|
@echo $(FREQS)
|
||||||
echo $(CONFIGFILESTRIM)
|
@echo $(CONFIGFILESTRIM)
|
||||||
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@echo "Basic synthesis procedure for Wally:"
|
@echo "Basic synthesis procedure for Wally:"
|
||||||
@ -41,14 +49,14 @@ rv%.log: rv%
|
|||||||
echo $<
|
echo $<
|
||||||
|
|
||||||
|
|
||||||
DIRS = rv32e rv32gc rv64ic rv32ic rv64gc
|
DIRS = rv64gc rv32e rv32gc rv64ic rv32ic
|
||||||
# DELDIRS = rv32e rv32gc rv64ic rv64gc rv32ic
|
# DELDIRS = rv32e rv32gc rv64ic rv64gc rv32ic
|
||||||
# CONFIGSUBDIRS = _FPUoff _noMulDiv _noVirtMem _PMP0 _PMP16 _orig
|
# CONFIGSUBDIRS = _FPUoff _noMulDiv _noVirtMem _PMP0 _PMP16 _orig
|
||||||
bpred:
|
# bpred:
|
||||||
@$(foreach kval, $(k), rm -rf $(CONFIGDIR)/rv64gc_bpred_$(kval);)
|
# @$(foreach kval, $(k), rm -rf $(CONFIGDIR)/rv64gc_bpred_$(kval);)
|
||||||
@$(foreach kval, $(k), cp -r $(CONFIGDIR)/rv64gc $(CONFIGDIR)/rv64gc_bpred_$(kval);)
|
# @$(foreach kval, $(k), cp -r $(CONFIGDIR)/rv64gc $(CONFIGDIR)/rv64gc_bpred_$(kval);)
|
||||||
@$(foreach kval, $(k), sed -i 's/BPRED_SIZE.*/BPRED_SIZE $(kval)/g' $(CONFIGDIR)/rv64gc_bpred_$(kval)/wally-config.vh;)
|
# @$(foreach kval, $(k), sed -i 's/BPRED_SIZE.*/BPRED_SIZE $(kval)/g' $(CONFIGDIR)/rv64gc_bpred_$(kval)/wally-config.vh;)
|
||||||
@$(foreach kval, $(k), make synth DESIGN=wallypipelinedcore CONFIG=rv64gc_bpred_$(kval) TECH=sky90 FREQ=500 MAXCORES=4 --jobs;)
|
# @$(foreach kval, $(k), make synth DESIGN=wallypipelinedcore CONFIG=rv64gc_bpred_$(kval) TECH=sky90 FREQ=500 MAXCORES=4 --jobs;)
|
||||||
copy:
|
copy:
|
||||||
@$(foreach dir, $(DIRS), rm -rf $(CONFIGDIR)/$(dir)_orig;)
|
@$(foreach dir, $(DIRS), rm -rf $(CONFIGDIR)/$(dir)_orig;)
|
||||||
@$(foreach dir, $(DIRS), cp -r $(CONFIGDIR)/$(dir) $(CONFIGDIR)/$(dir)_orig;)
|
@$(foreach dir, $(DIRS), cp -r $(CONFIGDIR)/$(dir) $(CONFIGDIR)/$(dir)_orig;)
|
||||||
@ -59,7 +67,7 @@ copy:
|
|||||||
|
|
||||||
|
|
||||||
del:
|
del:
|
||||||
@$(foreach dir, $(DIRS), rm -rf $(CONFIGDIR)/$(dir)_*;)
|
rm -rf $(CONFIGDIR)/*_*
|
||||||
|
|
||||||
configs: $(DIRS)
|
configs: $(DIRS)
|
||||||
$(DIRS):
|
$(DIRS):
|
||||||
@ -90,12 +98,12 @@ $(DIRS):
|
|||||||
sed -i 's/ZICSR_SUPPORTED *1/ZICSR_SUPPORTED 0/' $(CONFIGDIR)/$@_noPriv/wally-config.vh
|
sed -i 's/ZICSR_SUPPORTED *1/ZICSR_SUPPORTED 0/' $(CONFIGDIR)/$@_noPriv/wally-config.vh
|
||||||
|
|
||||||
freqs:
|
freqs:
|
||||||
@$(foreach freq, $(FREQS), make synth DESIGN=wallypipelinedcore CONFIG=rv32e TECH=sky130 FREQ=$(freq) MAXCORES=1;)
|
@$(foreach freq, $(FREQS), make synth DESIGN=wallypipelinedcore CONFIG=rv32e FREQ=$(freq) MAXCORES=1;)
|
||||||
|
|
||||||
allsynth: $(CONFIGFILESTRIM)
|
allsynth: $(CONFIGFILESTRIM)
|
||||||
|
|
||||||
$(CONFIGFILESTRIM):
|
$(CONFIGFILESTRIM):
|
||||||
make synth DESIGN=wallypipelinedcore CONFIG=$@ TECH=sky130 FREQ=1000 MAXCORES=1
|
make synth DESIGN=wallypipelinedcore CONFIG=$@ TECH=sky90 FREQ=1000 MAXCORES=1
|
||||||
|
|
||||||
|
|
||||||
synth:
|
synth:
|
||||||
|
8
synthDC/runConfigsSynth.sh
Normal file
8
synthDC/runConfigsSynth.sh
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
rm -r runs/*
|
||||||
|
make clean
|
||||||
|
make del
|
||||||
|
make copy
|
||||||
|
make configs
|
||||||
|
make allsynth
|
||||||
|
python3 scripts/extractSummary.py
|
||||||
|
make del
|
6
synthDC/runFrequencySynth.sh
Normal file
6
synthDC/runFrequencySynth.sh
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
rm -r runs/*
|
||||||
|
make clean
|
||||||
|
make del
|
||||||
|
make freqs TECH=$1
|
||||||
|
python3 scripts/extractSummary.py
|
||||||
|
make del
|
@ -12,14 +12,14 @@ def main():
|
|||||||
curr_dir = os.path.dirname(os.path.abspath(__file__))
|
curr_dir = os.path.dirname(os.path.abspath(__file__))
|
||||||
output_file = os.path.join(curr_dir,"..","Summary.csv")
|
output_file = os.path.join(curr_dir,"..","Summary.csv")
|
||||||
runs_dir = os.path.join(curr_dir,"..","runs/*/reports/wallypipelinedcore_qor.rep")
|
runs_dir = os.path.join(curr_dir,"..","runs/*/reports/wallypipelinedcore_qor.rep")
|
||||||
|
# cruns_dir = "/home/ssanghai/Desktop/cleanRun/*/reports/wallypipelinedcore_qor.rep"
|
||||||
search_strings = [
|
search_strings = [
|
||||||
"Critical Path Length:", "Cell Area:", "Overall Compile Time:",
|
"Critical Path Length:", "Cell Area:", "Overall Compile Time:",
|
||||||
"Critical Path Clk Period:", "Critical Path Slack:"
|
"Critical Path Clk Period:", "Critical Path Slack:"
|
||||||
]
|
]
|
||||||
|
|
||||||
for name in glob.glob(runs_dir):
|
for name in glob.glob(runs_dir):
|
||||||
f = open(name, 'r')
|
f = open(name, 'r')
|
||||||
trimName = re.search("wallypipelinedcore_(.*?)_2022",name).group(1)
|
trimName = re.search("wallypipelinedcore_(.*?)_sky",name).group(1)
|
||||||
|
|
||||||
output = {'Name':trimName}
|
output = {'Name':trimName}
|
||||||
num_lines = len(f.readlines())
|
num_lines = len(f.readlines())
|
||||||
|
Loading…
Reference in New Issue
Block a user