基于BDTI研究认证以D S P为核心的高级综合工具

FPGA/ASIC技术

201人已加入

描述

近年来,高级综合工具已成为在设计方案中使用或希望使用FPGA的工程师的必杀技。这种工具以应用的高级表示法(比如用C语言或MATLAB的M语言编写的表示法)为输入,并生成面向FPGA的硬件实现的寄存器传输级HDL描述。

高级综合工具 (HLST) 对两种类型的潜在用户非常有用,一是正在实现高强度数字信号处理 (DSP) 应用的FPGA用户,二是正在实现高强度数字信号处理(DSP)应用的高性能DSP处理器用户。这是因为信号处理工作负载非常繁重,通常需要较高的数据速率和高级并行处理能力,这种需求往往适合采用HLST的FPGA来实现。

对目前的FPGA用户来说,HLST工具有望简化并加速设计进程。而对目前的DSP处理器用户而言,HLST则提供了一种独特而相当富有吸引力的作用,无需编写RTL代码就能移植到更强大的处理引擎FPGA上。因此,何乐而不为呢?

关键问题在于,过去的高级综合工具都不能生成高效的RTL代码(就资源使用率而言)。大多数工程师都不愿牺牲手编的RTL代码的性能和效率,因此这种工具未能赢得较大市场份额。不过,最近出现的一些新鲜事例显示,面向赛灵思FPGA的新型HLST工具效率和易用性都非常高。在这种自相矛盾的情况下,潜在用户如何评判高级综合工具到底是否值得考虑一下呢?

为了回答这一问题, 独立基准测试与分析公司BDTI于2009年制定了BDTI高级综合工具认证计划。我们的目标是针对FPGA的HLST提供客观可信的数据与分析,确保潜在用户能快速了解其在高强度信号处理应用中的功能及局限性。评估时,我们是站在没有FPGA开发经验但却具有丰富DSP软件开发经验的工程师角度,这也反映了大量潜在受益于HLST的处理器用户的实际情况。

最初进行评估的两个HLST程序是Synfora的PICO和AutoESL的AutoPilot。2010年初,我们发布了首次评估测试计划的结果,其中的一些结果让许多FPGA和DSP处理器用户都感到吃惊。

采用HLST实现应用

我们采用HLST实现测试应用的步骤先是对所需功能进行高级语言描述,高级综合工具由此生成RTL 实现。随后赛灵思的RTL工具(集成综合环境(ISE)和嵌入式开发套件 (EDK) )将RTL实现转化为比特流形式的完整FPGA实现,用于对带有I/O和存储器的特定硬件平台上的特定赛灵思FPGA进行编程。

在本案例中,我们使用的平台为赛灵思的XtremeDSPTM视频入门套件——Spartan®-3A DSP版本,这是一款基于
Spartan-3A DSP FPGA的目标设计平台。

我们本可以评估仅限于高级综合工具,忽略设计流程中的“RTL到比特流”部分的评估。不过我们认为,潜在用户应该了解从高级应用描述转变到FPGA实现的整个流程情况,这项工作需要RTL工具以及高级综合工具。因此,我们对整个实现流程进行评估,不光是“C到RTL”部分,还包含赛灵思RTL工具链。

在任何硬件目标上实现应用的第一步通常都是重建初始C代码。我们所说的“重建”是指重新编写初始的C代码(初始的代码主要是为了让代码变得更清晰,便于了解,而不是出于性能考虑),将其转变为更适合于目标处理引擎的格式。比方说,在DSP处理器上,我们或许应当重新安排应用的控制流程,确保中间数据始终适应高速缓存要求。就面向FPGA的高级综合工具而言,重建通常要提供应用表示法,确保工具能提取潜在的并行性,从而优化流水线实现。

一般而言, 高级综合工具都不能自动进行重建,而是需要手工重建。事实上,设计人员可以不借助高级综合工具来进行重建。比方说,在我们的评估中,我们用Microsoft Visual Studio重建并验证C代码。相对于重建和语言翻译作为统一步骤出现的手编RTL代码而言,完全用C语言进行重建相对比较简单,出错的可能性也少,这是高级综合工具的一大优势。

重建高级代码后,用户让HLST综合生成RTL HDL代码形式指定功能的硬件实现。赛灵思的RTL工具(ISE和EDK)采用HLST生成的RTL代码,执行综合和布局布线任务,并报告实现的资源利用率,以及通知用户各种时序问题。

