Run report_disabled_edges to make sure the clock t...
# timing-closure
t
Run report_disabled_edges to make sure the clock tree is not broken by loops. If report_checks does not show any paths then the design is completely unconstrained.
m
At top level caravel or for the small designs? And how to run the report? Also the scan chain clock is generated by scan controller, it's not the top level caravel/wishbone clock
@Tom Spyrou can you clarify?
With the work tnt has done the thing I want most is help with a caravel level sdc file for checking the scan chain with all the small designs
t
you can run report_disabled_edges on any design. Just modify the openroad script in openlane and add it right after synthesis in the synthesis tcl or in the final report tcl. That way it will run for your block runs and the top run. You can also run check_setup in those same scripts to do sanity checks on the SDC.
check_setup [-verbose] [-unconstrained_endpoints] [-multiple_clock] [-no_clock] [-no_input_delay] [-loops] [-generated_clocks] [> filename] [>> filename] -verbose -unconstrained_endpoints Show offending objects rather than just error counts. Check path endpoints for timing constraints (timing check or set_output_delay). Check register/latch clock pins for multiple clocks. Check register/latch clock pins for a clock. Check for inputs that do not have a set_input_delay command. Check for combinational logic loops. Check that generated clock source pins have been defined as clocks.-multiple_clock -no_clock -no_input_delay -loops -generated_clocks The check_setup command performs sanity checks on the design. Individual checks can be performed with the keywords. If no check keywords are specified all checks are performed