- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FPGA设计,视时序为一切
FPGA设计,视时序为一切
当您的FPGA 设计无法满足时序性能目标时,其原因可能并不明显。解决方案不仅取决于FPGA 实现工具为满足时序要求而优化设计的能力,还取决于设计人员指定前方目标,诊断并隔离下游时序问题的能力。目前,设计人员掌握了一些使用技巧,可以帮助您 设置时钟;通过Synopsys Synplify Premier 等工具正确设置时序约束;然后调整参数,以满足赛灵思FPGA 设计的性能目标。
有多个攻克角度,其中包括:
?更好的设计设置,例如完整、准确的时序约束和时钟规格;
?节省时间的设计技术,例如仔细RTL编码,以求更佳的性能效果,以及将造成最大性能问题的设计部件整合在一起,从而缩短随后调整设计时序的迭代运行时间。
?综合关联,并布局布线时序,以产生更好的时序结果质量(QoR)和时序收敛。
现在从三个方面详细介绍一下这些技术,并检测如何使用以实现您的时序目标。
您需要确认您已经充分、完全地对您的设计进行约束,且未过度约束。
第一步:更好的设计设置最大的成本开销来自于指定正确、完整的设计约束条件。这些约束条件可以在设计意图和设计性能目标与综合工具之间实现通信。综合设计之后,这些约束条件和关 键路径信息将自动传递至Vivado?Design Suite布局布线(PR)工具,以进一步确保满足时序要求。
综合工具可以帮助您应对设置综合前约束这项艰巨的任务。您的任务清单如下:
1.识别时钟
2.识别并创建时钟组和时钟关系
3.约束时钟
4.约束设计输入和输出
5.定义多周期路径和错误的路径
您需要确认已经充分、完全地对您的设计进行约束,且未过度约束。过度约束将导致运行时间延长,并有可能报告错误的关键路径。务必要指定多周期和错误路径,并对衍生时钟设置约束(define_path_delay, define_false_path)。
设置Vivado流程的初始约束文件由于约束条件设置工作非常困难,因此综合软件可以提供一个初始约束模版,其中的基础约束和语法可以作为此项工作的起点。例如,在Synplify综合软件中,运行TCL实用程序为特定的设计创建一个初始FDC文件:
TCL: create_fdc_template
图1给出了该流程将生成的约束文件(.fdc)的实例。该实例中,您可以看到声明时钟、时钟组(时钟之间的关系)和输入/输出延迟等关键项目已经纳入考虑范围。
针对Vivado Design Suite流程中约束设置的最佳实践在Vivado Design Suite流程中设置约束条件时,要确保进行以下操作:
?定义输入端口或与输入端口连接的网络上的所有基础时钟。
?定义黑盒输出引脚上的时钟。
?定义网络上生成的时钟。
?不要定义逻辑选通时钟。
?提供正确的时钟约束:不要过度约束,并确保将不相关的(又称异步)时钟放置在单独的时钟组中。
?定义时序例外,例如错误路径和多周期路径。
提示:在Vivado Design Suite中,时钟约束应尽量接近源时钟,而不是赛灵思 ISE? Design Suite流程中的BUFG。
确保您的约束条件正确无误我们建议在设计设置阶段采用四种约束验证技术。为了让您了解应该做的约束检查类型,我们来看一下Synplify软件执行的各项检查。
首先,运行“语法检查”—即快速进行约束条件检查,其中包括其嵌入的“get_XX” 和 “all_XX”命令,用以发现和清理任何约束语法错误。错误会显示在日志文件中,并可以超链接至错误手册,以解释错误并提出修改建议。使用Tcl命令 check_fdc_query。
第二,运行“综合检查”以检测与硬件相关的错误,例如错误编写的触发器。这些错误会以单独的日志文件报告。
第三,运行基础“快速综合”,以检查时钟设置问题,包括声明、衍生和推断时钟。快速综合支持执行时钟设置检查,因其可生成时钟报告和时序报告,进而使时钟设置问题明朗化。
一些综合工具可支持在“快速”模式下运行综合,其为了实现较短的运行时间,其会禁用一些综合优化。在Synplify Premier综合软件中,您可以通过以下命令实现:
set_option –fast_synthesis 1
综合编译器将创建一个综合报告时钟总结,您可以使用其中有关推断时钟的信息用以识别、定义和约束时钟。
第四,运行全面的“约束条件检查”。该检查会查找关于时钟关系、未约束开始/结束点、未锁定I/O和无约束I/O的约束设置问题。
一个全面的约束检查还会查找正确应用的约束和实例名称。例如,它会标记出应用于不存在或无效参数和对象的时序约束。然后该工具会针对不可应用的约束 和未找到的实例生成详细的解释性报告,以便纠正约束文件。Synplify综合工具将在综合预先映射阶段自动运行这些检查,或者您可以在综合开始时使用以 下
文档评论(0)