fix fanout with iNO
This commit is contained in:
parent
9b3f065b07
commit
5965b4c967
26
Makefile
26
Makefile
|
@ -6,22 +6,34 @@ RTL_FILES ?= $(shell find $(PROJ_PATH)/example -name "*.v")
|
|||
export CLK_FREQ_MHZ ?= 500
|
||||
|
||||
RESULT_DIR = $(PROJ_PATH)/result/$(DESIGN)-$(CLK_FREQ_MHZ)MHz
|
||||
NETLIST_V = $(RESULT_DIR)/$(DESIGN).netlist.v
|
||||
SCRIPT_DIR = $(PROJ_PATH)/scripts
|
||||
NETLIST_SYN_V = $(RESULT_DIR)/$(DESIGN).netlist.syn.v
|
||||
NETLIST_FIXED_V = $(RESULT_DIR)/$(DESIGN).netlist.fixed.v
|
||||
SYN_DEF = $(RESULT_DIR)/$(DESIGN).syn.def
|
||||
FIXED_DEF = $(RESULT_DIR)/$(DESIGN).fixed.def
|
||||
TIMING_RPT = $(RESULT_DIR)/$(DESIGN).rpt
|
||||
|
||||
init:
|
||||
bash -c "$$(wget -O - https://ysyx.oscc.cc/slides/resources/scripts/init-yosys-sta.sh)"
|
||||
|
||||
syn: $(NETLIST_V)
|
||||
$(NETLIST_V): $(RTL_FILES) yosys.tcl
|
||||
syn: $(NETLIST_SYN_V)
|
||||
$(NETLIST_SYN_V): $(RTL_FILES) $(SCRIPT_DIR)/yosys.tcl
|
||||
mkdir -p $(@D)
|
||||
echo tcl yosys.tcl $(DESIGN) \"$(RTL_FILES)\" $(NETLIST_V) | yosys -l $(@D)/yosys.log -s -
|
||||
echo tcl $(SCRIPT_DIR)/yosys.tcl $(DESIGN) \"$(RTL_FILES)\" $@ | yosys -l $(@D)/yosys.log -s -
|
||||
|
||||
def: $(SYN_DEF)
|
||||
$(SYN_DEF): $(SCRIPT_DIR)/def.tcl $(NETLIST_SYN_V)
|
||||
LD_LIBRARY_PATH=bin/ ./bin/iEDA $^ $(DESIGN) $@ | tee $(RESULT_DIR)/gen-def.log
|
||||
|
||||
fix-fanout: $(NETLIST_FIXED_V)
|
||||
$(NETLIST_FIXED_V): $(SCRIPT_DIR)/fix-fanout.tcl $(SDC_FILE) $(SYN_DEF)
|
||||
LD_LIBRARY_PATH=bin/ ./bin/iEDA -script $^ $@ 2>&1 | tee $(RESULT_DIR)/fix-fanout.log
|
||||
|
||||
sta: $(TIMING_RPT)
|
||||
$(TIMING_RPT): $(SDC_FILE) $(NETLIST_V)
|
||||
LD_LIBRARY_PATH=bin/ ./bin/iSTA $(PROJ_PATH)/sta.tcl $(DESIGN) $(SDC_FILE) $(NETLIST_V)
|
||||
$(TIMING_RPT): $(SCRIPT_DIR)/sta.tcl $(SDC_FILE) $(NETLIST_FIXED_V)
|
||||
LD_LIBRARY_PATH=bin/ ./bin/iEDA -script $^ $(DESIGN) 2>&1 | tee $(RESULT_DIR)/sta.log
|
||||
|
||||
clean:
|
||||
-rm -rf result/
|
||||
|
||||
.PHONY: init syn sta clean
|
||||
.PHONY: init syn def fix-fanout sta clean
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
set PROJ_PATH "[file dirname [info script]]/.."
|
||||
set NETLIST_SYN_V [lindex $argv 0]
|
||||
set DESIGN [lindex $argv 1]
|
||||
set DEF_FILE [lindex $argv 2]
|
||||
|
||||
set LEF_FILES "\
|
||||
$PROJ_PATH/nangate45/lef/NangateOpenCellLibrary.tech.lef \
|
||||
$PROJ_PATH/nangate45/lef/NangateOpenCellLibrary.macro.mod.lef"
|
||||
|
||||
verilog_to_def -lef $LEF_FILES -verilog $NETLIST_SYN_V -top $DESIGN -def $DEF_FILE
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"file_path": {
|
||||
"design_work_space": "",
|
||||
"sdc_file": "",
|
||||
"lib_files": "",
|
||||
"lef_files": "",
|
||||
"def_file": "",
|
||||
"output_def": "",
|
||||
"report_file": ""
|
||||
},
|
||||
"insert_buffer": "BUF_X8",
|
||||
"max_fanout": 30
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
set PROJ_PATH "[file dirname [info script]]/.."
|
||||
set SDC_FILE [lindex $argv 0]
|
||||
set DEF_FILE [lindex $argv 1]
|
||||
set NETLIST_FIXED_V [lindex $argv 2]
|
||||
|
||||
db_init -lib_path $PROJ_PATH/nangate45/lib/merged.lib
|
||||
db_init -sdc_path $SDC_FILE
|
||||
tech_lef_init -path $PROJ_PATH/nangate45/lef/NangateOpenCellLibrary.tech.lef
|
||||
lef_init -path $PROJ_PATH/nangate45/lef/NangateOpenCellLibrary.macro.mod.lef
|
||||
|
||||
def_init -path $DEF_FILE
|
||||
run_no_fixfanout -config $PROJ_PATH/scripts/fix-fanout.json
|
||||
#def_save -path fix_fanout_result.def
|
||||
netlist_save -path $NETLIST_FIXED_V -exclude_cell_names {}
|
|
@ -1,7 +1,7 @@
|
|||
set PROJ_PATH [file dirname [info script]]
|
||||
set DESIGN [lindex $argv 0]
|
||||
set SDC_FILE [lindex $argv 1]
|
||||
set NETLIST_V [lindex $argv 2]
|
||||
set PROJ_PATH "[file dirname [info script]]/.."
|
||||
set SDC_FILE [lindex $argv 0]
|
||||
set NETLIST_V [lindex $argv 1]
|
||||
set DESIGN [lindex $argv 2]
|
||||
set RESULT_DIR [file dirname $NETLIST_V]
|
||||
set LIB_FILES $PROJ_PATH/nangate45/lib/merged.lib
|
||||
|
|
@ -3,16 +3,16 @@
|
|||
#===========================================================
|
||||
set DESIGN [lindex $argv 0]
|
||||
set VERILOG_FILES [string map {"\"" ""} [lindex $argv 1]]
|
||||
set NETLIST_V [lindex $argv 2]
|
||||
set NETLIST_SYN_V [lindex $argv 2]
|
||||
set VERILOG_INCLUDE_DIRS ""
|
||||
set RESULT_DIR [file dirname $NETLIST_V]
|
||||
set RESULT_DIR [file dirname $NETLIST_SYN_V]
|
||||
|
||||
set PROJ_PATH [file dirname [info script]]
|
||||
set MERGED_LIB_FILE "$PROJ_PATH/nangate45/lib/merged.lib"
|
||||
set BLACKBOX_V_FILE "$PROJ_PATH/nangate45/verilog/blackbox.v"
|
||||
set CLKGATE_MAP_FILE "$PROJ_PATH/nangate45/verilog/cells_clkgate.v"
|
||||
set LATCH_MAP_FILE "$PROJ_PATH/nangate45/verilog/cells_latch.v"
|
||||
set BLACKBOX_MAP_TCL "$PROJ_PATH/nangate45/blackbox_map.tcl"
|
||||
set FOUNDARY_PATH "[file dirname [info script]]/../nangate45"
|
||||
set MERGED_LIB_FILE "$FOUNDARY_PATH/lib/merged.lib"
|
||||
set BLACKBOX_V_FILE "$FOUNDARY_PATH/verilog/blackbox.v"
|
||||
set CLKGATE_MAP_FILE "$FOUNDARY_PATH/verilog/cells_clkgate.v"
|
||||
set LATCH_MAP_FILE "$FOUNDARY_PATH/verilog/cells_latch.v"
|
||||
set BLACKBOX_MAP_TCL "$FOUNDARY_PATH/blackbox_map.tcl"
|
||||
|
||||
set CLK_FREQ_MHZ 500
|
||||
if {[info exists env(CLK_FREQ_MHZ)]} {
|
||||
|
@ -120,4 +120,4 @@ tee -o $RESULT_DIR/synth_check.txt check
|
|||
tee -o $RESULT_DIR/synth_stat.txt stat -liberty $MERGED_LIB_FILE
|
||||
|
||||
# write synthesized design
|
||||
write_verilog -noattr -noexpr -nohex -nodec $NETLIST_V
|
||||
write_verilog -noattr -noexpr -nohex -nodec $NETLIST_SYN_V
|
Loading…
Reference in New Issue