目录
1. 什么是高层次综合,它又是如何影响 FPGA 技术?
2. labview FPGA 模块不已经是一种 HLS 工具了吗?
3. HLS 技术问题的挑战性究竟如何?
4. 基于 HLS 的开发途径还提供了哪些优势呢?
5. 何时才应该在 LabVIEW FPGA 模块中使用 LabVIEW FPGA IP Builder?
什么是高层次综合,它又是如何影响 FPGA 技术?
高层次综合(High-level synthesis - HLS)可以帮助各个领域的专家使用高级编程语言(例如 ANSI C、C++或者 LabVIEW 代码)来自动生成优化后的算法执代码对现场可编程逻辑门阵列(FPGA)进行编程。为了向更广泛的用户群提供一个可以显著提高 FPGA 设计效率的方法CONTROL ENGINEERING China版权所有,HLS 随之问世。使用传统的 FPGA 设计工具CONTROL ENGINEERING China版权所有,用户必须对硬件描述语言(HDL)非常地熟悉,并且在设计的每一步中都必须对 步骤进行分析和验证。FPGA 的容量飞速增长,而开发效率却并没有以与之相对应的比率增长,所以越高的工程应用复杂性就意味着越长的开发周期。
使用高级语言对 FPGA 进行开发就意味着更多的用户可以在较短的时间里充分利用FPGA 的高性能。FPGA 开发工具行业将 HLS 作为实现这个目标的 一种方法。NI 最近也使用了 Xilinx 公司的 HLS 技术创建了 LabVIEW FPGA IP Builder。作为 NI LabVIEW FPGA 模块的一个插件,它集成了 HLS 技术与 LabVIEW 以及可重配置 I/O (RIO)硬件高性能的优势,可以帮助用户更方便地生成高性能的 FPGA IP。当 LabVIEW FPGA 不能提供用户所需的功能或者现成的功能不能满足用户对性能的需求的时候,用户可以通过自己编写优化的 IP 来提升 LabVIEW FPGA 设计环境的性能。
NI 开发 LabVIEW FPGA IP Builder 最主要的目的是当用户使用基于 FPGA 的 NI 硬件开发需要高性能算法的工业应用时,可以提高用户的工作效率。因为 LabVIEW FPGA IP Builder 也是使用图形化的系统设计途径,用户不需要学习底层 FPGA 开发细节就能获得高的系统性能和资源利用率。
LabVIEW FPGA 模块不已经是一种 HLS 工具了吗?
是的,通常来说,我们认为 LabVIEW FPGA 是一款 HLS 工具CONTROL ENGINEERING China版权所有,因为它可以帮助用户使用高级的编程语言来开发 FPGA 硬件。数以千计的各领域专家虽然并没有硬件设计的经验,但还是使用 LabVIEW FPGA 成功地创建了出色的应用程序。但是,如果想使用 LabVIEW FPGA 来满足非常高级的应用挑战,通常必须将代码放置在一个单周期定时循环中并修改相应的算法,通过采用一些高级的编程概念例如平行执行和流水线来达到 更高的程序吞吐量。这些修改会造成程序的可读性降低,程序代码的重用并增加开发和验证时间。这就是我们所说的第一代 HLS 工具。
第二代 HLS 工具CONTROL ENGINEERING China版权所有,同时也称为算法 HLS,将性能和资源约束从代码中分离了出来,这样用户就可以专心地对算法进行编程和功能验证,将时序和资源分配优化留给编程工具。LabVIEW FPGA IP Builder 就是这种第二代 HLS 工具的例子,它将 LabVIEW FPGA 的开发带入了下一个层次。
HLS 技术问题的挑战性究竟如何?
我们将 HLS 看作高级的编译器。像其它编译器一样,它们必须在维持代码原始功能的基础上对代码进行解析和转换。HLS 工具还必须应用用户定义的指令,这些指令约束了代码转换的 HDL 形式。
指令的设计也可以有不同的类型CONTROL ENGINEERING China版权所有,可能从专门设计并行架构和模块化接口行为到指定用户想使用哪部分资源来实现图形代码。性能相关的编译指令通常是最重要的, 因为它们可以帮助指定设计的时序和延迟参数。那些时序相关的编译指令就与数据吞吐量有关,同样也是高级 FPGA 应用程序的关键方面。
为了满足设计编译指令,编译工具必须对大量可能的设计进行搜索。这种搜索非常复杂,因为实际上,编译指令之间通常都有一定程度的权衡,所以有时它们会互相影响。这种权衡的例子之一就是延时和吞吐量。吞吐量的提高通常依赖于增加流水线的级数,这样就会造成更高的延时和资源占用。HLS 研究的发展和计算能力的提高使得这些工具更加实用,其编译的结果可以与手动编译优化的结果一较高下。
基于 HLS 的开发途径还提供了哪些优势呢?
代码和设计指令的分离让用户有机会可以更好地重用代码。用户可以只做一次代码验证,就将相同的代码应用到多个性能和资源需求都不同的应用程序中。代码并不需要作改变,所以用户可以不用花过多的时间在代码验证上。
因为 LabVIEW FPGA IP Builder 与 Xilinx 工具紧密集成,它提供了性能和资源的评估,通常会比一个完整的设计编译更快,这样就可以进行快速的迭代开发。
何时才应该在 LabVIEW FPGA 模块中使用 LabVIEW FPGA IP Builder?
大部分 HLS 工具都使用 ANSI C/C++作为高级的编程语言。一些射频和数字信号处理(DSP)工具可以将原理图和模型图表编译为 HDL。绝大多数此类工具都没有提供与真实部署硬件之 间的集成。所以数字工程师仍然需要将生成的 IP 嵌入到最终的设计中。LabVIEW 系统设计软件提供了独特的优势,它与基于 FPGA 的 NI 硬件紧密集成。 用户不需要更多的自定制 IP 将设计嵌入到最终执行目标上。另外,LabVIEW 还可以包含多种运算元素。从大型的多核计算机到嵌入式处理器,都可以使用同 一个编程语言来设计多线程的系统。
借助 FPGA 的高性能,LabVIEW FPGA 模块可以帮助用户解决复杂的应用挑战。我们希望LabVIEW FPGA IP Builder 可以帮助更多的用户编写用于 DSP 和射频应用的高性能 IP。这个计划还将继续将 HLS 技术集成到 LabVIEW FPGA 开发环境中,这样就可帮助更多的用户成功地处理这类应用。 NI PXI 矢量信号收发仪和 LabVIEW FPGA
为了解决极富挑战性的测试时间问题,高通创锐讯使用了 NI PXIe-5644R 矢量信号收发仪。NI PXIe-5644R 矢量信号收发仪的特点是其带有板载 FPGA。同时,其集成在一起的射频信号发生器和分析仪让他们能够同时控制 WiFi 芯片的数字接口。
过去www.cechina.cn,FPGA 需要使用 VHDL 语言或者 Verilog 语言进行编程。很多工程师和科学家不熟悉这些复杂的语言,抑或他们需要一个更高层的抽象化语言,来简化生成FPGA 代码的过程,提高设计的效率。NI LabVIEW 很适用于 FPGA 编程,因为它能清晰地表示并行性和数据流,这样一来传统 FPGA 设计中各个层次的用户都可以充分发挥可编程硬件的力量。
考虑到对被测试设备(Device under test, DUT)的控制和对数据的处理,高通创锐讯使用 LabVIEW 来进行 NI 矢量信号收发仪上的 FPGA 编程。处理的过程可以在设备本身上进行,而不需再总线和控制器之间反复传输CONTROL ENGINEERING China版权所有,这就大大地节约了测试时间。
传统的机架式测量设备的效率受限于最佳估计增益表的选择。在这种传统的模式下,高通创锐讯的团队通过迭代估计得出了最终解决方案。此方案需要对增益表的特性进行回归分析。这是一个缓慢的处理方式,每次迭代只能产生 40 组有意义的数据点。