Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,18 @@ default: help
################
# Dependencies #
################
# Download RCX file used for parasitic extraction from ORFS (configuration got ok by IHP)
IHP_RCX_URL := "https://raw.githubusercontent.com/The-OpenROAD-Project/OpenROAD-flow-scripts/7747f88f70daaeb63f43ce36e71829707b7e3fa7/flow/platforms/ihp-sg13g2/IHP_rcx_patterns.rules"
IHP_RCX_FILE := $(PROJ_DIR)/openroad/IHP_rcx_patterns.rules

## Checkout/update dependencies using Bender
checkout:
checkout: $(IHP_RCX_FILE)
$(BENDER) checkout
git submodule update --init --recursive

$(IHP_RCX_FILE):
curl -L -o $@ $(IHP_RCX_URL)

## Reset dependencies (without updating Bender.lock)
clean-deps:
rm -rf .bender
Expand Down
3 changes: 2 additions & 1 deletion openroad/.gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
*.log
save
reports
out
out
IHP_rcx_patterns.rules
2 changes: 1 addition & 1 deletion openroad/openroad.mk
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ backend: $(OR_OUT)/$(PROJ_NAME).def
openroad: $(OR_OUT)/$(PROJ_NAME).def

## Place & Route flow using OpenROAD
$(OR_OUT_FILES): $(NETLIST) $(OR_DIR)/scripts/*.tcl $(OR_DIR)/src/*.tcl $(OR_DIR)/src/*.sdc
$(OR_OUT_FILES): $(NETLIST) $(OR_DIR)/scripts/*.tcl $(OR_DIR)/src/*.tcl $(OR_DIR)/src/*.sdc $(OR_DIR)/IHP_rcx_patterns.rules
mkdir -p $(SAVE)
mkdir -p $(REPORTS)
mkdir -p $(OR_OUT)
Expand Down
10 changes: 7 additions & 3 deletions openroad/scripts/chip.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ utl::report "Perform buffer insertion..."
repair_design -verbose
utl::report "Repair setup and hold violations..."
repair_timing -skip_pin_swap -setup -verbose -repair_tns 100
repair_timing -skip_pin_swap -hold -hold_margin 0.05 -verbose -repair_tns 100
repair_timing -skip_pin_swap -hold -hold_margin 0.1 -verbose -repair_tns 100

utl::report "GRT incremental..."
# Run to get modified net by DPL
Expand Down Expand Up @@ -334,12 +334,16 @@ filler_placement $stdfill
global_connect

save_checkpoint ${log_id_str}_${proj_name}.final
report_metrics "${log_id_str}_${proj_name}.final"
report_image "${log_id_str}_${proj_name}.final" true true false true
define_process_corner -ext_model_index 0 X
extract_parasitics -ext_model_file IHP_rcx_patterns.rules
write_spef out/${proj_name}.spef
read_spef out/${proj_name}.spef; # readback parasitics for OpenSTA
report_metrics "${log_id_str}_${proj_name}.final"

utl::report "Write output"
write_def out/${proj_name}.def
write_verilog -include_pwr_gnd out/${proj_name}_lvs.v
write_verilog -include_pwr_gnd -remove_cells "$stdfill bondpad*" out/${proj_name}_lvs.v
write_verilog out/${proj_name}.v
write_db out/${proj_name}.odb
write_sdc out/${proj_name}.sdc
Expand Down
2 changes: 1 addition & 1 deletion yosys/scripts/yosys_common.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
set variables {
sv_flist { SV_FLIST "../croc.flist" }
top_design { TOP_DESIGN "croc_chip" }
period_ps { PERIOD_PS 10000 }
out_dir { OUT out }
tmp_dir { TMP tmp }
rep_dir { REPORTS reports }
Expand Down Expand Up @@ -48,6 +47,7 @@ proc processAbcScript {abc_script} {
set src_dir [file join [file dirname [info script]] ../src]
set abc_out_path $tmp_dir/[file tail $abc_script]

# substitute {STRING} placeholders with their value
set raw [read -nonewline [open $abc_script r]]
set abc_script_recaig [string map -nocase [list "{REC_AIG}" [subst "$src_dir/lazy_man_synth_library.aig"]] $raw]
set abc_out [open $abc_out_path w]
Expand Down
1 change: 1 addition & 0 deletions yosys/scripts/yosys_synthesis.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ yosys tee -q -a ${rep_dir}/${top_design}_instances.rpt select -list "t:tc_clk*$
yosys dfflibmap {*}$tech_cells_args

# then perform bit-level optimization and mapping on all combinational clouds in ABC
# target period (per optimized block/module) in picoseconds
set period_ps 10000
# pre-process abc file (written to tmp directory)
set abc_comb_script [processAbcScript scripts/abc-opt.script]
Expand Down
3 changes: 0 additions & 3 deletions yosys/yosys.mk
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ YOSYS_REPORTS := $(YOSYS_DIR)/reports

# top level to be synthesized
TOP_DESIGN ?= croc_chip
# target period in picoseconds
PERIOD_PS ?= 10000

# file containing include dirs, defines and paths to all source files
SV_FLIST := $(realpath $(YOSYS_DIR)/..)/croc.flist
Expand All @@ -38,7 +36,6 @@ $(NETLIST) $(NETLIST_DEBUG): $(SV_FLIST)
cd $(YOSYS_DIR) && \
SV_FLIST="$(SV_FLIST)" \
TOP_DESIGN="$(TOP_DESIGN)" \
PERIOD_PS="$(PERIOD_PS)" \
TMP="$(YOSYS_TMP)" \
OUT="$(YOSYS_OUT)" \
REPORTS="$(YOSYS_REPORTS)" \
Expand Down
Loading