跳转到主要内容

在云端加速FPGA回归项目,只需一个Tcl指令

judy 提交于

严谨的软硬件开发都会有一套回归测试。连续的整合,每日自动测试,以及手动执行脚本等等 –—— 这一系列方法可以让开发人员来定义、创建、运行验证环节,从而决定产品的质量、性能和可靠性。

本文将聚焦那些需要多次FPGA设计编译的测试,以及如何缩短周转时间同时保证测试平稳运行。

1. 使用云服务器来加速编译

如果您有多个 FPGA 设计和参数组合,而且编译机器的数量又有限,运行测试编译是十分困难的。您需要手写脚本来自动运行编译,但是随着您添加特征和用例,总会有越来越多的情况需要测试。随着测试数量的增加,很多工程师都说每当测试设计的编译结束的时候,下一轮的回归周期又要开始了。由此可见,这种情况让测试范围很受限制,同时为了发布新产品,周转时间的要求也十分严峻。

比方说,同样的一个总设计,您有五个不同的设计版本。那么对于每次回归的编译,我们有
set design_list [list "A/A.xpr" "B/B.xpr" "C/C.xpr" "D/D.xpr" "E/E.xpr"]
foreach each_design $design_list {
open_project "$each_design"
reset_run synth_1
launch_runs synth_1 impl_1
wait_on_run impl_1
close_project
}

如果每个设计花费四小时,那么把每个编译上传到不同的机器来进行,可以节省大量的时间。回归的脚本大部分都是根据所测试的产品而专门写的,所以在脚本上的改变应该越小越好。没有人想把每个要提升的环节都打破。

有了这些考量之后,我们在 FPGA Expansion Pack 上开发了支持 Tcl 的能力。FPGA Expansion Pack 是一个 Vivado 的插件,可以让用户使用亚马逊的云服务器来进行高性能的编译。

2. 什么是 FPGA Expansion Pack (FEP)?
FEP 囊括了一系列自动化脚本和云端工具,它让用户可以通过图形界面或 Tcl 指令来早云端编译 FPGA 设计。用户也可以轻松的从云端将结果下载回来,与本地运行的体验完全一样。<strong><a href="https://cloud.plunify.com/register?lang=CN&amp;utm_source=WeChat2018092…; target="_blank">注册好 Plunify Cloud 账户</a></strong>后,您可以在<a href="https://cloud.plunify.com/downloads?lang=CN&amp;utm_source=WeChat201809…; target="_blank"><strong>这里下载 FEP 的安装包</strong></a>。

3. 如何使用云端 Tcl API?
我们继续前面案例。下面的代码可以让您使用FEP Tcl API 来在云端编译:
foreach each_design $design_list {
fep::runCloudCompile -project "$each_design" -serverclass 3
}

每一个设计都会上传到一个不同的云服务器,所以编译会并行运行。

FEP 有一个 Tcl API,可以让您最小化地修改现有脚本,编译项目的示例如下:
fep::runCloudCompile -project "/home/user2002/bft_2017_2/bft_2017_2.xpr" -serverclass "1"

在代码中,
-project 指向您项目地位置;
-serverclass 规定您所使用的编译机器类别。

这个指令同时会返回一个&ldquo;Job ID&rdquo;(任务ID),这是一串代表该云端编译地数字。关于指令的详细内容,请<a href="https://support.plunify.com/en/doc/fpga-expansion-pack/#3945?utm_source…; target="_blank">参考这里</a>。

4. 支持非项目模式
目前的方法可以将分项目模式转换成项目模式,使用“save_project_as”。这对于非项目的用户可能不够只管,但是却可以保证所有必要文件都上传到云端。

5. 技术总结
您可以使用一行 Tcl 指令将回归上传到云端。通过使用云服务器来完成每日的回归周期,您可以扩大测试范围。

如果您对 FEP 感兴趣,可以<strong><a href="https://cloud.plunify.com/register?lang=CN&amp;utm_source=WeChat2018092…; target="_blank">点击这里注册 Plunify Cloud 账户</a></strong>,然后在<a href="https://cloud.plunify.com/downloads?lang=CN&amp;utm_source=WeChat201809…; target="_blank"><strong>这里下载 FEP 的安装包</strong></a>。

文章转载自: <span id="profileBt"><a href="https://mp.weixin.qq.com/s?__biz=MzAxMzk0NTgyNQ==&amp;mid=2247484268&am…社区FPGA设计优化</a></span><a href="https://mp.weixin.qq.com/s?__biz=MzAxMzk0NTgyNQ==&amp;mid=2247484268&am…