随着FPGA元件尺寸的增加和内部设计密度提升的需求,时序收敛面临前所未有的挑战。由于各种建置工具难以跟上日益复杂的FPGA元件设计,这也让完成不同设计建置所需的时间越来越长[1]。为了加快完成设计案的速度,有些设计人员正采用云端运算的方法,比较和分析不同建置选项和使用者规范决策带来的影响。
最近,我们在南非的科学及产业研究协会(CSIR)完成了这样的一个分析过程。我们采用Plunify公司的云端加速晶片设计方法,为我们的设计找到了既可提供最快完成建置的时间,而且可得到最佳时序评分的各项参数。在深入探讨更多分析细节及所使用的工具前,让我们先了解一些背景。
开发板升级
在最近一个专案中,我们需要将负责处理作业的Xilinx Virtex-5 FPGA更换成新一代Virtex-6元件以便升级现有的开发板。第一块开发板出现了几个问题,其中最严重的是目标应用所需的引脚(pinout)并不理想,而且元件尺寸过小,不能满足系统需求。
当时已有大部分可运作新型开发板所需的RTL程式码,可以说是占有绝对优势,因为这样可分析在PCB电路图设计的引脚分配阶段所作的决策。由于FPGA设计的建置作业需要较长的时间,因此必须限制PCB设计阶段中所执行的建构次数,以作出最终决策。
在设计硬体测试的阶段中,我们增加了一些原来Virtex-5开发板没有的功能。不出所料,这为布局和布线工具增加更多工作,因此我们进行了详细的布局规划,同时也执行了多次运作,目的是要找到最佳种子布局(placement seed)。最后我们决定采用Plunify公司的云端建置服务来管理我们所需的大量执行作业。
四个约束集
由于采用的是Plunify服务所提供的处理效能,所以我们决定运用四个不同的约束集来分析最终设计。前两个约束集共用相同的引脚,其中第一个约束集没有布局规划,而第二个则有一个详细的布局规划。在这两个约束集中选择的引脚是要复制我们在第一版开发板上所遇到引脚分配不当造成的问题;而另外两个约束集则共用新版开发板上元件的引脚,并采用同样的做法——其中一个约束集没有布局规划,而另一个则有详细的布局规划。
我们藉由这四种约束集来验证FPGA 引脚的改变是否会影响时序收敛的结果,以及单在第一版开发板上改变种子布局是否不足以达到时序规范要求。每个约束集执行100次建构,而且在1-100次中采用不同的种子布局。
采用工具
在FPGA设计软体方面,我们采用Xilinx ISE设计套件逻辑版本14.4来完成设计人员在现有工作流程中的各项任务,并在云端的环境完成合成和布局布线任务。
在前端,CSIR 的 Scineric Workspace(图一)以IP-XACT为基础,而且是一个快速的轻量级全新整合式开发环境,适用于FPGA设计管理。该工具采用全新「档案管理员」方法来进行设计管理,有助设计人员随时全面掌握设计的每个面向,而其多项设计融合功能可将Scineric整合到现有,而且使用者已设定偏好特定设计环境的工作流程中。
我们可使用Scineric Workspace图形介面载入ISE专案并在云端进行配置、提交和检索建构。然而,这个前端作业并非硬性要求,Plunify用户端也可顺畅地将Scineric Workspace整合到ISE和Vivado工作流程中。
![图一 : 将项目上传后的Scineric Workspace画面](/art/2014/04/281449559890/p1S.JPG)
图一 : 将项目上传后的Scineric Workspace画面 |
|
在后端,Plunify的FPGAAccel用户端是一个软体API,工程师们可通过它在远端伺服器上同时定义、分配和执行FPGA综合以及布局布线建构,并在完成所有建构后对结果进行分析。在这个例子中,我们采用一个云端运算伺服器群(server farm)执行400次建构的处理作业。 Scineric Workspace支援包括FPGAAccel用户端在内的多种配置。
图二显示了设计人员在工作中如何使用这些工具,其具体流程如下:
- 1. 开启Sceneric Workspace;
- 2. 汇入AE专案;
- 3. 为每个ISE专案设定100次实验。
- 4. 上传建构需求
- 5. 建构完成后,您会收到一封电子邮件通知。
- 6. 用您的工作ID登入到http://www.plunify.com查看报告。
- 7. 对各个ISE专案重复以上步骤。
Scineric Workspace可让用户从赛灵思ISE和Vivado专案以及IP-XACT元件定义档等多种来源里汇入设计。每个设计都可以有不多种建构配置,可让设计人员设定 Plunify实验定义,并可随后上传至Plunify。
Plunify 的外挂程式首先会对设计人员的身份进行认证,然后才会将ISE专案中的所有设计档进行加密。接下来,才会用安全的方法一起将档案与建构参数传输至远端伺服器群。 Plunify软体会在云端产生所需的建构,分配400台伺服器并运行ISE,以在每台伺服器上为各个不同的实验进行综合与布局布线。
同时完成400次建构
我们将这400次建构的结果用于多个标准测试,包括平均执行时间、不可布线的解决方案数量,以及最重要的可布线解决方案的时序评分。图三显示了四个约束集的时序评分分析结果。
我们透过四个约束集可再次证明目标应用的无效引脚会严重影响设计的时序评分。另外,我们可为该设计确定最佳的种子布局,并在这个特定案例中,我们了解到建置工具在不受布局规划引导的情况下能有最佳的表现。图四显示了四个约束集的执行时间。
从前,这样的作业需要30多天才能完成,但透过我们所说的方法,只需一天便能得到结果和分析。这个方法的另一个优点是全部资料都能由Plunify管理,这是当我们进行400次运作后从所产生(200千百万位元组)资料后才发现的。我们只需要下载感兴趣的特定执行作业的结果。
最佳时序评分
时序收敛在任何FPGA设计中都是重要的一环,而我们已经证明有很多参数都会对时序评分产生影响。藉由全新的工具和云端运算技术,我们可以比以往更快速地分析这些影响。我们能够明确了解哪种约束集和种子布局能为设计带来最佳的时序评分。透过使用最佳参数,我们可以了解执行中的建构能否达到其时序要求以继续下一阶段的系统开发。
(作者J.P. Naude为科学及产业研究协会(CSIR)硬体与FPGA设计师;Harnhua Ng为Plunify公司工程研发主管)