您现在的位置: 主页 > 嵌入式处理器 > FPGA > 基于FPGA时序优化设计 - FPGA/ASIC技术 -
本文所属标签:
为本文创立个标签吧:

基于FPGA时序优化设计 - FPGA/ASIC技术 -

来源: 网络用户发布,如有版权联系网管删除 2018-08-11 

现有的工具和技术可帮助您有效地实现时序性能目标。

当您的FPGA 设计无法满足时序性能目标时,其原因可能并不明显。解决方案不仅取决于FPGA 实现工具为满足时序要求而优化设计的能力,还取决于设计人员指定前方目标,诊断并隔离下游时序问题的能力。目前,设计人员掌握了一些使用技巧,可以帮助您设置时钟;通过Synopsys Synplify Premier 等工具正确设置时序约束;然后调整参数,以满足赛灵思FPGA 设计的性能目标。

FPGA设计,视时序为一切

有多个攻克角度,其中包括:

•更好的设计设置,例如完整、准确的时序约束和时钟规格;

•节省时间的设计技术,例如仔细RTL编码,以求更佳的性能效果,以及将造成最大性能问题的设计部件整合在一起,从而缩短随后调整设计时序的迭代运行时间。

•综合关联,并布局布线时序,以产生更好的时序结果质量(QoR)和时序收敛。

现在从三个方面详细介绍一下这些技术,并检测如何使用以实现您的时序目标。

您需要确认您已经充分、完全地对您的设计进行约束,且未过度约束。

第一步:更好的设计设置

最大的成本开销来自于指定正确、完整的设计约束条件。这些约束条件可以在设计意图和设计性能目标与综合工具之间实现通信。综合设计之后,这些约束条件和关键路径信息将自动传递至Vivado®Design Suite布局布线(P&R)工具,以进一步确保满足时序要求。

综合工具可以帮助您应对设置综合前约束这项艰巨的任务。您的任务清单如下:

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软件执行的各项检查。

图1—初始Synplify综合输入约束文件可执行基础时钟设置并满足I/O约束要求。

 

首先,运行“语法检查”—即快速进行约束条件检查,其中包括其嵌入的“get_XX” 和 “all_XX”命令,用以发现和清理任何约束语法错误。错误会显示在日志文件中,并可以超链接至错误手册,以解释错误并提出修改建议。使用Tcl命令check_fdc_query。

第二,运行“综合检查”以检测与硬件相关的错误,例如错误编写的触发器。这些错误会以单独的日志文件报告。

第三,运行基础“快速综合”,以检查时钟设置问题,包括声明、衍生和推断时钟。快速综合支持执行时钟设置检查,因其可生成时钟报告和时序报告,进而使时钟设置问题明朗化。

一些综合工具可支持在“快速”模式下运行综合,其为了实现较短的运行时间,其会禁用一些综合优化。在Synplify Premier综合软件中,您可以通过以下命令实现:

set_opTIon –fast_synthesis 1

综合编译器将创建一个综合报告时钟总结,您可以使用其中有关推断时钟的信息用以识别、定义和约束时钟。

第四,运行全面的“约束条件检查”。该检查会查找关于时钟关系、未约束开始/结束点、未锁定I/O和无约束I/O的约束设置问题。

一个全面的约束检查还会查找正确应用的约束和实例名称。例如,它会标记出应用于不存在或无效参数和对象的时序约束。然后该工具会针对不可应用的约束和未找到的实例生成详细的解释性报告,以便纠正约束文件。Synplify综合工具将在综合预先映射阶段自动运行这些检查,或者您可以在综合开始时使用以下TCL命令运行约束检查:

TCL: project -run constraint_check



              查看评论 回复



嵌入式交流网主页 > 嵌入式处理器 > FPGA > 基于FPGA时序优化设计 - FPGA/ASIC技术 -
 

"基于FPGA时序优化设计 - FPGA/ASIC技术 -"的相关文章

网站地图

围观()