6775|1

6892

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

hold_time violation? [复制链接]

大家好,我用DC对我的设计逻辑综合后,在modelsim中进行后仿真。我先对某个路径进行时序检查,得到下面结果:
dc_shell-t> report_timing -delay min -to ref_frame_array_u/w_addr_reg_9_/D

****************************************
Report : timing
        -path full
        -delay min
        -max_paths 1
Design : ME_and_MC
Version: V-2004.06-SP2
Date   : Sun Jul 25 12:51:16 2010
****************************************

# A fanout number of 1000 was used for high fanout net computations.

Operating Conditions: typical   Library: typical
Wire Load Model Mode: top

  Startpoint: ref_frame_array_u/w_addr_reg_9_
              (rising edge-triggered flip-flop clocked by clk)
  Endpoint: ref_frame_array_u/w_addr_reg_9_
            (rising edge-triggered flip-flop clocked by clk)
  Path Group: clk
  Path Type: min

  Des/Clust/Port     Wire Load Model       Library
  ------------------------------------------------
  ME_and_MC          tsmc18_wl40           typical

  Point                                                   Incr       Path
  --------------------------------------------------------------------------
  clock clk (rise edge)                                   0.00       0.00
  clock network delay (ideal)                             0.00       0.00
  ref_frame_array_u/w_addr_reg_9_/CK (DFFRX1)             0.00 #     0.00 r
  ref_frame_array_u/w_addr_reg_9_/Q (DFFRX1)              0.55       0.55 f
  ref_frame_array_u/add_27/A[9] (ref_frame_array_DW01_inc_13_0)
                                                          0.00       0.55 f
  ref_frame_array_u/add_27/U1_1_9/S (ADDHXL)              0.40       0.95 f
  ref_frame_array_u/add_27/SUM[9] (ref_frame_array_DW01_inc_13_0)
                                                          0.00       0.95 f
  ref_frame_array_u/U61/Y (AND2X2)                        0.23       1.19 f
  ref_frame_array_u/w_addr_reg_9_/D (DFFRX1)              0.00       1.19 f
  data arrival time                                                  1.19

  clock clk (rise edge)                                   0.00       0.00
  clock network delay (ideal)                             0.00       0.00
  clock uncertainty                                       0.10       0.10
  ref_frame_array_u/w_addr_reg_9_/CK (DFFRX1)             0.00       0.10 r
  library hold time                                      -0.06       0.04
  data required time                                                 0.04
  --------------------------------------------------------------------------
  data required time                                                 0.04
  data arrival time                                                 -1.19
  --------------------------------------------------------------------------
  slack (MET)                                                        1.14
