此示例展示了一个简单的 Tcl 脚本,可用于在 Timing Analyzer 用户界面中生成多角分析。多角分析用于验证为设计指定的时序约束是否满足设备的所有运行条件。下载或复制 Tcl 脚本,并在 "Timing Analyzer Console" 窗格中键入以下内容来运行脚本:
tcl> source multicorner.tcl
proc analyze { id } {
# Insert timing reports here
create_timing_summary -setup -panel_name "$id: Summary (Setup)"
create_timing_summary -hold -panel_name "$id: Summary (Hold)"
create_timing_summary -recovery -panel_name "$id: Summary (Recovery)"
create_timing_summary -removal -panel_name "$id: Summary (Removal)"
report_min_pulse_width -nworst 100 -panel_name "$id: Minimum Pulse Width"
}
# Create a timing netlist for analysis
create_timing_netlist
# Read in SDC file
read_sdc
# Determine the current & default operating conditions. The default is used
# to prevent re-analyzing the default condition while looping through the
# available operating conditions.
set default_operating_conditions [get_operating_conditions]
set current_operating_conditions $default_operating_conditions
# Generate the corner-specific analyses for the default operating
# conditions.
analyze $current_operating_conditions
# Now loop over the remaining operating conditions
foreach_in_collection current_operating_conditions \ [get_available_operating_conditions] {
# Make sure we don't re-analyze the default conditions.
if {$current_operating_conditions != $default_operating_conditions} {
# Generate the corner-specific analyses for the
# next operating conditions.
set_operating_conditions $current_operating_conditions
update_timing_netlist
analyze $current_operating_conditions
}
}
Tcl 脚本为设备的所有可用运行条件生成时序报告,此报告在 proc analyze 程序中定义。生成的所有报告在“Timing Analyzer 视图”窗格中标记为已过期,但为最后一个运行条件生成的最终报告除外。