62 lines
1.8 KiB
Tcl
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 设置周期 curr : 200MHz
set T 5
set_case_analysis 1 [get_ports MODE]
# 首先创建时钟
create_clock -name clk -period $T [get_ports CLK]
### note: ------ margin 余量约束设置严格一点
# 路径、器件等造成的延迟
set_clock_latency 1.2 [get_clocks clk]
# 边沿跳变的压摆率导致的延迟与不确定
set_clock_transition 0.4 [get_clocks clk]
# jitter抖动造成的不稳定
set_clock_uncertainty [expr $T*0.25] [get_clocks clk]
# reg_to_reg
# input/output_to_reg
# 告诉EDA模块外部有多大的延迟软件自动计算内部的延迟(设置的值一般都是经验值)
# Tclk-q : FF传输时间
# Tm : 最大外部延迟
# clk : 同步的时钟
# A : 输入的端口
# B : 输出的端口
# max 60% min 0
set InputMaxDelay [ expr $T * 0.6 ]
set OutputMaxDelay [ expr $T * 0.6 ]
#--Option
set InputMinDelay [ expr $T * 0 ]
set OutputMinDelay [ expr $T * 0 ]
set_input_delay $InputMaxDelay -max [all_inputs] -clock [get_clocks clk]
set_input_delay $InputMinDelay -min [all_inputs] -clock [get_clocks clk]
set_output_delay $OutputMaxDelay -max [all_outputs] -clock [get_clocks clk]
set_output_delay $OutputMinDelay -min [all_outputs] -clock [get_clocks clk]
# env attributes
# 导入模型的R&C让DC去估算延迟
# set_load [load of lib/cell_pin] [all_port]
# set_driving_cell -lib_cell and2a0 [all_port]
set_max_transition 0.5 [current_design]
# set_max_capacitance # 不必设置直接遵循lib里的约束即可
set_max_fanout 64 [current_design]
# false path
# set_false_path -from [get_ports RSTN]
#set_multicycle_path -setup 2 -from A -to B
#set_multicycle_path -hold 1 -from A -to B
set compile_enable_constant_propagation_with_no_boundary_opt false
set timing_enable_multiple_clocks_per_reg true
set enable_recovery_removal_arcs true
set_max_leakage_power 0
set_max_area 0