mirror of
https://github.com/retroSoC/retroSoC.git
synced 2026-11-06 22:55:14 +00:00
fix: fix the wrong timing para for commercial flow
This commit is contained in:
2 files changed
+14
-4
No files matched your search
@@ -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] \
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in new issue
Block a user