《电子技术应用》

新的工具可简化FPGA综合

2013/8/5 15:03:43

大多数 FPGA 设计人员都充满热情地开展专业化问题解决和创造性工作,当然,他们工作压力也相当大,工作流程也非常单调乏味。幸运的是,EDA 公司和 FPGA 厂商不断开发新的工具和方法,推进繁琐任务的自动化,帮助设计团队集中精力做好创造性工作。下面我们就来看看 FPGA 工具流程的演进发展,了解一下现代 FPGA 团队是如何利用 RTL分析、约束生成和综合导向来减少设计迭代的。

如果您已经是一名 FPGA 设计专业人士,那么将拥有辉煌的职业发展前景,因为越来越多传统上需要 ASIC 实现的设计
现已改用 FPGA。随着新一代芯片工艺技术的推出,设计 ASIC的成本正呈几何级数增加。与此同时,FPGA 厂商则能利用最新工艺技术实现新一代产品,且不会让客户承担过重的成本负担。

但不容乐观的是,FPGA 设计相当复杂,需要跟 ASIC 流程一样复杂的工具流程,这往往需要整个设计团队的共同努力才能完成,而不能光靠一名设计人员。因此,FPGA 设计团队在着手ECO 或新项目之前应认真分析现有的工具套件。那么好消息呢?就是新一代EDA 工具如雨后春笋般涌出,可助他们一臂之力。设计人员可选择采用标准数据格式且易于安装和使用的工具,简化流程集成工作,而且能够在选定的平台(不管是 Windows 还是 Linux)上实现本机运行。

FPGA 工具流程的发展演进
这些年来,FPGA 设计日趋复杂,工具流程也随之发展,而且越来越像 ASIC流程。上世纪 90 年代,FPGA 流程(见
图 1 的流程 A)跟当时的简易 ASIC 流程一样,最初以 RTL 为基础,并采用综合及布局布线工具。随着设计变得进一步复杂化,FPGA 团队在流程中增加了时序分析功能,帮助客户确保设计能按指定的频率运行。今天的 FPGA已经发展为庞大的系统平台,设计团队通常要通过 RTL 分析来最小化设计迭代,并确保设计能够实现相应的性能目标。

图 1 - FPGA 工具流程随时间不断发展,越来越像 ASIC

进而言之,由于今天的 FPGA 设计项目非常庞大复杂,所以设计人员需要想尽一切办法更好地了解设计的规模和复杂性,以便更好地控制流程中的工具,加速设计上市进程。现代FPGA 设计团队正在采用一种新型方法,那就是在整个设计流程中贯穿约束机制。我们不妨看看当下最流行的、现已得到赛灵思最新 Vivado ™ 流程支持的一种约束方法——Synopsys 设计约束 (SDC) 格式,以及了解如何通过 SDC 让设计项目受益。

什么是 SDC ?
SDC 是一款基于 Tcl 的格式,可用来设定设计目标,包括设计的时序、功耗和面积约束。一些产品能读取或写入 SDC。一些示例 SDC 约束包括时序约束(如创建时钟、创建生成时钟、设置输入延迟和设置输出延迟)和时序例外(如设置错误路径、设置最大延迟、设置最小延迟以及设置多周期路径)。这些 SDC 约束通常应用于寄存器、时钟、端口、引脚和网络(连线)等设计对象。

需要指出的是,尽管 SDC 是标准化格式,但生成的 SDC 和读取 SDC之间还是略有差异(不同工具之间有差异)。了解这些差异并积极采取措施,有助于避免意外情况的发生。

SDC 不应过于复杂
SDC 最常见的应用就是约束综合。一般说来,设计人员要考虑设计的哪些方面需要约束,并为其编写 SDC。设计人员通常要执行流程 B 中描述的流程,首次肯定无法进行时序收敛。随后要反复手动盲目尝试添加 SDC,以实现时序收敛,或让设计能在指定的频率上工作。许多从事过上述工作的设计人员都抱怨说设计迭代要花好几个星期,往往会拖延设计进程。

