问个pt 约束的问题
如上图所示,请问 A->FF2 是否需要检查timing,如果需要的话,请计算 A->FF2 的se
tup是否满足,slack=? 已知条件如下:
create_clock clk1 -period 10n
create_clock clk2 -period 40n
set_clock_uncertainty -setup 50p clk1
set_clock_uncertainty -setup 200p clk2
set_false_path -hold -from clk1 to clk2
set_false_path -hold -from clk2 to clk1
set_input_delay -clock clk2 1n A
library setup (FF1/FF2) = 150p
AOI delay = 0.5n
C1 delay = 8.5n
C2 delay = 5n
想弄个网表实际仿一下这个图。
网表test.vo,用的是smic .18里面的D触发器和AOI。
module test ( clk1, clk2, A, c2, Q );
input clk1, clk2, A, c2;
output Q;
wire ff1_q, ff2_d;
FFDQHD1X ff1 ( .D(c2), .CK(clk2), .Q(ff1_q) );
AOI21HD1X U2 ( .A(A), .B(ff1_q), .C(),.Z(ff2_d) );
FFDQHD1X ff2 ( .D(ff2_d), .CK(clk1), .Q(Q) );
endmodule
现在有些约束不知道怎么写,请大家指教。
c1 和 c2 这个要怎么约束才能起到5ns和8ns的延迟,怎么强制D触发器的setup时间为我
要的值。
我用set_max/min_delay来设置的话,report_timing的时候,end_point就变成只到AOI
的A输入口了。
这里set_max_delay 用得不对,求指教。 谢谢
用到的pt约束如下:
read_verilog test.vo
link
create_clock -name clk1 -period 10 [get_port clk1]
create_clock -name clk2 -period 40 [get_port clk2]
set_clock_uncertainty -setup 0.050 clk1
set_clock_uncertainty -setup 0.200 clk2
set_false_path -hold -from clk1 -to clk2
set_false_path -hold -from clk2 -to clk1
set_input_delay -clock clk2 1 [get_port A]
#set_max_delay -from [get_port c2] -to [get_pin ff1/D] 5
#set_min_delay -from [get_port c2] -to [get_pin ff1/D] 5
#set_max_delay -from [get_port A] -to [get_pin U2/A] 8.5
#set_min_delay -from [get_port A] -to [get_pin U2/A] 8.5
似乎第一段的答案是slack=-0.2ns
关于c1/c2和DFF的timing 表达,很多种方法啊,比如讲c1/c2用buffer代替,可以hack timing library或者吃一个fake sdf来改这些cell的timing
set_max_delay/min_delay会在timing path上插入断点,而且这两种SDC描述的是一种约束,而不是提供给cell的timing attribute。
用set_annoated_delay应该可以吧。命令可能不是太对,你能查到的。好久没用过pt了。命令都忘了。
嗯。你说的对。的确不能用set_max/min_delay
谢谢我明天试试看。看看是不是可以直接用,应该不需要弄个sdf吧
答案应该是-0.2ns没错。 hack lib或者弄fake sdf都有点麻烦。先看看另外一个建议:set_annotated_delay能起作用不
用 set_annotated_delay/check.算出来结果是-0.2ns.
Startpoint: A (input port clocked by clk2)
Endpoint: ff2 (rising edge-triggered flip-flop clocked by clk1)
Path Group: clk1
Path Type: max
Point Incr Path
---------------------------------------------------------------
clock clk2 (rise edge) 0.0000 0.0000
clock network delay (ideal) 0.0000 0.0000
input external delay 1.0000 1.0000 f
A (in) 0.0000 1.0000 f
U2/Z (AOI21HD1X) 9.0000 * 10.0000 r
ff2/D (FFDQHD1X) 0.0000 10.0000 r
data arrival time 10.0000
clock clk1 (rise edge) 10.0000 10.0000
clock network delay (ideal) 0.0000 10.0000
clock uncertainty -0.0500 9.9500
ff2/CK (FFDQHD1X) 9.9500 r
library setup time -0.1500 * 9.8000
---------------------------------------------------------------
data required time 9.8000
data arrival time -10.0000
---------------------------------------------------------------
slack (VIOLATED) -0.2000
感谢各位的帮助。 :)