打印

时钟时序分析?

[复制链接]
2233|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
izefei|  楼主 | 2011-5-26 14:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
小弟这两天一直在看FPGA关于时钟时序方面的资料,像建立时间,保持时间,亚稳态等等,但是看了之后,还是搞不懂在Xilinx Constraints Editor里面到底怎么进行时钟约束。里面的具体某一项什么意思我也知道,可不知道怎么确定数值大小。

附图一个程序synthesize和implement后的报告:我不明白的是怎么根据图里面的这些值确定时钟约束的值。

(我也不知道我说的符不符合逻辑,感觉挺乱)。

截图00.jpg (15.96 KB )

截图00.jpg

截图01.jpg (80.54 KB )

截图01.jpg
评分
参与人数 1威望 +4 收起 理由
SuperX-man + 4

相关帖子

沙发
21IC之星| | 2011-5-26 14:39 | 只看该作者
[i=s] 本帖最后由 21IC之星 于 2011-5-26 15:19 编辑 [/i]

利用综合报告或映射后静态时序报告来判断约束是否可行

使用特权

评论回复
板凳
21IC之星| | 2011-5-26 14:47 | 只看该作者
FPGA全局时钟约束(Xilinx)

FPGAÈ«¾ÖʱÖÓÔ¼Êø(Xilinx).pdf

247.26 KB

使用特权

评论回复
地板
SuperX-man| | 2011-5-26 16:26 | 只看该作者
时钟约束,其实就是让你的时钟能够正确满足你的逻辑.
毕竟一个时钟其实也是有setup time的,而且根据你走线,当然会产生一定的delay.
约束就是对于这些因素进行校正.因为FPGA内部走线的途径很多,你不约束.就会自动布线.但是你加了约束就会按照你的要求布线.
举个简单的例子: 你上网搜索如何从你家去公司. 网站会给你很多选择,可能默认选择是公交.但是你加个时限,要在1小时到,那么可能就是地铁了,如果要求半小时到..估计就变出租了..这就算是约束吧

至于给你的那些时序报告,就对你的工程的情况给出了详尽的分析.例如最快能达到什么程度,最坏情况,后续驱动门电路等等信息.

使用特权

评论回复
5
izefei|  楼主 | 2011-5-26 20:51 | 只看该作者
谢谢大侠的资料,不过在“FPGA全局时钟约束”(P22)中我有一点不明白:OFFSET IN=T_data_In-T_clk_In(附图)表示什么意思,
OFFSET IN是表示时钟建立时间,它和等式右端什么关系。

3# 21IC之星

截图00.jpg (26.1 KB )

截图00.jpg

使用特权

评论回复
6
izefei|  楼主 | 2011-5-26 21:00 | 只看该作者
看了版主的解答后,思路稍微清晰点了,可有很多细节还不是很明白,麻烦版主看看我下对静态时序报告的解释对不对并指点迷津(不胜感激!)(我全局时钟period设的是20ns,pad to setup设的是5ns,clock to pad没设置)。

Slack:                  -0.372ns (requirement - (data path - clock path - clock arrival + uncertainty))
  Source:               rst (PAD)
  Destination:          data_port_0 (FF)
  Destination Clock:    clk_BUFGP rising at 0.000ns
  Requirement:          5.000ns
  Data Path Delay:      7.519ns (Levels of Logic = 2)
  Clock Path Delay:     2.147ns (Levels of Logic = 2)
  Clock Uncertainty:    0.000ns

我个人认为:
requirement表示设置的pad to setup。
data path delay表示data从soure到destination的延时。
clock path delay表示时钟从soure到destination的延时。
我不明白的是slack这个表达式表示什么意思,为什么它>0,时序就满足要求,否则就不满足。
4# SuperX-man

使用特权

评论回复
7
AutoESL| | 2011-5-27 12:53 | 只看该作者
对于6楼的问题:
接着4楼的那个例子讲讲我的理解吧:
现在是早上8点,上班时间是早上9点,这样从家到公司就是1个小时的时间,60分钟
假设:从家到公司坐公交需要50分钟, 你自己的钟表比正常的钟表快10分钟,不考虑路途中的不确定因素(堵车,公交坏了。。。)
这样:
requirement = 60
data path = 50
clock path = 10
clock arrival = uncertainty = 0

slack = (requirement - (data path - clock path - clock arrival + uncertainty)) = 60 - (50 - 10 - 0) = 20分钟
也就是说你有20分钟的余量,不会迟到了。

假如某一天你8点30才起床,这时你的requirement = 30, 其他不变:
slack = (requirement - (data path - clock path - clock arrival + uncertainty)) = 30 - (50 - 10 - 0) = -10分钟
很不幸,你要迟到了,因为你的余量时间是负10分钟
这时候为了避免迟到,你选择地铁,坐地铁从家到公司只要40分钟,这样算下来slack=0,也就是说你可以踩着点到公司。
所以说slack 〉= 0时你就不会迟到;否则迟到

使用特权

评论回复
8
izefei|  楼主 | 2011-5-27 13:37 | 只看该作者
本帖最后由 izefei 于 2011-5-27 13:48 编辑

谢谢高手。但是我感觉你打的这个比方里面好像有点问题。
这里面的requirement对应是建立时间,应该表示在我的时钟指向9点的时候,我已经到达公司的时间段吧?即我提前到达的时间段,也就是我的时钟指向9点的时间点和我刚到达公司的时间点之间的时间差。不知道我说的对不对。
7# AutoESL

使用特权

评论回复
9
edacsoft| | 2011-5-27 17:21 | 只看该作者
6# izefei

使用特权

评论回复
10
edacsoft| | 2011-5-27 17:30 | 只看该作者
Slack:                  -0.372ns (requirement - (data path - clock path - clock arrival + uncertainty))
  你确定这个公式是对的?
  应该少了Tsetup,即FF要求的建立时间。
  
  pad to setup即offset in约束,这个约束是discribe,将实测到的情况告诉工具。
  工具能否达到即slack>0,slack余量即margin.
  offset out是require,要求达到的目标。
  请仔细体会discribe和require,就知道该如何使用这两种约束了。

使用特权

评论回复
11
izefei|  楼主 | 2011-5-27 18:53 | 只看该作者
公式绝对错不了,是我从static timing report里复制过来的。
还有就是,这个requirement应该是就是pad to setup吧,我把global里面的pad to setup试了好几个数,这个requirement始终是和pad to setup保持一致的。
10# edacsoft

使用特权

评论回复
12
AutoESL| | 2011-5-27 23:11 | 只看该作者
13
AutoESL| | 2011-5-27 23:13 | 只看该作者
14
快乐出发| | 2011-5-27 23:46 | 只看该作者
学习了。

使用特权

评论回复
15
izefei|  楼主 | 2011-5-28 08:54 | 只看该作者
哎,各位大侠传给我的资料我都看了,都能理解。可我感觉static timing report里面的好像和这些资料上的表达不太一样,囧!!!!!!!!!!!!!!。

使用特权

评论回复
16
AutoESL| | 2011-5-28 09:57 | 只看该作者
大同小异

使用特权

评论回复
17
hjjnet| | 2011-5-28 19:11 | 只看该作者
用planahead试一下,planahead里面的timing analyze好好看一下,就能理解了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

80

帖子

1

粉丝