此报告显示,这段路径没有hold_time violation。然后,我将.v网表和.sdf文件以及stand_cell的.v文件导入modelsim进行时序仿真,会出现下面的违例报告:
# ** Error: /export/home/st5/h.264/sim/tsmc18.v(7692): $hold( posedge CK &&& (flag == 1):5095 ns, negedge D:5095 ns, 500 ps );
#    Time: 5095 ns  Iteration: 2  Instance: :me_tb:ME_and_MC_u:ref_frame_array_u:w_addr_reg_9_
因此,比较迷惑,现在请教大家,该如何处理这类问题。下面是我从.sdf文件中截取的w_addr_reg_9_的时序信息:
(CELL
  (CELLTYPE "DFFRX1")
  (INSTANCE ref_frame_array_u/w_addr_reg_9_)
  (DELAY
    (ABSOLUTE
    (IOPATH (posedge CK) Q (0.805:0.805:0.805) (0.553:0.553:0.553))
    (IOPATH (negedge RN) Q () (0.460:0.460:0.460))
    (IOPATH (posedge CK) QN (0.771:0.771:0.771) (0.663:0.663:0.663))
    (IOPATH (negedge RN) QN (0.680:0.680:0.680) ())
    )
  )
  (TIMINGCHECK
    (WIDTH (posedge CK) (0.129:0.129:0.129))
    (WIDTH (negedge CK) (0.177:0.177:0.177))
    (SETUP (posedge D) (posedge CK) (0.077:0.077:0.077))
    (SETUP (negedge D) (posedge CK) (0.157:0.160:0.160))
    (HOLD (posedge D) (posedge CK) (-0.058:-0.059:-0.059))
    (HOLD (negedge D) (posedge CK) (-0.055:-0.059:-0.059))
    (SETUP (posedge RN) (posedge CK) (0.058:0.058:0.058))
    (HOLD (posedge RN) (posedge CK) (-0.038:-0.038:-0.038))
    (WIDTH (negedge RN) (0.192:0.192:0.192))
  )
)
下面是stand_cell的.v文件中DFFRX1的描述:
`timescale 1ns/1ps
`celldefine
module DFFRX1 (Q, QN, D, CK, RN);
output Q, QN;
input  D, CK, RN;
reg NOTIFIER;
supply1 xSN;

  buf   XX0 (xRN, RN);
  buf     IC (clk, CK);
  udp_dff I0 (n0, D, clk, xRN, xSN, NOTIFIER);
  and     I4 (flag, xRN, xSN);
  buf     I1 (Q, n0);
  not     I2 (QN, n0);

  specify
    specparam
    tplh$RN$Q  = 1.0,
    tphl$RN$Q  = 1.0,
    tplh$RN$QN  = 1.0,
    tphl$RN$QN  = 1.0,
    tplh$CK$Q = 1.0,
    tphl$CK$Q = 1.0,
    tplh$CK$QN = 1.0,
    tphl$CK$QN = 1.0,
    tsetup$D$CK = 1.0,
    thold$D$CK = 0.5,
    tsetup$RN$CK    = 1.0,
    thold$RN$CK    = 0.5,
    tminpwl$RN     = 1.0,
    tminpwl$CK    = 1.0,
    tminpwh$CK    = 1.0;


    if (flag)
      (posedge CK *> (Q +: D)) = (tplh$CK$Q,    tphl$CK$Q);
    if (flag)
      (posedge CK *> (QN -: D)) = (tplh$CK$QN,   tphl$CK$QN);
    $setuphold(posedge CK &&& (flag == 1), posedge D, tsetup$D$CK, thold$D$CK, NOTIFIER);
    $setuphold(posedge CK &&& (flag == 1), negedge D, tsetup$D$CK, thold$D$CK, NOTIFIER);
      (negedge RN *> (Q +: 1'b0)) = (tphl$RN$Q);
      (negedge RN *> (QN -: 1'b0)) = (tplh$RN$QN);
    $setuphold(posedge CK, posedge RN, tsetup$RN$CK, thold$RN$CK, NOTIFIER);
    $width(negedge RN, tminpwl$RN, 0, NOTIFIER);
    $width(negedge CK &&& (flag == 1), tminpwl$CK, 0, NOTIFIER);
    $width(posedge CK &&& (flag == 1), tminpwh$CK, 0, NOTIFIER);

   endspecify
endmodule // DFFRX1
`endcelldefine
大家看看,该如何处理这里问题啊!
此帖出自FPGA/CPLD论坛

最新回复

clock clk (rise edge)                                   0.00       0.00  clock network delay (ideal)                             0.00       0.00  clock uncertainty                                       0.10       0.10  ref_frame_array_u/w_addr_reg_9_/CK (DFFRX1)             0.00       0.10 r  library hold time                                      -0.06       0.04  data required time                                                 0.04clock没做约束吧已经违规了  详情 回复 发表于 2010-8-2 10:21
点赞 关注
个人签名一个为理想不懈前进的人,一个永不言败人!
http://shop57496282.taobao.com/
欢迎光临网上店铺!
 

回复
举报

569

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
clock clk (rise edge)                                   0.00       0.00
  clock network delay (ideal)                             0.00       0.00
  clock uncertainty                                       0.10       0.10
  ref_frame_array_u/w_addr_reg_9_/CK (DFFRX1)             0.00       0.10 r
  library hold time                                      -0.06       0.04
  data required time                                                 0.04


clock没做约束吧
已经违规了
此帖出自FPGA/CPLD论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
艾睿电子& Silicon Labs 有奖直播 | 全新蓝牙信道探测:从技术创新到实际应用
直播时间:3月12日(周三)上午10:00
直播奖励:多功能榨汁机、蓝牙音箱、手机支架

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表