Semoce Semoce EDA DocumentationDocs Preview: in development

Engines Preview: in development

kala: static timing

Read the netlist, Liberty, SPEF and SDC, set up MMMC, apply CRPR and crosstalk-aware timing, and read WNS and TNS.

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, -through filters, SDC unit handling

Read the design

kala needs the gate-level netlist, the cell library and, after routing, the extracted parasitics.

TCL
set_pdk sky130
read_builtin_lib sky130
read_verilog design_net.v
set_top_module top
read_spef design.spef

To 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.

TCL
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_timing

Path groups

Path groups report and weight related paths together, for example register-to-register paths separately from I/O paths.

TCL
group_path -name reg2reg -from [all_registers] -to [all_registers]
group_path -name in2reg -from [all_inputs] -to [all_registers]
get_path_groups

Modes 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.

TCL
read_mmmc views.mmmc
update_timing
report_mmmc -verbose

CRPR

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.

TCL
report_crpr

Crosstalk-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.

TCL
extract_parasitics -si
update_timing
report_si
extract_parasitics -no_si

Report 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.

TCL
report_timing -nworst 10
report_timing -through [get_nets u_core/*]
report_timing -delay min -nworst 5
report_timing_summary

Read WNS and TNS

Slack is the required time minus the arrival time at an endpoint. Positive slack means the path meets timing.

TermMeaning
WNSWorst negative slack: the slack of the single worst endpoint. Zero or positive means every path meets timing.
TNSTotal 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.
TCL
report_wns
report_tns
report_global_timing
Semoce Semoce

Semoce EDA is in development. Commands and options may change before release.