BDTI的工具认证计划

BDTI制定高级综合工具认证计划的目标就是进行两大关键点对比,以满足两类潜在HLST用户需求。首先,我们希望比较基于HLST的FPGA应用实现和基于手编RTL代码实现的效率,这一信息对目前正在考虑是否要采用HLST加速开发时间的FPGA用户而言至关重要(就资源使用率而言)。其次,我们希望对用面向FPGA的HLST与用DSP处理器及相关软件开发工具实行同一工作负载时的性能与难度比较。这一对比使DSP处理器用户能估算出将技术移植到FPGA设计方案上的难度有多大。

我们用明确定义的样本应用(即“工作负载”)评估高级综合工具流程(包括相关的RTL工具)。上述应用(下一节做了简要说明)主要是指代表设计人员通常在FPGA上实现的高强度数字信号处理应用,数据速率和计算强度均要求高。其他类型的应用产生结果会与这里给出的结果可能会有所不同。

我们用不同方法实现这两种应用。首先,我们将高级综合工具与赛灵思RTL工具结合使用,在目标FPGA上实现给定的工作负载。随后,采用传统的RTL设计方法,或者用DSP处理器配合其相关开发工具(取决于具体的工作负载),在相同的FPGA上实现相同的工作负载。这样,我们就能比较出采用不同工具与芯片组合实现的应用的结果质量与生产力。

评估工作负载

我们用于评估目的的两个应用是BDTI Optical Flow Workload和BDTI DQPSK Receiver Workload。

“光流法”这个术语是指一种分析场景中对象运动和对象特性(如边缘)的视频处理算法。BDTI Optical Flow Workload操作720p分辨率(1,280 x720逐行扫描)的输入视频序列并生成一系列双维矩阵,确定序列中的水平及垂直运动。在设计工作负载时,我们集成了动态数据依赖性决策和阵列索引,从而确保为工具提供严格的测试。

BDTI Optical Flow Workload涉及两个操作点,每个操作点都使用相同的算法,但针对不同的标准优化。操作点1是固定工作负载,定义为每秒60帧的720p分辨率处理视频。操作点1的目的就是最大限度的减少实现指定分辨率所需的资源利用率(资源利用率指的是实现工作负载所需资源占可用处理引擎资源的比例)。

与此同时,操作点2的目的则是用所有可用资源来最大限度地提高吞吐量(以每秒帧数为单位)。

第二个工作负载BDTI DQPSK Receiver Workload为无线通信接收器基带应用,其中包含许多无线收发器中的传统通信模块。这是一种固定工作负载,只有一个单一操作点来处理输入流,输入流为复数调制数据,速率为每秒1875万次采样,接收器链的时钟速率为75 MHz。接收器可生成每秒4.6875 M比特的解调输出比特流。该工作负载的目的是最大限度地减少实现指定吞吐量所需的FPGA资源的使用。

对不同工作负载而言,存储器的使用与存储器的带宽要求差异较大。BDTI DSPSK Receiver Workload只需使用最小的存储器(因此无需外部存储芯片),而BDTI Optical Flow Workload则需要存储四个视频帧(每帧1,280 x720像素)的历史记录,因此需要外部存储芯片来配合Spartan-3A DSP FPGA。Optical Flow Workload操作点1需要单一外部存储芯片与接口(带宽约为每秒450 MB),而Optical Flow Workload操作点2通常需要两个外部存储芯片与接口,其带宽之和约为每秒1.4GB。

就BDTI Optical Flow Workload而言,在典型的FPGA实现中,操作点1每个时钟循环处理一个像素,而操作点2每个时钟循环则处理两个像素。BDTI DQPSK Receiver Workload实现每四个时钟循环处理一个输入样品。

度量指标和平台介绍

此前,虽然用手写RTL代码在FPGA上实现的较高要求应用通常能实现更优异的质量(即性能和效率较
高),但工作效率不高;而用DSP处理器实现的应用工作效率虽高,但结果质量差强人意。面向FPGA的高级综合工具旨在提供二者相结合后的最佳水平,既提供较高质量,又实现较高效率。因此,我们在评估中考虑了两组度量指标:结果质量和可用性。

