在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5357|回复: 10

[求助] 请教FPGA中建立时间违例的解决方法

[复制链接]
发表于 2014-12-12 20:50:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 sqqwm 于 2014-12-12 20:53 编辑

各位前辈、朋友,大家好,我最近有个FPGA项目中经常出现建立时间违例,请问这种违例应该怎么处理?我有点摸不着头脑,请给指个路,比如是不是扇入扇出太多?
问题如下:




  1. Paths for end point DDR2_arb/rd_line_number_3 (SLICE_X19Y67.B3), 288 paths
  2. --------------------------------------------------------------------------------
  3. Slack (setup path):     -0.095ns (requirement - (data path - clock path skew + uncertainty))
  4.    Source:               DDR2_arb/read_state_3 (FF)
  5.    Destination:          DDR2_arb/rd_line_number_3 (FF)
  6.    Requirement:          7.575ns
  7.    Data Path Delay:      7.539ns (Levels of Logic = 8)
  8.    Clock Path Skew:      -0.018ns (0.296 - 0.314)
  9.    Source Clock:         GCLK_DDR rising at 0.000ns
  10.    Destination Clock:    GCLK_DDR rising at 7.575ns
  11.    Clock Uncertainty:    0.113ns
  12.   
  13.    Clock Uncertainty:          0.113ns  ((TSJ^2 + DJ^2)^1/2) / 2 + PE
  14.      Total System Jitter (TSJ):  0.070ns
  15.      Discrete Jitter (DJ):       0.214ns
  16.      Phase Error (PE):           0.000ns
  17.   
  18.    Maximum Data Path at Slow Process Corner: DDR2_arb/read_state_3 to DDR2_arb/rd_line_number_3
  19.      Location             Delay type         Delay(ns)  Physical Resource
  20.                                                         Logical Resource(s)
  21.      -------------------------------------------------  -------------------
  22.      SLICE_X15Y66.CMUX    Tshcko                0.518   DDR2_arb/read_state[12]_GND_50_o_equal_249_o
  23.                                                         DDR2_arb/read_state_3
  24.      SLICE_X15Y68.B1      net (fanout=22)       0.804   DDR2_arb/read_state<3>
  25.      SLICE_X15Y68.B       Tilo                  0.259   DDR2_arb/read_state<4>
  26.                                                         DDR2_arb/read_state[12]_GND_50_o_equal_251_o<12>11
  27.      SLICE_X15Y68.A5      net (fanout=9)        0.284   DDR2_arb/read_state[12]_GND_50_o_equal_251_o<12>1
  28.      SLICE_X15Y68.A       Tilo                  0.259   DDR2_arb/read_state<4>
  29.                                                         DDR2_arb/read_state[12]_GND_50_o_equal_253_o<12>21
  30.      SLICE_X17Y66.C5      net (fanout=9)        0.647   DDR2_arb/read_state[12]_GND_50_o_equal_253_o<12>2
  31.      SLICE_X17Y66.C       Tilo                  0.259   one_cal_new_2/ch_fifo_din<3>
  32.                                                         DDR2_arb/read_state[12]_PWR_35_o_equal_258_o<12>1
  33.      SLICE_X17Y66.A6      net (fanout=15)       0.368   DDR2_arb/read_state[12]_PWR_35_o_equal_258_o
  34.      SLICE_X17Y66.A       Tilo                  0.259   one_cal_new_2/ch_fifo_din<3>
  35.                                                         DDR2_arb/read_state[12]_rd_row_number[8]_select_263_OUT<0>111_SW1
  36.      SLICE_X17Y67.C3      net (fanout=1)        0.542   DDR2_arb/N150
  37.      SLICE_X17Y67.CMUX    Tilo                  0.337   ch6_rd_ddr_fifo_data<23>
  38.                                                         DDR2_arb/read_state[12]_rd_row_number[8]_select_263_OUT<0>111
  39.      SLICE_X17Y67.A4      net (fanout=2)        0.764   DDR2_arb/read_state[12]_rd_row_number[8]_select_263_OUT<0>111
  40.      SLICE_X17Y67.A       Tilo                  0.259   ch6_rd_ddr_fifo_data<23>
  41.                                                         DDR2_arb/read_state[12]_rd_row_number[8]_select_263_OUT<0>112
  42.      SLICE_X19Y68.D6      net (fanout=3)        0.756   DDR2_arb/read_state[12]_rd_row_number[8]_select_263_OUT<0>11
  43.      SLICE_X19Y68.D       Tilo                  0.259   DDR2_arb/rd_line_number<8>
  44.                                                         DDR2_arb/read_state[12]_rd_line_number[8]_select_262_OUT<0>21
  45.      SLICE_X19Y67.B3      net (fanout=7)        0.592   DDR2_arb/read_state[12]_rd_line_number[8]_select_262_OUT<0>2
  46.      SLICE_X19Y67.CLK     Tas                   0.373   DDR2_arb/rd_line_number<5>
  47.                                                         DDR2_arb/read_state[12]_rd_line_number[8]_select_262_OUT<3>8
  48.                                                         DDR2_arb/rd_line_number_3
  49.      -------------------------------------------------  ---------------------------
  50.      Total                                      7.539ns (2.782ns logic, 4.757ns route)
  51.                                                         (36.9% logic, 63.1% route)


复制代码
错行了,图也贴出来
360软件小助手截图20141212205134.png
请教教我怎么看这个时序报告,谢谢各位啦
发表于 2014-12-13 21:11:14 | 显示全部楼层
回复 1# sqqwm

建立时间不够,可以将信号在时钟下打一拍试试
发表于 2014-12-13 21:43:12 | 显示全部楼层
回复 2# polozpt


   想问下楼上,这个打一拍具体怎么实现,是略过一个clk 吗?下一个clk再工作
 楼主| 发表于 2014-12-13 22:44:46 | 显示全部楼层
回复 2# polozpt
您的意思是把建立时间不够的信号在通过一级寄存器后,在使用,对吗?另外上面的时序报告应该怎么看?
发表于 2014-12-14 14:52:33 | 显示全部楼层
给这条路径上加约束max delay之类的,看能不能有所提高

SLICE_X15Y68.B1      net (fanout=22)       0.804   DDR2_arb/read_state<3>
类似上面的一些节点扇出太多,延迟较大,可以尝试手动局部PR等能否减少一些延迟

尝试修改RTL代码,用更简单优化的底层描述,与或逻辑之类的,然后重新综合

增加流水改变了系统设计,但是如果能接受,这个更方便容易一些
发表于 2014-12-14 17:10:19 | 显示全部楼层
帮你顶一下了
发表于 2014-12-14 20:24:45 | 显示全部楼层
Data path delay太大,在综合选项里边有个timing balance 选项 你选上 试试有用不
发表于 2014-12-15 15:22:57 | 显示全部楼层
有几个地方的扇出有点大
 楼主| 发表于 2015-1-1 21:12:28 | 显示全部楼层
回复 5# supercainiao


   谢谢
 楼主| 发表于 2015-1-1 21:13:23 | 显示全部楼层
回复 6# guiqix


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

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 16:49 , Processed in 0.036274 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表