In development Core analysis built; reference correlation pending.
kala checks that every path in a gate-level design meets its timing constraints. It runs as a batch script (kala -f sta.tcl) or an interactive shell (kala).
- MMMC: several modes and corners in one run
- CRPR (common clock path pessimism removal)
- Crosstalk-aware timing (
extract_parasitics -si), also used by the optimizer - Path groups,
-throughfilters, SDC unit handling
Read the design
kala needs the gate-level netlist, the cell library and, after routing, the extracted parasitics.
set_pdk sky130
read_builtin_lib sky130
read_verilog design_net.v
set_top_module top
read_spef design.spefTo analyse with a specific Liberty corner, read it with read_liberty.
Constraints
Read an SDC file with read_sdc or set the constraints directly. kala converts SDC time and capacitance units to its internal units, so files written for other tools read correctly.
create_clock -name clk -period 2000 [get_ports clk]
set_input_delay -max 200 -clock clk [all_inputs]
set_output_delay -max 200 -clock clk [all_outputs]
set_false_path -from [get_ports rst_n]
set_multicycle_path 2 -from [get_cells u_div*]
update_timingPath groups
Path groups report and weight related paths together, for example register-to-register paths separately from I/O paths.
group_path -name reg2reg -from [all_registers] -to [all_registers]
group_path -name in2reg -from [all_inputs] -to [all_registers]
get_path_groupsModes and corners (MMMC)
kala analyses several modes and corners in one run. Describe the views in a view file and load it with read_mmmc; report_mmmc prints the results for every view side by side.
read_mmmc views.mmmc
update_timing
report_mmmc -verboseCRPR
Common clock path pessimism removal credits back the delay of the clock path shared by launch and capture, which would otherwise be counted twice. report_crpr applies the credits and reports the corrected WNS and TNS.
report_crprCrosstalk-aware timing
extract_parasitics -si computes coupling between neighbouring wires and folds the extra delay into the timing windows. The optimizer uses the same data. -no_si turns it off for a quick comparison.
extract_parasitics -si
update_timing
report_si
extract_parasitics -no_siReport paths
report_timing lists the worst paths. -through limits the report to paths through a net or pin, and -delay min reports hold (shortest) paths instead of setup.
report_timing -nworst 10
report_timing -through [get_nets u_core/*]
report_timing -delay min -nworst 5
report_timing_summaryRead WNS and TNS
Slack is the required time minus the arrival time at an endpoint. Positive slack means the path meets timing.
| Term | Meaning |
|---|---|
| WNS | Worst negative slack: the slack of the single worst endpoint. Zero or positive means every path meets timing. |
| TNS | Total negative slack: the sum of slack over every failing endpoint. It shows how much work is left, not just how bad the worst path is. |
report_wns
report_tns
report_global_timing