基于BDTI研究认证以D S P为核心的高级综合工具 - FPGA/ASIC技术
近年来,高级综合工具已成为在设计方案中使用或希望使用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设计方案上的难度有多大。
查看评论 回复