fix: fix the wrong timing para for commercial flow

This commit is contained in:
maksyuki committed 2026-08-24 07:39:09 +08:00
1 parent e0f6533d01
commit 23c80da792
2 files changed
+14 -4

No files matched your search

+4 -4
View File
@@ -66,12 +66,12 @@ proc run_synthesis {} {
flow::apply_constraints flow::apply_constraints
redirect [file join $report_dir check_design.pre.rpt] { check_design } redirect [file join $report_dir check_design.pre.rpt] { check_design }
redirect [file join $report_dir check_timing.pre.rpt] { redirect [file join $report_dir check_timing.pre.rpt] {
check_timing -verbose check_timing
} }
if {![check_design]} { if {![check_design]} {
flow::fail "pre-compile Design Compiler check_design failed" flow::fail "pre-compile Design Compiler check_design failed"
} }
if {![check_timing -include {no_clock unconstrained_endpoints}]} { if {![check_timing -include {unconstrained_endpoints}]} {
flow::fail "pre-compile timing constraints are incomplete" flow::fail "pre-compile timing constraints are incomplete"
} }
set_fix_multiple_port_nets -all -buffer_constants set_fix_multiple_port_nets -all -buffer_constants
@@ -89,7 +89,7 @@ proc run_synthesis {} {
check_design -summary check_design -summary
} }
redirect [file join $report_dir check_timing.rpt] { redirect [file join $report_dir check_timing.rpt] {
check_timing -verbose check_timing
} }
redirect [file join $report_dir timing.setup.rpt] { redirect [file join $report_dir timing.setup.rpt] {
report_timing -delay_type max -max_paths 1000 -input_pins -nets report_timing -delay_type max -max_paths 1000 -input_pins -nets
@@ -119,7 +119,7 @@ proc run_synthesis {} {
if {![check_design]} { if {![check_design]} {
flow::fail "Design Compiler check_design failed" flow::fail "Design Compiler check_design failed"
} }
if {![check_timing -include {no_clock unconstrained_endpoints}]} { if {![check_timing -include {unconstrained_endpoints}]} {
flow::fail "Design Compiler timing constraints are incomplete" flow::fail "Design Compiler timing constraints are incomplete"
} }
if {[flow::report_has_failure [file join $report_dir check_design.rpt] \ if {[flow::report_has_failure [file join $report_dir check_design.rpt] \
+10
View File
@@ -287,6 +287,16 @@ def test_dc_analyze_receives_one_source_list_argument() -> None:
assert "concat $analyze_command [dict get $rtl sources]" not in synthesis assert "concat $analyze_command [dict get $rtl sources]" not in synthesis
def test_dc_check_timing_uses_supported_options() -> None:
synthesis = (FLOW / "tcl/syn/main.tcl").read_text(encoding="utf-8")
assert synthesis.count("check_timing\n") == 2
assert "check_timing -verbose" not in synthesis
assert synthesis.count(
"check_timing -include {unconstrained_endpoints}"
) == 2
assert "no_clock" not in synthesis
def test_commercial_timing_contract_covers_canonical_domains(tmp_path: Path) -> None: def test_commercial_timing_contract_covers_canonical_domains(tmp_path: Path) -> None:
output = tmp_path / "commercial_timing_contract.tcl" output = tmp_path / "commercial_timing_contract.tcl"
subprocess.run( subprocess.run(