如何发现FPGA设计中的时序问题.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何发现并解决FPGA设计中的时序问题耗费数月精力做出的设计却无法满足时序要求,这确实非常令人伤心。然而,试图正确地对设计进行约束以保证满足时序要求的过程几乎同样令人费神。找到并确定时序约束本身通常也是非常令人头痛的问题。 时序问题的恼人之处在于没有哪种方法能够解决所有类型的问题。由于客户对于和现场应用工程师共享源代码通常非常敏感,因此我们通常都是通过将工具的潜力发挥到极致来帮助客户解决其时序问题。当然好消息就是通过这种方法以及优化RTL代码,可以解决大多数时序问题。 但在深入探讨之前,我们首先需要对时序问题进行一点基本分析。这里的目标是首先排除明显的问题,如将时钟引脚置于器件的上部、在器件下部驱动数字时钟管理器(DCM),然后再在器件上部驱动全局缓冲(BUFG)。 有时,此类引脚布局会导致根本没有办法满足时序要求。通过察看时序报告中的延迟,通常可以发现这些明显的时序问题。在这些情况下,为了解决这些明显的问题,都需要利用底层规划工具“floorplanner”将造成问题的部分锁定在适当的位置。底层布局规划工具还可以帮助以可视的方式来理解时序问题。 用最新工具进行时序分析 假设问题并非这么明显,那么为了锁定问题所在,需要了解所使用的器件系列以及软件版本。通常,每种器件系列对应一种最优的软件版本。如Xilinx Virtex-4器件对应的最佳软件是ISE软件9.2i版,而对Virtex-5 FPGA则是ISE软件10.1版。 综合工具的版本也很重要,因此当采用最新的器件架构时,下载并使用最新版软件非常重要。软件开发几乎总是滞后于硬件功能,因此我不提倡使用旧版软件进行基于新器件的设计。 然而,有些客户由于担心新的和未知的软件缺陷而不愿意升级软件。但是,在使用最新的器件时,如果希望更好地处理时序挑战,强烈建议下载最新版软件。 拥有了最适用于目标器件系列的软件,还需要确定最佳的实现选项。可惜,并没有适用于所有情况的超级选项组合。对于设计实现工具来说,有成千上万种不同的实现选项组合。根据所使用的实现选项不同,时序分数(即所有存在错误的时序路径与时序要求的差异总和,以皮秒表示)也会有很大不同。 赛灵思的几款工具可帮助确定适用于特定设计的最佳实现选项。ISE软件现在包括两个工具:Xplorer以及最近发布的SmartXplorer。SmartXplorer可充分发挥多处理器优点,能够以不同选项组合运行多个实施实例。 SmartXplorer需要Linux支持,但使用非常容易。其命令行很简单:smartxplorer designname.edn -p xc5vlx110t-1ff1136. 只要用户约束文件(UCF)和网表约束文件(NCF)文件名相同,SmartXplorer会自动使用正确的选项。唯一需要做的是编辑主机列表文件。 SmartXplorer可以通过SSH/rsh安全shell登录到其他机器。只需要在名为smartxplorer.hostlist的文件中将每台机器一行将机器名字添加进去就可以了。如果机器有两个处理器,请将机器列出两次。表1给出了SmartXplorer的一组结果。 表1:对基于Virtex-5 FPGA的设计SmartXplorer 10.1的一个例子。 PlanAhead软件也包括了与SmartXplorer类似的称为ExploreAhead的功能。ExploreAhead支持同时在多台Linux机器上分布式运行布局布线任务。所有这些工具的目的都是类似的:确定实现工具的最佳选项组合,以获得最好的时序得分。 请注意选项的不同组合对于时序得分和运行时间的巨大影响。仔细调整综合选项也非常重要。例如,在综合选项中关闭结构层次(hierarchy)通常会大大提高性能。综合过程中的约束条件好坏在满足时序方面的作用也很突出。 用PlanAhead分析时序 在了解实现选项对最佳时序分值的影响之后,现在可以开始有效地分析时序问题了。这时候,PlanAhead是一款非常有价值的工具,可以视觉化显示布局布线后的设计。利用它,还可以导入时序约束并在已布局窗口交叉探查(cross-probe)时序失败的路径。 当工具本身的决策不好时,则可以通过平面布局模块或通过手工布局部分组件的方式来纠正。这一过程通常需要反复多次,才能够确定时序优化的最佳设计布局方式。PlanAhead软件的可视化功能确实使这一工作的完成更容易了。 利用PlanAhead软件,首先创建项目(project),然后将HDL或网表文件导入工具中。一旦创建了一个项目,就可以选择“FileImport Placement”。选择时序优化效果最佳的布局布线后(ncd)文件,将布局布线信息导入PlanAhead软件项目。 软件会将PlanAhead项

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档