Ask Your Question
0

timing时序有问题,一般你们建议怎么做?

asked 2019-04-22 05:18:15 -0600

fae gravatar image

timing时序有问题,一般你们建议怎么做?

edit retag flag offensive close merge delete

1 answer

Sort by » oldest newest most voted
0

answered 2019-06-18 22:21:34 -0600

nick qian gravatar image

updated 2019-06-19 03:14:49 -0600

Timing closure(时序收敛)是很多人关心的而又似乎不能穷尽的问题。按照一张表做完,就达到努力最大化了:

1)综合阶段:Synplify的retiming可以在综合阶段最大化性能,可以尝试;不需要过约束;
2)时序约束阶段:时序约束仍然是最重要的手段,确保所有时钟都得到合理约束,timing exception该写也要写;仔细检查报告,反复修改;
报告检查主要是定位问题在于 1)时钟skew或者uncertainty么? 2) logic delay么?3)net delay吗? 4) holding timing问题比setup timing问题更难搞,应该优先解决。
3)工具选项方面:
3.1)RTL里面的clock enable, set, 或者reset等信号的MAXFANOUT可以去掉,如果资源并不太紧张的话;
3.2)place
design directives (up to 10),physoptdesign iterations (Aggressive, Alternate directives).
3.3) 重要的clock, placedesign/physoptdesign 对重要的时钟setclockuncertainty 过约束0.500 ns
3.4) 增加timing QoR priority(group
path –weight)
3.5) 如果只有微小的改动,考虑使用 incremental compilation flow保护过去时序成果
以上选项根据vivado版本不同改动也很大,供参考,具体参见具体版本的文档。
4) Route和Place阶段的努力(这一阶段的努力需要多次尝试取得平衡,因为人工干预很多时候出现A好了B又坏了的问题, 需要反复迭代):
4.1) floorplan:充分了解设计的情况下划分pblock,引导布局工具;
4.2)LOC约束:指定某设计位于FPGA的某位置;
以上两点都需要小心应用,pblock不应该太多(1个或者稍微多点,比如指定某个模块不要跨SLR是个有效的办法)否则会打乱工具的算法;LOC不当会带来巨大的netdelay;

xilinx有个网页,有关于timing closure的一切: https://www.xilinx.com/support/docume...

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2019-04-22 05:18:15 -0600

Seen: 418 times

Last updated: Jun 19 '19