迭代的另一个问题在于,数名设计人员可能在不同的地点为 SDC 设计不同的模块。这样设计工作会变得非常复杂,设计团队必须想办法验证SDC,避免在芯片级封装阶段出现层级名称的冲突。要确保进行有效的设计协作,就必须采用适当的工具和方法。

流程 C 是现代化流程,除了流程B 的工具之外还采用了分析、SDC 约束和高层次综合技术,在解决上述问题方面发挥了重大作用。

综合向导
对典型的 FPGA 设计而言,综合解决方案还处于探索阶段,不管是面积、速度还是功耗的优化,都存在多个局部最大值和局部最小值。利用智能向导,我们能实现最佳解决方案,避免综合工具聚集到任意的局部最小值。最有效的向导之一就是采用错误路径和多周期路径,避免综合工具为不必要的组件浪费宝贵的优化时间。

不过,找到设计中的所有错误路径 (FP) 和多周期路径 (MCP) 并不容易。花上足够的时间,我们能找到一些简单的 FP 和 MCP,不过一些涉及状态机和计数器的复杂 FP 和 MCP(特别是在多个层级中)则很难找到。幸运的是,FPGA 设计人员可采用Blue Pearl Software 等创新公司推出的工具执行自动化 FP 和 MCO 生成,从而确保完整性、全面性和准确性。此外,这些工具还能为每个 FP 和MCP 提供不同的机制,包括原理图、断言和审核路径,从而让用户验证其正确性。

由于 FPGA 厂商和商用 EDA 厂商的合作进一步加强,采用通用接口,设计团队就能够将 Blue Pearl 软件套件集成到他们所青睐的工作流程中。既然赛灵思的最新 Vivado 设计套件支持 SDC,那么在不同工具之间沟通设计意图就变得极其简单(图 2)。

图 2 - Blue Pearl 软件套件与赛灵思的 Vivado 设计套件如何协同工作。

除了与赛灵思及其他 FPGA 厂商协作外,Blue Pearl 公司还同Synopsys 开展密切合作。这两家公司共同研究如何让综合工具接受尽可能多的自动生成的 SDC,同时避免设计人员进行任何手动修改。由于 SDC 格式对不同工具的使用差异很小,因此工作团队快速明确命名方案是顺利实现互操作性的一大挑战。

这里的解决方案是在综合的第一阶段(编译)后截取映射名称,在 BluePearl 软件套件的 SDC 生成工具中使用名称(见图 3),并为综合工具的第二阶段(优化)提供适当的 SDC。该方法给 FPGA 设计人员提供了一个最佳解决方案,无需花时间处理格式化问题。

图 3 - Blue Pearl 软件可简化格式问题。

以下给出非优化型约束编写示例:
set_false_path -from
[get_cells
{i_tv80_core.SP[*]}] -to
[get_cells
{i_tv80_core.i_reg.RegsL}]
优化后则为:
set_false_path -from
[get_cells
{i_tv80_core.SP[*]}] -to
[get_cells
{i_tv80_core.i_reg.RegsL_2[
7:0]}]

能取得哪些实际的效果?
Blue Pearl 软件套件能实现一些任务的自动化, 设计人员对其结果质量(QoR) 很满意。表 1 显示了用 Blue Pearl 软件套件自动生成 SDC,能将示例设计的 QoR 提升 20%,该示例采用多个 IP 核,其中包括 Verilog 的R1200 和 VHDL 的 AES 加密。

表 1 - 两种运行相比较,反映出工作流程中添加 Blue Pearl 套件的优势

运行 1 未采用 Blue Pearl 软件,结果没有实现时序收敛。设计人员用RTL 设计或工具约束进行迭代以满足60MHz 的要求很容易就要花上好几个星期的时间。在运行 2 中,Blue Pearl软件套件几分钟就能生成 SDC,而自动生成的SDC 足以指导下游工具满足时序要求。

显然,对 FPGA 设计人员来说,降低压力、简化工作的一个好办法就是跟别人一样添加 RTL 分析、SDC 生成和综合向导工具。如欲了解更多信息,欢迎访问: www.bluepearlsoftware.com 。

继续阅读>>