微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > 问个pt 约束的问题

问个pt 约束的问题

时间:12-12 整理:3721RD 点击:
看到一个题,如图,条件如下:
如上图所示,请问 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
感谢各位的帮助。 :)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top