DDR SDRAM接口的示意圖:

CAC總線表示Command,Address,Control Pin,時序相對簡單,單向單周期,通過以下命令約束:
create_generated_clock -name DDRCLK \-source [get_pins UPLL0/CLKOUT] \-divide_by 1 \[get_ports DDRCLK]set_output_delay -max 0.75 -clock DDRCLK [get_ports CAC]set_output_delay -min -0.75 -clock DDRCLK [get_ports CAC]
DQ和DQS是同步對齊的,這是DDR的特點。DQS作為DQ的采樣時鍾,保證高速采樣頻率。
在進行讀操作時,對應的電路結構和波形如下圖:

可以這樣定義:
#工作頻率200MHzcreate_clock -period 5 -name DQS [get_ports DQS]#上升沿采樣時的delayset_input_delay 0.4 -max -clock DQS [get_ports DQ]set_input_delay -0.4 -min -clock DQS [get_ports DQ]#下降沿采樣時的delayset_input_delay 0.35 -max -clock DQS -clock_fall [get_ports DQ]set_input_delay -0.35 -min -clock DQS -clock_fall [get_ports DQ]#launch和capture在同一個沿set_multicycle_path 0 -setup -to UFF0/Dset_multicycle_path 0 -setup -to UFF5/D
在進行寫操作時,對應的電路結構和波形如下圖:

可以這樣定義:
create_clock -period 3 [get_ports CLK2X]create_generated_clock -name pre_DQS \-source CLK2X \-divide_by 2 \[get_pins UFF1/Q]create_generated_clock -name DQS \-source UFF1/Q \-edge {1 2 3} \-edge_shift {1.5 1.5 1.5} \[get_ports DQS]set_output_delay -clock DQS -max 0.25 -rise [get_ports DQ]set_output_delay -clock DQS -max 0.4 -fall [get_ports DQ]set_output_delay -clock DQS -min -0.15 -rise [get_ports DQ]set_output_delay -clock DQS -min -0.12 -fall [get_ports DQ]
總之,DDR接口的時序SDC還算復雜,值得多研究一會。
