database update
diff --git a/openlane/user_project_wrapper/config.tcl b/openlane/user_project_wrapper/config.tcl
index 03c3409..0a4f516 100644
--- a/openlane/user_project_wrapper/config.tcl
+++ b/openlane/user_project_wrapper/config.tcl
@@ -30,7 +30,7 @@
## Source Verilog Files
set ::env(VERILOG_FILES) "\
$script_dir/../../caravel/verilog/rtl/defines.v \
- $script_dir/../../verilog/gl/digital_core.v \
+ $script_dir/../../verilog/rtl/digital_core/src/digital_core.sv \
$script_dir/../../verilog/rtl/user_project_wrapper.v"
## Clock configurations
@@ -42,12 +42,11 @@
## Internal Macros
### Macro Placement
set ::env(FP_SIZING) "absolute"
-set ::env(MACRO_PLACEMENT_CFG) $script_dir/macro_placement.cfg
+set ::env(MACRO_PLACEMENT_CFG) $script_dir/macro.cfg
set ::env(SDC_FILE) "$script_dir/base.sdc"
set ::env(BASE_SDC_FILE) "$script_dir/base.sdc"
-set ::env(SYNTH_READ_BLACKBOX_LIB) "1"
### Black-box verilog and views
set ::env(VERILOG_FILES_BLACKBOX) "\
@@ -81,15 +80,6 @@
set ::env(VERILOG_INCLUDE_DIRS) [glob $script_dir/../../verilog/rtl/syntacore/scr1/src/includes $script_dir/../../verilog/rtl/sdram_ctrl/src/defs ]
-set ::env(GLB_RT_MAXLAYER) 5
-
-set ::env(FP_PDN_CHECK_NODES) 0
-
-set ::env(GLB_RT_OBS) "met1 0 0 $::env(DIE_AREA),\
- met2 0 0 $::env(DIE_AREA),\
- met3 0 0 $::env(DIE_AREA),\
- met4 0 0 $::env(DIE_AREA),\
- met5 0 0 $::env(DIE_AREA)"
# The following is because there are no std cells in the example wrapper project.
@@ -100,5 +90,52 @@
set ::env(PL_DIAMOND_SEARCH_HEIGHT) "400"
set ::env(ROUTING_OPT_ITERS) "20"
+set ::env(GLB_RT_ALLOW_CONGESTION) 1
+set ::env(GLB_RT_MAXLAYER) 5
+set ::env(GLB_RT_MINLAYER) 2
+set ::env(GLB_RT_ADJUSTMENT) 0.45
+set ::env(GENERATE_FINAL_SUMMARY_REPORT) 1
+set ::env(SYNTH_READ_BLACKBOX_LIB) 1
+set ::env(FP_PDN_CHECK_NODES) 0
+# This makes sure that the core rings are outside the boundaries
+# of your block.
+set ::env(MAGIC_ZEROIZE_ORIGIN) 0
+# Area Configurations. DON'T TOUCH.
+set ::env(FP_SIZING) absolute
+set ::env(DIE_AREA) "0 0 2920 3520"
+set ::env(RUN_CVC) 0
+
+# Pin Configurations. DON'T TOUCH
+set ::env(FP_PIN_ORDER_CFG) $script_dir/pin_order.cfg
+
+set ::unit 2.4
+set ::env(FP_IO_VEXTEND) [expr 2*$::unit]
+set ::env(FP_IO_HEXTEND) [expr 2*$::unit]
+set ::env(FP_IO_VLENGTH) $::unit
+set ::env(FP_IO_HLENGTH) $::unit
+
+set ::env(FP_IO_VTHICKNESS_MULT) 4
+set ::env(FP_IO_HTHICKNESS_MULT) 4
+
+# Power & Pin Configurations. DON'T TOUCH.
+set ::env(FP_PDN_CORE_RING) 1
+set ::env(FP_PDN_CORE_RING_VWIDTH) 3
+set ::env(FP_PDN_CORE_RING_HWIDTH) $::env(FP_PDN_CORE_RING_VWIDTH)
+set ::env(FP_PDN_CORE_RING_VOFFSET) 14
+set ::env(FP_PDN_CORE_RING_HOFFSET) $::env(FP_PDN_CORE_RING_VOFFSET)
+set ::env(FP_PDN_CORE_RING_VSPACING) 1.7
+set ::env(FP_PDN_CORE_RING_HSPACING) $::env(FP_PDN_CORE_RING_VSPACING)
+
+set ::env(FP_PDN_VWIDTH) 3
+set ::env(FP_PDN_HWIDTH) 3
+set ::env(FP_PDN_VOFFSET) 5
+set ::env(FP_PDN_HOFFSET) $::env(FP_PDN_VOFFSET)
+set ::env(FP_PDN_VPITCH) 180
+set ::env(FP_PDN_HPITCH) $::env(FP_PDN_VPITCH)
+set ::env(FP_PDN_VSPACING) [expr 5*$::env(FP_PDN_CORE_RING_VWIDTH)]
+set ::env(FP_PDN_HSPACING) [expr 5*$::env(FP_PDN_CORE_RING_HWIDTH)]
+set ::env(VDD_NETS) [list {vccd1} {vccd2} {vdda1} {vdda2}]
+set ::env(GND_NETS) [list {vssd1} {vssd2} {vssa1} {vssa2}]
+set ::env(SYNTH_USE_PG_PINS_DEFINES) "USE_POWER_PINS"
diff --git a/openlane/user_project_wrapper/interactive.tcl b/openlane/user_project_wrapper/interactive.tcl
new file mode 100644
index 0000000..6249330
--- /dev/null
+++ b/openlane/user_project_wrapper/interactive.tcl
@@ -0,0 +1,34 @@
+package require openlane
+set script_dir [file dirname [file normalize [info script]]]
+
+prep -design $script_dir -tag 24June2021 -overwrite
+set save_path $script_dir/../..
+
+run_synthesis
+run_floorplan
+run_placement
+run_cts
+run_routing
+
+write_powered_verilog
+set_netlist $::env(lvs_result_file_tag).powered.v
+run_magic
+run_magic_drc
+puts $::env(CURRENT_NETLIST)
+run_magic_spice_export
+
+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 \
+ -maglef_path $::env(magic_result_file_tag).lef.mag \
+ -spice_path $::env(magic_result_file_tag).spice \
+ -verilog_path $::env(CURRENT_NETLIST)\
+ -save_path $save_path \
+ -tag $::env(RUN_TAG)
+
+run_lvs
+run_antenna_check
+calc_total_runtime
+generate_final_summary_report
+puts_success "Flow Completed Without Fatal Errors."
diff --git a/openlane/user_project_wrapper/macro.cfg b/openlane/user_project_wrapper/macro.cfg
index a7365ab..901e853 100644
--- a/openlane/user_project_wrapper/macro.cfg
+++ b/openlane/user_project_wrapper/macro.cfg
@@ -1 +1,7 @@
-mprj 1175 1690 N
+u_core.u_riscv_top 300 300 N
+u_core.u_glbl_cfg 2000 2200 N
+u_core.u_uart_core 2000 1100 N
+u_core.u_intercon 300 1800 N
+u_core.u_spi_master 300 2200 N
+u_core.u_sdram_ctrl 1000 2200 N
+u_core.u_glbl_cfg 2000 2200 N
diff --git a/openlane/user_project_wrapper/macro_placement.cfg b/openlane/user_project_wrapper/macro_placement.cfg
deleted file mode 100644
index cc8a2a9..0000000
--- a/openlane/user_project_wrapper/macro_placement.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-u_core.u_riscv_top 300 300 N
-u_core.u_intercon 300 1800 N
-u_core.u_spi_master 300 2200 N
-u_core.u_sdram_ctrl 1000 2200 N
-u_core.u_glbl_cfg 2000 2200 N
-u_core.u_uart_core 2000 1100 N
diff --git a/openlane/wb_interconnect/config.tcl b/openlane/wb_interconnect/config.tcl
index 36a0857..b7f7a50 100755
--- a/openlane/wb_interconnect/config.tcl
+++ b/openlane/wb_interconnect/config.tcl
@@ -38,7 +38,7 @@
set ::env(FP_PIN_ORDER_CFG) $::env(DESIGN_DIR)/pin_order.cfg
set ::env(FP_SIZING) absolute
-set ::env(DIE_AREA) "0 0 2300 200"
+set ::env(DIE_AREA) "0 0 2000 200"
diff --git a/openlane/wb_interconnect/pin_order.cfg b/openlane/wb_interconnect/pin_order.cfg
index c32dce4..ae72f2a 100644
--- a/openlane/wb_interconnect/pin_order.cfg
+++ b/openlane/wb_interconnect/pin_order.cfg
@@ -220,114 +220,7 @@
m1_wbd_err_o
m1_wbd_cyc_i
-m2_wbd_stb_i 1500 0 2
-m2_wbd_we_i
-m2_wbd_adr_i\[31\]
-m2_wbd_adr_i\[30\]
-m2_wbd_adr_i\[29\]
-m2_wbd_adr_i\[28\]
-m2_wbd_adr_i\[27\]
-m2_wbd_adr_i\[26\]
-m2_wbd_adr_i\[25\]
-m2_wbd_adr_i\[24\]
-m2_wbd_adr_i\[23\]
-m2_wbd_adr_i\[22\]
-m2_wbd_adr_i\[21\]
-m2_wbd_adr_i\[20\]
-m2_wbd_adr_i\[19\]
-m2_wbd_adr_i\[18\]
-m2_wbd_adr_i\[17\]
-m2_wbd_adr_i\[16\]
-m2_wbd_adr_i\[15\]
-m2_wbd_adr_i\[14\]
-m2_wbd_adr_i\[13\]
-m2_wbd_adr_i\[12\]
-m2_wbd_adr_i\[11\]
-m2_wbd_adr_i\[10\]
-m2_wbd_adr_i\[9\]
-m2_wbd_adr_i\[8\]
-m2_wbd_adr_i\[7\]
-m2_wbd_adr_i\[6\]
-m2_wbd_adr_i\[5\]
-m2_wbd_adr_i\[4\]
-m2_wbd_adr_i\[3\]
-m2_wbd_adr_i\[2\]
-m2_wbd_adr_i\[1\]
-m2_wbd_adr_i\[0\]
-m2_wbd_sel_i\[3\]
-m2_wbd_sel_i\[2\]
-m2_wbd_sel_i\[1\]
-m2_wbd_sel_i\[0\]
-m2_wbd_dat_i\[31\]
-m2_wbd_dat_i\[30\]
-m2_wbd_dat_i\[29\]
-m2_wbd_dat_i\[28\]
-m2_wbd_dat_i\[27\]
-m2_wbd_dat_i\[26\]
-m2_wbd_dat_i\[25\]
-m2_wbd_dat_i\[24\]
-m2_wbd_dat_i\[23\]
-m2_wbd_dat_i\[22\]
-m2_wbd_dat_i\[21\]
-m2_wbd_dat_i\[20\]
-m2_wbd_dat_i\[19\]
-m2_wbd_dat_i\[18\]
-m2_wbd_dat_i\[17\]
-m2_wbd_dat_i\[16\]
-m2_wbd_dat_i\[15\]
-m2_wbd_dat_i\[14\]
-m2_wbd_dat_i\[13\]
-m2_wbd_dat_i\[12\]
-m2_wbd_dat_i\[11\]
-m2_wbd_dat_i\[10\]
-m2_wbd_dat_i\[9\]
-m2_wbd_dat_i\[8\]
-m2_wbd_dat_i\[7\]
-m2_wbd_dat_i\[6\]
-m2_wbd_dat_i\[5\]
-m2_wbd_dat_i\[4\]
-m2_wbd_dat_i\[3\]
-m2_wbd_dat_i\[2\]
-m2_wbd_dat_i\[1\]
-m2_wbd_dat_i\[0\]
-m2_wbd_dat_o\[31\]
-m2_wbd_dat_o\[30\]
-m2_wbd_dat_o\[29\]
-m2_wbd_dat_o\[28\]
-m2_wbd_dat_o\[27\]
-m2_wbd_dat_o\[26\]
-m2_wbd_dat_o\[25\]
-m2_wbd_dat_o\[24\]
-m2_wbd_dat_o\[23\]
-m2_wbd_dat_o\[22\]
-m2_wbd_dat_o\[21\]
-m2_wbd_dat_o\[20\]
-m2_wbd_dat_o\[19\]
-m2_wbd_dat_o\[18\]
-m2_wbd_dat_o\[17\]
-m2_wbd_dat_o\[16\]
-m2_wbd_dat_o\[15\]
-m2_wbd_dat_o\[14\]
-m2_wbd_dat_o\[13\]
-m2_wbd_dat_o\[12\]
-m2_wbd_dat_o\[11\]
-m2_wbd_dat_o\[10\]
-m2_wbd_dat_o\[9\]
-m2_wbd_dat_o\[8\]
-m2_wbd_dat_o\[7\]
-m2_wbd_dat_o\[6\]
-m2_wbd_dat_o\[5\]
-m2_wbd_dat_o\[4\]
-m2_wbd_dat_o\[3\]
-m2_wbd_dat_o\[2\]
-m2_wbd_dat_o\[1\]
-m2_wbd_dat_o\[0\]
-m2_wbd_ack_o
-m2_wbd_err_o
-m2_wbd_cyc_i
-
-
-s3_wbd_stb_o 2000 0 2
+s3_wbd_stb_o 1700 0 2
s3_wbd_we_o
s3_wbd_adr_o\[7\]
s3_wbd_adr_o\[6\]
@@ -653,3 +546,109 @@
s2_wbd_err_i
s2_wbd_cyc_o
+#W
+m2_wbd_stb_i 0 0 2
+m2_wbd_we_i
+m2_wbd_adr_i\[31\]
+m2_wbd_adr_i\[30\]
+m2_wbd_adr_i\[29\]
+m2_wbd_adr_i\[28\]
+m2_wbd_adr_i\[27\]
+m2_wbd_adr_i\[26\]
+m2_wbd_adr_i\[25\]
+m2_wbd_adr_i\[24\]
+m2_wbd_adr_i\[23\]
+m2_wbd_adr_i\[22\]
+m2_wbd_adr_i\[21\]
+m2_wbd_adr_i\[20\]
+m2_wbd_adr_i\[19\]
+m2_wbd_adr_i\[18\]
+m2_wbd_adr_i\[17\]
+m2_wbd_adr_i\[16\]
+m2_wbd_adr_i\[15\]
+m2_wbd_adr_i\[14\]
+m2_wbd_adr_i\[13\]
+m2_wbd_adr_i\[12\]
+m2_wbd_adr_i\[11\]
+m2_wbd_adr_i\[10\]
+m2_wbd_adr_i\[9\]
+m2_wbd_adr_i\[8\]
+m2_wbd_adr_i\[7\]
+m2_wbd_adr_i\[6\]
+m2_wbd_adr_i\[5\]
+m2_wbd_adr_i\[4\]
+m2_wbd_adr_i\[3\]
+m2_wbd_adr_i\[2\]
+m2_wbd_adr_i\[1\]
+m2_wbd_adr_i\[0\]
+m2_wbd_sel_i\[3\]
+m2_wbd_sel_i\[2\]
+m2_wbd_sel_i\[1\]
+m2_wbd_sel_i\[0\]
+m2_wbd_dat_i\[31\]
+m2_wbd_dat_i\[30\]
+m2_wbd_dat_i\[29\]
+m2_wbd_dat_i\[28\]
+m2_wbd_dat_i\[27\]
+m2_wbd_dat_i\[26\]
+m2_wbd_dat_i\[25\]
+m2_wbd_dat_i\[24\]
+m2_wbd_dat_i\[23\]
+m2_wbd_dat_i\[22\]
+m2_wbd_dat_i\[21\]
+m2_wbd_dat_i\[20\]
+m2_wbd_dat_i\[19\]
+m2_wbd_dat_i\[18\]
+m2_wbd_dat_i\[17\]
+m2_wbd_dat_i\[16\]
+m2_wbd_dat_i\[15\]
+m2_wbd_dat_i\[14\]
+m2_wbd_dat_i\[13\]
+m2_wbd_dat_i\[12\]
+m2_wbd_dat_i\[11\]
+m2_wbd_dat_i\[10\]
+m2_wbd_dat_i\[9\]
+m2_wbd_dat_i\[8\]
+m2_wbd_dat_i\[7\]
+m2_wbd_dat_i\[6\]
+m2_wbd_dat_i\[5\]
+m2_wbd_dat_i\[4\]
+m2_wbd_dat_i\[3\]
+m2_wbd_dat_i\[2\]
+m2_wbd_dat_i\[1\]
+m2_wbd_dat_i\[0\]
+m2_wbd_dat_o\[31\]
+m2_wbd_dat_o\[30\]
+m2_wbd_dat_o\[29\]
+m2_wbd_dat_o\[28\]
+m2_wbd_dat_o\[27\]
+m2_wbd_dat_o\[26\]
+m2_wbd_dat_o\[25\]
+m2_wbd_dat_o\[24\]
+m2_wbd_dat_o\[23\]
+m2_wbd_dat_o\[22\]
+m2_wbd_dat_o\[21\]
+m2_wbd_dat_o\[20\]
+m2_wbd_dat_o\[19\]
+m2_wbd_dat_o\[18\]
+m2_wbd_dat_o\[17\]
+m2_wbd_dat_o\[16\]
+m2_wbd_dat_o\[15\]
+m2_wbd_dat_o\[14\]
+m2_wbd_dat_o\[13\]
+m2_wbd_dat_o\[12\]
+m2_wbd_dat_o\[11\]
+m2_wbd_dat_o\[10\]
+m2_wbd_dat_o\[9\]
+m2_wbd_dat_o\[8\]
+m2_wbd_dat_o\[7\]
+m2_wbd_dat_o\[6\]
+m2_wbd_dat_o\[5\]
+m2_wbd_dat_o\[4\]
+m2_wbd_dat_o\[3\]
+m2_wbd_dat_o\[2\]
+m2_wbd_dat_o\[1\]
+m2_wbd_dat_o\[0\]
+m2_wbd_ack_o
+m2_wbd_err_o
+m2_wbd_cyc_i
diff --git a/signoff/wb_interconnect/final_summary_report.csv b/signoff/wb_interconnect/final_summary_report.csv
index 7b4b696..3eb297f 100644
--- a/signoff/wb_interconnect/final_summary_report.csv
+++ b/signoff/wb_interconnect/final_summary_report.csv
@@ -1,2 +1,2 @@
,design,design_name,config,flow_status,total_runtime,routed_runtime,(Cell/mm^2)/Core_Util,DIEAREA_mm^2,CellPer_mm^2,OpenDP_Util,Peak_Memory_Usage_MB,cell_count,tritonRoute_violations,Short_violations,MetSpc_violations,OffGrid_violations,MinHole_violations,Other_violations,Magic_violations,antenna_violations,lvs_total_errors,cvc_total_errors,klayout_violations,wire_length,vias,wns,pl_wns,optimized_wns,fastroute_wns,spef_wns,tns,pl_tns,optimized_tns,fastroute_tns,spef_tns,HPWL,routing_layer1_pct,routing_layer2_pct,routing_layer3_pct,routing_layer4_pct,routing_layer5_pct,routing_layer6_pct,wires_count,wire_bits,public_wires_count,public_wire_bits,memories_count,memory_bits,processes_count,cells_pre_abc,AND,DFF,NAND,NOR,OR,XOR,XNOR,MUX,inputs,outputs,level,EndCaps,TapCells,Diodes,Total_Physical_Cells,suggested_clock_frequency,suggested_clock_period,CLOCK_PERIOD,SYNTH_STRATEGY,SYNTH_MAX_FANOUT,FP_CORE_UTIL,FP_ASPECT_RATIO,FP_PDN_VPITCH,FP_PDN_HPITCH,PL_TARGET_DENSITY,GLB_RT_ADJUSTMENT,STD_CELL_LIBRARY,CELL_PAD,DIODE_INSERTION_STRATEGY
-0,/project/openlane/wb_interconnect,wb_interconnect,wb_interconnect,Flow_completed,0h6m41s,0h2m46s,5652.173913043478,0.46,2826.086956521739,5,561.93,1300,0,0,0,0,0,0,0,8,0,0,0,561231,17243,0.0,0.0,0.0,0.0,-0.22,0.0,0.0,0.0,0.0,-0.4,511843016,0.0,47.22,10.06,35.71,0.16,-1,1054,1627,210,783,0,0,0,1300,247,0,75,14,115,0,0,181,436,422,10,130,5454,0,5584,97.84735812133071,10.22,10,AREA 0,4,50,1,50,153.18,0.32,0,sky130_fd_sc_hd,4,4
+0,/project/openlane/wb_interconnect,wb_interconnect,wb_interconnect,Flow_completed,0h6m17s,0h2m46s,6500.0,0.4,3250.0,6,540.84,1300,0,0,0,0,0,0,0,9,0,0,0,465926,16959,0.0,0.0,0.0,0.0,-0.04,0.0,0.0,0.0,0.0,-0.04,407751231,0.0,46.13,11.88,29.14,0.34,-1,1054,1627,210,783,0,0,0,1300,247,0,75,14,115,0,0,181,436,422,10,130,4719,0,4849,99.60159362549801,10.04,10,AREA 0,4,50,1,50,153.18,0.32,0,sky130_fd_sc_hd,4,4
diff --git a/verilog/rtl/digital_core/src/digital_core.sv b/verilog/rtl/digital_core/src/digital_core.sv
index 5d37e27..d80af75 100644
--- a/verilog/rtl/digital_core/src/digital_core.sv
+++ b/verilog/rtl/digital_core/src/digital_core.sv
@@ -84,14 +84,8 @@
parameter WB_WIDTH = 32 // WB ADDRESS/DARA WIDTH
) (
`ifdef USE_POWER_PINS
- inout vdda1, // User area 1 3.3V supply
- inout vdda2, // User area 2 3.3V supply
- inout vssa1, // User area 1 analog ground
- inout vssa2, // User area 2 analog ground
inout vccd1, // User area 1 1.8V supply
- inout vccd2, // User area 2 1.8v supply
inout vssd1, // User area 1 digital ground
- inout vssd2, // User area 2 digital ground
`endif
input logic wb_clk_i , // System clock
input logic user_clock2 , // user Clock
diff --git a/verilog/rtl/user_project_wrapper.v b/verilog/rtl/user_project_wrapper.v
index 8e7547b..303a53d 100644
--- a/verilog/rtl/user_project_wrapper.v
+++ b/verilog/rtl/user_project_wrapper.v
@@ -85,14 +85,8 @@
digital_core u_core (
`ifdef USE_POWER_PINS
- .vdda1(vdda1), // User area 1 3.3V power
- .vdda2(vdda2), // User area 2 3.3V power
- .vssa1(vssa1), // User area 1 analog ground
- .vssa2(vssa2), // User area 2 analog ground
.vccd1(vccd1), // User area 1 1.8V power
- .vccd2(vccd2), // User area 2 1.8V power
.vssd1(vssd1), // User area 1 digital ground
- .vssd2(vssd2), // User area 2 digital ground
`endif
.wb_clk_i(wb_clk_i),