结果质量度量指标用于评估工作负载实现的性能和资源使用情况。BDTI Optical Flow Workload提供HLSTXilinx流程和DSP处理器流程的结果质量度量指标。BDTI DQPSK Receiver Workload提供HLST-Xilinx流程以及赛灵思根据典型业界设计实践采用手写RTL设计的传统FPGA实现方案的结果流程,其中包括在适当的时候使用赛灵思CORE GeneratorTM知识产权模块。

可用性度量指标用于评估

HLSTXilinx设计方案的工作效率和易用程度,并以我们实现BDTI Optical Flow Workload 的情况为参考依据。这些度
量指标将面向FPGA的HLST和赛灵思工具流相对于使用DSP处理器及其相关软件开发工具链的工作效率和易用性进行比较。我们根据工具使用的九个方面量化评估可用性度量指标,其中包括直接体验、易用性、工具功能完整性、整体设计方法的效率以及文档与支持质量等。

就本次评估而言, 目标FPGA为赛灵思Spar tan-3A DSP 3400(XC3SD3400A);就BDTI Optical F l o w Wo r k l o a d而言, 赛灵思XtremeDSP Video Starter Kit—Spartan-3A DSP Edition为目标平台。我们使用了赛灵思RTL工具,包括ISE和EDK工具套件(版本 10.1.03,lin64)以及高级综合工具等。

本项目中的目标DSP处理器为德州仪器的TMS320DM6437。这款面向视频的处理器采用600-MHz TMS320C64x+ DSP内核以及视频硬件加速器(硬件加速器不适用于BDTI Optical Flow Workload,因此我们并未使用)。评估中采用了德州仪器的DM6437 Digital Video Development Environment作为目标平台,并采用了德州仪器的Code Composer Studio工具套件(版本为V3.3.82.13,Code Generation Tools版本为 6.1.9)。

实现与认证进程

我们将两个工作负载的实现工作分配给两个芯片,并根据使用的芯片和工具链来选择采用赛灵思和BDTI不同的高级综合工具厂商。HLST厂商使用其自有工具以及赛灵思的工具实现两个工作负载,并将性能和资源使用结果提交给BDTI进行验证与认证。我们通过经认证的结果生成了本文的结果质量度量指标。

与此同时,我们的工程师接受了HLST厂商的培训,并分别用高级综合工具和赛灵思工具独立实现了BDTI Optical Flow Workload的某些部分。

这一过程为BDTI提供了工具链易用性及其生成结果质量的第一手信息。我们还在DSP处理器上实现了BDTI Optical Flow Workload,而赛灵思则实现手写RTL FPGA版的BDTI DQPSK Receiver Workload(随后也经BDTI验证与认证)。

结果质量:性能和效率如图1所示,用高级综合工具为BDTI Optical Flow Workload创建的FPGA实现方案的性能比 DSP处理器实现方案高出约40倍。我们再分析一下芯片成本,图2所示的是相应的性价比优势,FPGA实现方案大约有30倍的优势。显然,配合高级综合工具使用的FPGA能为某些类型的应用提供出色的性价比优势(更多详细结果请参见 。)

 

 

图 1——使用HLST的Spartan-3A DSP FPGA在BDTI Optical Flow Workload视频应用上以720p的分辨率获
得了每秒195帧的成绩,而同样情况下C64x+ DSP处理器的成绩仅为5.1帧每秒。

 

 

图 2——Spartan-3A DSP FPGA上使用HLST的BDTI Optical Flow Workload (720p) 性价比优于600-MHz TI
C64x+架构的DSP。

我们还就BDTI DQPSK Receiver Workload对基于HLST的FPGA实现方案与采用手写RTL实现相同工作负载的效率进行了评估。我们再次发现,HLST的表现非常出色。如表1所示,AutoPilot和PICO都能生成效率(即资源使用情况)相当于手写RTL代码的RTL代码。HLST和手写RTL的效率结果相当并非偶然;我们在评估工作开始时就为AutoESL和Synfora提供了手写RTL实现方案的资源使用示意图,这两家公司可能用该图作为其优化实现方案的目标(不过我们也应当注意,这种信息并非是高效使用高级综合工具所必需的,而且HLST厂商并未获得RTL设计方案)。
我们还采访了使用 AutoESL 和
Synfora 高级综合工具的设计人员,他
们确认了资源使用情况的真实性。事实

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分