京微雅格重磅之作—新版FPGA/CAP设计套件Primace5.0
扫描二维码
随时随地手机看文章
简介
作为国内唯一一家具有完全自主知识产权的FPGA与可配置应用平台CAP(Configurable Application Platform)产品供应商,京微雅格一直在快节奏的改进与产品配套的软件开发环境。最近,新一代FPGA/CAP设计套件Primace5.0正式发布了。Primace5.0完整的支持了基于时序驱动的布局布线实现流程(Timing-Driven Placement&Routing Flow),提高了布局布线的成功率,减少了设计与验证时间。此外,Primace5.0还配套改进了Synopsys SDC兼容的设计约束输入界面, 方便用户更加准确高效的输入时序约束。配合新型的自动寻找最佳实现的优化工具iXplorer,Primace 5.0可以极大的加速用户设计时序收敛过程。为了方便用户准确描述设计,改善RTL 代码质量,Primace5.0新增了RTL Template功能,其中包括了常用的Verilog设计元素。Primace5.0还第一次完整支持了8051MCU的SoC仿真以及时序仿真(Timing Simulation)。相对上一代版本,新一代Primace显著改进了用户信息提示以及流程的稳定性。本文将简要介绍这些改进以及对用户使用体验的影响,并推荐几种可以有效改进设计流程,加速设计过程的方法。
Primace5.0主要新增/改善的功能
Primace5.0中基本设计流程保持了一贯的简洁的特点,如图1所示,主要包括设计输入(RTL编辑等),设计实现(综合、布局布线等),时序收敛(以静态时序分析为基础的设计、实现调整),以及码流下载和片上调试(DebugWare等)。
图1: Primace中FPGA/CAP开发流程
基于时序驱动的布局布线
时序驱动的布局布线是一种已经被广泛证明与接受的设计方法,设计人员通过描述设计的时序约束(包括核心频率约束,I/O约束,例外约束,特定路径约束,跨时钟域约束等)可以有效指导布局布线程序高效、高质量的完成设计实现。Primace5.0中接受的时序约束包括:
Basic Timing Path
Clock Setup/Hold, Falling edge
Tsu/Th, Tco, Tpd
Advanced Timing Path
False path
Generated clock
User edited sdc
时序约束输入辅助
为了方便用户可以准确高效的输入时序约束,Primace5.0还配套改进了兼容Synopsys SDC的设计约束输入界面。如下图所示:
图2: 选择时钟界面
图3:时钟约束设置界面
各类SDC最终汇总在统一的SDC约束文件里,用户可以集中编辑:
图4:SDC编辑界面
时序收敛工具iXplorer
配合新型的自动寻找最佳实现的优化工具iXplorer,用户可以极大的加速设计时序收敛过程。
图5:iXplorer配置界面
Primace5.0对iXplorer进行了多项重要改进。首先,引入了支持并行执行流程的新一代流程控制引擎,充分的利用了主流多核系统的计算资源。其次,新开发的新型fMAX扫描算法Range-Scan,在充分利用了并行计算优势的基础上,可以智能扫描时序约束(目前主要是时钟频率约束),用最短的时间寻找不同时序约束下设计实现的最佳fMAX。此外,iXplorer支持多种扫描结束条件,方便用户在多种需求下的灵活使用。最后,当用户得到最佳fMAX结果后,iXplorer提供了便捷的方式让用户把相应的约束条件设置到用户环境,从而可以得到相应的结果。
RTL模板
为了方便用户准确描述设计,改善RTL 代码质量,Primace5.0新增了RTL Template功能,其中包括了常用的Verilog设计元素。通过使用RTL Template,用户可以方便快捷的在设计中插入经过Primace软件验证的RTL代码,简化了用户设计输入过程并提高了设计代码质量。目前Primace RTL Template主要支持了以下几类设计元素:
通用语法(注释,编译器控制语法等)
可综合语法(目前仅支持Verilog可综合子集,以及Memory, Multiplier等可以自动推断的代码模式)
用户自定义模板
图6:RTL模板浏览界面
SoC仿真与时序仿真
Primace5.0还第一次完整支持了8051MCU的SoC仿真,以及时序仿真(Timing Simulation)。首先,通过简明易用的工程文件管理,方便用户对设计文件和测试平台文件进行编辑和管理;其次,引入了对8051MCU的SoC仿真支持,完全改变了过去调试8051MCU需要依赖第三方工具的调试模式,大大提升了用户SoC设计的调试效率,加快了用户SoC设计的整个验证和调试流程。最后,引入了对时序仿真的支持,为解决用户设计中遇到的时序收敛问题提供了一条全新的分析和调试的途径,加快了用户设计时序收敛的过程。
图7:仿真调用界面
流程及信息提示
相对上一代版本,新一代Primace显著改进了用户信息提示以及流程的稳定性。Primace 5.0对用户设计实现中各个阶段的流程信息重新进行了划分,将所有信息分为4类:命令信息,执行信息,警告信息和错误信息,对每一类信息逐条进行了编号,并引入了同类信息的折叠显示,方便用户通过流程信息了解设计实现的实时情况。此外,良好的用户信息分类和显示也提升了流程日志的可用性,进一步方便用户了解设计实现的过程。
图8:信息提示界面
使用技巧
时序约束设置方法
时序约束设置基本可以遵循先整体后局部,先高层后低层的规律分阶段、分步骤的逐步细化设置。用户可以按照以下顺序设置时序约束:
核心频率约束
通过约束每个时钟的时钟频率以及相位关系,可以完成基础的核心频率约束。目前Priamce5.0支持的这类约束包括Clock Setup,Clock Hold,Falling edge, Generated Clock。
I/O约束
I/O约束包括引脚分配位置、空闲引脚驱动方式、外部走线延时(InputDelay、OutputDelay)、上下拉电阻、驱动电流强度等。加入I/O约束后的时序约束,才是完整的时序约束。FPGA作为PCB上的一个器件,是整个PCB系统时序收敛的一部分。FPGA作为PCB设计的一部分,是需要PCB设计工程师像对待所有COTS器件一样,阅读并分析其I/O Timing Diagram的。FPGA不同于COTS器件之处在于,其I/O Timing是可以在设计后期在一定范围内调整的;虽然如此,最好还是在PCB设计前期给与充分的考虑并归入设计文档。正因为FPGA的I/O Timing会在设计期间发生变化,所以准确地对其进行约束是保证设计稳定可控的重要因素。许多在FPGA重新编译后,FPGA对外部器件的操作出现不稳定的问题都有可能是由此引起的。目前Primace5.0支持的这类约束包括Tsu,Th,Tco,Tpd。
时序例外约束
时序例外约束可以指出在全局约束下的特殊路径集合,使得最终的时序约束准确,严格。正确的应用例外约束可以提高时序分析报告质量,加快时序收敛过程。目前Primace5.0通过FalsePath来支持时序例外约束。
“好的时序是设计出来的,不是约束出来的”,好的约束必须以好的设计为前提。没有好的设计,在约束上下再大的功夫也是没有意义的。不过,通过正确的约束也可以检查设计的优劣,通过时序分析报告可以检查出设计上时序考虑不周的地方,从而加以修改。通过几次“分析-修改-分析”的迭代也可以达到完善设计的目标。应该说,设计是约束的根本,约束是设计的保证,二者是相辅相成的关系。
基于iXplorer的时序收敛方法
时序收敛(Timing Closure)指时序的不断逼近,原理是采用多次迭代(循环)的技术。因此时序收敛就是一个不断反复的过程,以确保设计中的每个路径都满足时序要求。iXplorer是京微雅格定义的,嵌入在Primace工具中的时序收敛设计流程。Primace有很多选项设置和策略,但是无法保证哪种选项或约束会对所有的设计带来最佳的效果。iXplorer技术能够帮助用户找到最佳的工具选项来实现时序要求或者找到设计的最高性能。iXplorer通过采用不同策略和选项来运行多个布局布线版本并找出满足时序要求的实现结果。目前iXplorer支持三种搜索算法来满足不同场景下的使用需求:
Target fMAX,用户指定期望的fMAX,启动iXplorer后,iXplorer开始尝试不同约束与选项,直到达到给定的fMAX停止。
Max Loop Count,用户指定最多iXplorer尝试不同约束与选项组合的次数,从给定次数的运行结果中找到最佳实现结果。
Ending Before Time,用户给定最晚结束时间,iXplorer会尽可能多的搜索约束与选项的组合,并在给定结束时间时停止。例如,用户可以设结束时间为第二天早上八点,然后在下班前启动,第二天上班时去查看结果。
iXplorer会用时序驱动的技术根据频率目标是否达到来加强或放松时序目标,这样就可以判断出所指定时钟域的最高频率限制。在优化结束后,用户可以从iXplorer报告中看到究竟哪种策略和选项对目前的设计是最佳的。
总结
Primace5.0是京微雅格最新发布的FPGA/CAP设计套件。本文简要介绍了Primace5.0包括基于时序驱动的布局布线等新功能,并针对时序收敛问题给出了两种基于Primace5.0的设计方法。限于篇幅,本文不能尽述Primace5.0对用户设计体验的改变,如果读者对Primace5.0有任何问题、意见或建议,请与京微雅格的销售支持联系。