Latest config files user_project clean run.
diff --git a/openlane/ghazi_top_dffram_csv/config.tcl b/openlane/ghazi_top_dffram_csv/config.tcl
index 0377151..02389b8 100755
--- a/openlane/ghazi_top_dffram_csv/config.tcl
+++ b/openlane/ghazi_top_dffram_csv/config.tcl
@@ -5,8 +5,9 @@
# Change if needed
set ::env(VERILOG_FILES) [glob $script_dir/../../verilog/rtl/defines.v $script_dir/../../verilog/rtl/ghazi/*.v]
set ::env(SYNTH_READ_BLACKBOX_LIB) 1
-set ::env(FP_SIZING) relative
+set ::env(FP_SIZING) absolute
set ::env(DIE_AREA) "0 0 2300 3000"
+set ::env(FP_CORE_UTIL) 50
set ::env(PL_TARGET_DENSITY) 0.3
set ::env(GENERATE_FINAL_SUMMARY_REPORT) 1
set ::env(SYNTH_STRATEGY) 0
@@ -15,6 +16,8 @@
set ::env(PDN_CFG) $script_dir/pdn.tcl
set ::env(GLB_RT_MAXLAYER) 5
set ::env(GLB_RT_ALLOW_CONGESTION) 1
+set ::env(DIODE_INSERTION_STRATEGY) 3
+set ::env(GLB_RT_MAX_DIODE_INS_ITERS) 1
#defaults
set ::env(BASE_SDC_FILE) $script_dir/ghazi_top_dffram_csv.sdc
# Fill this
diff --git a/openlane/ghazi_top_dffram_csv/interactive.tcl b/openlane/ghazi_top_dffram_csv/interactive.tcl
new file mode 100644
index 0000000..db5d5df
--- /dev/null
+++ b/openlane/ghazi_top_dffram_csv/interactive.tcl
@@ -0,0 +1,35 @@
+package require openlane
+set script_dir [file dirname [file normalize [info script]]]
+
+prep -design $script_dir -tag 23_Dec_without_X_Virus
+set save_path $script_dir/../..
+run_magic
+run_magic_spice_export
+
+ if { [info exists flags_map(-save) ] } {
+ if { ! [info exists arg_values(-save_path)] } {
+ set arg_values(-save_path) ""
+}
+ save_views -lef_path $::env(magic_result_file_tag).lef \
+ -def_path $::env(tritonRoute_result_file_tag).def \
+ -gds_path $::env(magic_result_file_tag).gds \
+ -mag_path $::env(magic_result_file_tag).mag \
+ -mag_path $::env(magic_result_file_tag).lef.mag \
+ -spice_path $::env(magic_result_file_tag).spice \
+ -verilog_path $::env(CURRENT_NETLIST) \
+ -save_path $arg_values(-save_path) \
+ -tag $::env(RUN_TAG)
+ }
+
+ # Physical verification
+
+ run_magic_drc
+
+ run_lvs; # requires run_magic_spice_export
+
+ run_antenna_check
+
+ generate_final_summary_report
+
+ puts_success "Flow Completed Wajeh, Without Fatal Errors."
+
diff --git a/openlane/user_project_wrapper/gen_pdn.tcl b/openlane/user_project_wrapper/gen_pdn.tcl
index 5560a81..7854a79 100644
--- a/openlane/user_project_wrapper/gen_pdn.tcl
+++ b/openlane/user_project_wrapper/gen_pdn.tcl
@@ -4,7 +4,7 @@
set ::env(_SPACING) 1.7
set ::env(_WIDTH) 3
-set power_domains [list {vccd1 vssd1 1} {vccd2 vssd2 1} {vdda1 vssa1 0} {vdda2 vssa2 0}]
+set power_domains [list {vccd1 vssd1 1} {vccd2 vssd2 0} {vdda1 vssa1 0} {vdda2 vssa2 0}]
set ::env(_VDD_NET_NAME) vccd1
set ::env(_GND_NET_NAME) vssd1
diff --git a/openlane/user_project_wrapper/interactive.tcl b/openlane/user_project_wrapper/interactive.tcl
index 05eeee4..f6532a9 100644
--- a/openlane/user_project_wrapper/interactive.tcl
+++ b/openlane/user_project_wrapper/interactive.tcl
@@ -1,7 +1,7 @@
package require openlane
set script_dir [file dirname [file normalize [info script]]]
-prep -design $script_dir -tag user_project_wrapper_18_Dec_3_pm_powered_netlist -overwrite
+prep -design $script_dir -tag 24dec_without_X_Virus
set save_path $script_dir/../..
verilog_elaborate
@@ -10,39 +10,12 @@
place_io_ol
-set ::env(FP_DEF_TEMPATE) $script_dir/../../def/user_project_wrapper_empty.def
-
-apply_def_template
-
-add_macro_placement mprj 310 260 N
+add_macro_placement mprj 310 216 N
manual_macro_placement f
-set ::env(_SPACING) 1.8
-set ::env(_WIDTH) 3
-
-set power_domains [list {vccd1 vssd1}]
-
-set ::env(_VDD_NET_NAME) vccd1
-set ::env(_GND_NET_NAME) vssd1
-set ::env(_V_OFFSET) 14
-set ::env(_H_OFFSET) $::env(_V_OFFSET)
-set ::env(_V_PITCH) 180
-set ::env(_H_PITCH) 180
-set ::env(_V_PDN_OFFSET) 0
-set ::env(_H_PDN_OFFSET) 0
-
-foreach domain $power_domains {
- set ::env(_VDD_NET_NAME) [lindex $domain 0]
- set ::env(_GND_NET_NAME) [lindex $domain 1]
- gen_pdn
- set ::env(_V_OFFSET) \
- [expr $::env(_V_OFFSET) + 2*($::env(_WIDTH)+$::env(_SPACING))]
- set ::env(_H_OFFSET) \
- [expr $::env(_H_OFFSET) + 2*($::env(_WIDTH)+$::env(_SPACING))]
- set ::env(_V_PDN_OFFSET) [expr $::env(_V_PDN_OFFSET)+6*$::env(_WIDTH)]
- set ::env(_H_PDN_OFFSET) [expr $::env(_H_PDN_OFFSET)+6*$::env(_WIDTH)]
-}
+exec -ignorestderr openroad -exit $script_dir/gen_pdn.tcl
+set_def $::env(pdn_tmp_file_tag).def
global_routing_or
detailed_routing
@@ -55,7 +28,6 @@
-def_path $::env(tritonRoute_result_file_tag).def \
-gds_path $::env(magic_result_file_tag).gds \
-mag_path $::env(magic_result_file_tag).mag \
- -verilog_path $::env(CURRENT_NETLIST) \
-save_path $save_path \
-tag $::env(RUN_TAG)
diff --git a/openlane/user_project_wrapper/pdn.tcl b/openlane/user_project_wrapper/pdn.tcl
index 5838b0c..f5c6149 100644
--- a/openlane/user_project_wrapper/pdn.tcl
+++ b/openlane/user_project_wrapper/pdn.tcl
@@ -2,7 +2,7 @@
set ::power_nets $::env(_VDD_NET_NAME)
set ::ground_nets $::env(_GND_NET_NAME)
-pdngen::specify_grid stdcell {
+set stdcell {
name grid
core_ring {
met5 {width $::env(_WIDTH) spacing $::env(_SPACING) core_offset $::env(_H_OFFSET)}
@@ -10,16 +10,21 @@
}
rails {
}
- straps {
- met4 {width $::env(_WIDTH) pitch $::env(_V_PITCH) offset $::env(_V_PDN_OFFSET)}
- met5 {width $::env(_WIDTH) pitch $::env(_H_PITCH) offset $::env(_H_PDN_OFFSET)}
- }
connect {{met4 met5}}
}
+if { $::env(_WITH_STRAPS) } {
+ dict append stdcell straps {
+ met4 {width $::env(_WIDTH) pitch $::env(_V_PITCH) offset $::env(_V_PDN_OFFSET)}
+ met5 {width $::env(_WIDTH) pitch $::env(_H_PITCH) offset $::env(_H_PDN_OFFSET)}
+ }
+}
+
+pdngen::specify_grid stdcell $stdcell
+
pdngen::specify_grid macro {
instance "mprj"
- power_pins "VPWR"
+ power_pins "VPWR"
ground_pins "VGND"
blockages "li1 met1 met2 met3 met4"
straps {
@@ -28,20 +33,10 @@
}
-pdngen::specify_grid macro {
- power_pins $::env(_VDD_NET_NAME)
- ground_pins $::env(_GND_NET_NAME)
- blockages ""
- straps {
- }
- connect {}
-}
-
-set ::halo 0
+set ::halo 10
# POWER or GROUND #Std. cell rails starting with power or ground rails at the bottom of the core area
set ::rails_start_with "POWER" ;
# POWER or GROUND #Upper metal stripes starting with power or ground rails at the left/bottom of the core area
set ::stripes_start_with "POWER" ;
-