diff --git a/flow/designs/asap7/jpeg_lvt/rules-base.json b/flow/designs/asap7/jpeg_lvt/rules-base.json index 5304309a43..b888168d47 100644 --- a/flow/designs/asap7/jpeg_lvt/rules-base.json +++ b/flow/designs/asap7/jpeg_lvt/rules-base.json @@ -52,7 +52,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -120.0, + "value": -277.0, "compare": ">=" }, "globalroute__timing__hold__ws": { diff --git a/flow/designs/asap7/mock-alu/rules-base.json b/flow/designs/asap7/mock-alu/rules-base.json index b2a7eeaa9f..0311845814 100644 --- a/flow/designs/asap7/mock-alu/rules-base.json +++ b/flow/designs/asap7/mock-alu/rules-base.json @@ -28,7 +28,7 @@ "compare": "<=" }, "cts__timing__setup__ws": { - "value": -278.0, + "value": -310.0, "compare": ">=" }, "cts__timing__setup__tns": { @@ -48,7 +48,7 @@ "compare": "<=" }, "globalroute__timing__setup__ws": { - "value": -295.0, + "value": -320.0, "compare": ">=" }, "globalroute__timing__setup__tns": { @@ -80,11 +80,11 @@ "compare": "<=" }, "finish__timing__setup__ws": { - "value": -271.0, + "value": -306.0, "compare": ">=" }, "finish__timing__setup__tns": { - "value": -17200.0, + "value": -17500.0, "compare": ">=" }, "finish__timing__hold__ws": { diff --git a/flow/designs/asap7/uart/rules-base.json b/flow/designs/asap7/uart/rules-base.json index 256594da79..667777b4e6 100644 --- a/flow/designs/asap7/uart/rules-base.json +++ b/flow/designs/asap7/uart/rules-base.json @@ -28,11 +28,11 @@ "compare": "<=" }, "cts__timing__setup__ws": { - "value": -36.3, + "value": -55.2, "compare": ">=" }, "cts__timing__setup__tns": { - "value": -783.0, + "value": -1920.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -48,11 +48,11 @@ "compare": "<=" }, "globalroute__timing__setup__ws": { - "value": -48.7, + "value": -64.4, "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -1510.0, + "value": -2680.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -80,11 +80,11 @@ "compare": "<=" }, "finish__timing__setup__ws": { - "value": -37.8, + "value": -54.0, "compare": ">=" }, "finish__timing__setup__tns": { - "value": -840.0, + "value": -1860.0, "compare": ">=" }, "finish__timing__hold__ws": { diff --git a/flow/designs/nangate45/bp_be_top/rules-base.json b/flow/designs/nangate45/bp_be_top/rules-base.json index 1ff3e01973..a7c912ab0c 100644 --- a/flow/designs/nangate45/bp_be_top/rules-base.json +++ b/flow/designs/nangate45/bp_be_top/rules-base.json @@ -32,7 +32,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -19.8, + "value": -26.0, "compare": ">=" }, "cts__timing__hold__ws": { @@ -52,7 +52,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -23.8, + "value": -31.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -84,7 +84,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -24.4, + "value": -29.1, "compare": ">=" }, "finish__timing__hold__ws": { diff --git a/flow/designs/nangate45/ibex/rules-base.json b/flow/designs/nangate45/ibex/rules-base.json index a0a7b9c806..bc10d84126 100644 --- a/flow/designs/nangate45/ibex/rules-base.json +++ b/flow/designs/nangate45/ibex/rules-base.json @@ -52,7 +52,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -0.443, + "value": -1.69, "compare": ">=" }, "globalroute__timing__hold__ws": { diff --git a/flow/designs/nangate45/jpeg/rules-base.json b/flow/designs/nangate45/jpeg/rules-base.json index 77ce68793d..3ffe98ca42 100644 --- a/flow/designs/nangate45/jpeg/rules-base.json +++ b/flow/designs/nangate45/jpeg/rules-base.json @@ -32,7 +32,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -36.4, + "value": -37.0, "compare": ">=" }, "cts__timing__hold__ws": { diff --git a/flow/designs/sky130hd/jpeg/rules-base.json b/flow/designs/sky130hd/jpeg/rules-base.json index beaa90b067..42387f2c06 100644 --- a/flow/designs/sky130hd/jpeg/rules-base.json +++ b/flow/designs/sky130hd/jpeg/rules-base.json @@ -44,7 +44,7 @@ "compare": ">=" }, "globalroute__antenna_diodes_count": { - "value": 102, + "value": 163, "compare": "<=" }, "globalroute__timing__setup__ws": { diff --git a/flow/designs/sky130hd/microwatt/rules-base.json b/flow/designs/sky130hd/microwatt/rules-base.json index 5975158f30..ae784a91fc 100644 --- a/flow/designs/sky130hd/microwatt/rules-base.json +++ b/flow/designs/sky130hd/microwatt/rules-base.json @@ -72,7 +72,7 @@ "compare": "<=" }, "detailedroute__antenna__violating__nets": { - "value": 0, + "value": 1, "compare": "<=" }, "detailedroute__antenna_diodes_count": { diff --git a/flow/designs/sky130hs/ibex/rules-base.json b/flow/designs/sky130hs/ibex/rules-base.json index 642d4a3325..89211da5e2 100644 --- a/flow/designs/sky130hs/ibex/rules-base.json +++ b/flow/designs/sky130hs/ibex/rules-base.json @@ -32,7 +32,7 @@ "compare": ">=" }, "cts__timing__setup__tns": { - "value": -1.42, + "value": -2.9, "compare": ">=" }, "cts__timing__hold__ws": { @@ -52,7 +52,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -54.1, + "value": -140.0, "compare": ">=" }, "globalroute__timing__hold__ws": { @@ -84,7 +84,7 @@ "compare": ">=" }, "finish__timing__setup__tns": { - "value": -2.86, + "value": -33.4, "compare": ">=" }, "finish__timing__hold__ws": { diff --git a/flow/designs/sky130hs/riscv32i/rules-base.json b/flow/designs/sky130hs/riscv32i/rules-base.json index 3605a7cd10..4f3963bdda 100644 --- a/flow/designs/sky130hs/riscv32i/rules-base.json +++ b/flow/designs/sky130hs/riscv32i/rules-base.json @@ -52,7 +52,7 @@ "compare": ">=" }, "globalroute__timing__setup__tns": { - "value": -10.1, + "value": -11.1, "compare": ">=" }, "globalroute__timing__hold__ws": { diff --git a/flow/scripts/synth.tcl b/flow/scripts/synth.tcl index 0af28bd055..9864dbe281 100644 --- a/flow/scripts/synth.tcl +++ b/flow/scripts/synth.tcl @@ -34,6 +34,9 @@ proc get_dfflegalize_args { file_path } { source $::env(SCRIPTS_DIR)/synth_preamble.tcl read_checkpoint $::env(RESULTS_DIR)/1_1_yosys_canonicalize.rtlil +# Read in standard cell definitions before checking hierarchy. +source $::env(SCRIPTS_DIR)/synth_stdcells.tcl + hierarchy -check -top $::env(DESIGN_NAME) if { $::env(SYNTH_GUT) } { diff --git a/flow/scripts/synth_canonicalize.tcl b/flow/scripts/synth_canonicalize.tcl index 4ba62a4523..1b04a2c443 100644 --- a/flow/scripts/synth_canonicalize.tcl +++ b/flow/scripts/synth_canonicalize.tcl @@ -12,5 +12,9 @@ if { $::env(SYNTH_REPEATABLE_BUILD) } { setattr -unset src * setattr -mod -unset src * } + +# Strip away standard cell definitions to make the checkpoint smaller. +delete =A:\liberty_cell=1 + # The hash of this file will not change if files not part of synthesis do not change write_rtlil $::env(RESULTS_DIR)/1_1_yosys_canonicalize.rtlil