引言
世界正处于高科技下一波快速增长的开端,AccelChip公司 Dan Ganousis DSP 已经成为业界公认的、将按指数增长的技术焦点。
目前,大多数DSP设计已经能在半导体生产商(如T1、ADI、Freescale等)提供的通用DSP芯片上实现。通用处理器的价格相对比较便宜,并且有高质量和廉价的编程工具、方便快速实现DSP算法的支持,但开发人员更希望在原型创建和调试过程中能进行重新编程。
图1 通用DSP处理器的性能与通信领域需要的DSP处理性能的比较
速度的需要
现在,对电子系统的性能要求已经超过了通用DSP处理器的能力。图1显示了由宽带网络市场驱动的对DSP算法的性能需求与通用DSP处理器性能的差异。可以看出通用DSP的性能容量与新的宽带通信技术的需求之间的差距正以指数速率扩大。
传统上DSP开发者可以获得的改变通用DSP处理器性能的唯一方法就是将DSP算法注入到ASIC中,以达到加速硬件的目的。然而这种ASIC的解决方法实现起来非常困难,而且在ASIC上实现DSP算法是以牺牲可重编程的灵活性为代价的,同时还需要大量的非重复设计费用、漫长的原型初始化,以及购买大量昂贵的集成电路设计工具等。
随着先进的FPGA架构如Xilinx Virtex-II和Altera Stratix-II的引入,DSP设计者可以获得一种把通用DSP处理器的所有优点与ASIC的先进性能综合在一起的新型硬件。这些新型的FPGA架构可以优化DSP的实现,并能提供满足现今电子系统所必需的处理能力。
FPGA的优越性表现在它能允许DSP设计者做到“使结构适应算法”,设计者能够根据实现系统性能的需要最大限度地使用FPGA内部的并行资源。而在通用DSP处理器中资源是固定的,因为每个处理器只包含一些数量有限的类似乘法器一样的基本运算功能,设计者必须做到“使算法适应结构”,因而无法达到在FPGA中能够获得的性能。
图2 全球DSP收入预测
半导体工业的亮点
图2显示了整个DSP市场和片内算法市场(由FPGA、结构化ASIC和ASIC几部分组成)的年收入预测。其中,DSP片内算法市场今后三年内将以高于42%的年增长率增长,是整个半导体领域增长最快的部分。
现在DSP的设计团队所面临的挑战和二十世纪九十年代ASIC的设计者所面临的类似-DSP开发组如何用目标FPGA的设计方法代替通用DSP;如何去开发所需要的新的设计技巧;如何完善公司的设计流程;怎样才能提出新的DSP算法的实现方法,同时又不危及当前产品的开发计划。或许更重要的是,管理者怎样才能够使灾难性结果发生的可能性降低到最小。
AccelChip公司认为DSP的未来取决于新型设计方法的采用,而这种方法必须能使公司满足DSP市场对上市时间、成本的苛刻要求。和ASIC、FPGA的产生一样,对DSP变革的方式就是采用真正的、自上而下的设计流程。
图3 传统的DSP设计流程
传统自上而下的设计流程
传统上,DSP设计被分为两种类型的工作:系统/算法的开发和软/硬件的实现。这两类工作是由完全不同的两组工程师完成,通常这两个组在各自的接口之间被相对分开。算法开发者在不考虑系统的结构或软/硬件实现细节的情况下使用数学分析工具来创建、分析和提炼所需要的DSP算法;系统设计者则主要考虑功能的定义和结构的设计,并保持与产品说明及接口标准相一致。软/硬件设计组采用系统工程师和算法开发人员所建立的规范进而完成DSP设计的物理实现。
一般来讲,细则规范可划分成很多小的模块,每个小模块分配给各个成员,他们必须首先理解属于自己的模块的功能。
如果DSP算法的目标是FPGA、结构化ASIC或SoC,那么首要任务就是用Verilog或VHDL等硬件描述语言来建立一个RTL模型。这就需要实现工程师了解通信理论和信号处理以便明白系统工程师提出的细则规范。建立一个RTL模型和仿真测试平台常常需要花费一至两个月的时间,这主要是因为需要人工验证RTL文件和MATLAB模型的准确匹配。RTL模型仿真环境一经建立,实现工程师就要同系统工程师和算法开发人员进行交流,共同分析DSP系统硬件实现的性能、范围和功能。
由于系统工程师在算法开发阶段无法看到物理层设计,因此通常会需要修改原来的算法和系统结构、更新文字性规范、修改RTL模型和测试平台以及重新仿真,这些过程往往需要连续进行多次,直到DSP系统的性能要求能够由硬件实现为止。接着,实现工程师使用逻辑综合执行一种标准的FPGA/ASIC自上而下的设计流程,从而将RTL模型映射到门级网表,并且使用物理设计工具在给定的FPGA/ASIC器件中设置布局网表。图3给出了基本的片内DSP算法的设计流程,主要由算法开发和硬件实现两个相对分开的部分组成。
如上所述,只有花费很长的时间人工建立基于文字规范的RTL模型,才能避免因两个设计域(design domains)之间缺乏联系而造成设计开发进程的延迟,然而对这一设计工程更大的担心是DSP算法的物理设计是基于硬件工程师对文字规范主观的理解。
硬件工程师中缺乏DSP专家,因此常常会因为对要求功能的曲解而造成灾难性的后果。随着DSP复杂度的增加,在人工建立RTL模型的过程中,产生错误已司空见惯。由于相同的错误被写入仿真测试平台中,因此仿真中即便出现多次错误也无法被捕捉到,只有到了原型设计阶段,硬件设计错误才会被发现。
改进方法
FPGA/ASIC设计人员采用真正意义上的自上而下的设计方法,最重要的好处之一就是设计数据管理的改善。但是当ASIC和FPGA采用和现有DSP设计相同的自下而上的设计方法时,由于缺乏单一且有效的设计数据源,将会引入许多错误。因此,在当今的DSP设计中,各个独立的设计部门有义务使MATLAB模型和人工创建的RTL模型及测试平台保持同步。可是如前所述,这两个团队很少交流,而且通常在地理位置上也相距很远。所以管理这些数据变得非常困难。
CoWare在其SPW工具包里提供了一种模块同步问题的解决方案:将辅助模拟设计方法的概念引入硬件设计系统中,从而达到从细则规范到实现的转变。在这种方法中,CoWare 建议DSP设计组使用他们具有DSP硬件模型库的硬件设计系统创建一个可以执行的规范,从而取代对DSP规范和算法进行诠释的编程语言。
这种方法在消除硬件工程师开发RTL模型时造成的曲解方面很有优势,但是,它对确保设计数据同步方面还存在不足。由于每次修正模块都需要人工修改可执行规范,特别在现今复杂度不断增加和产品上市时间越来越短的双重压力下,发生错误的可能性将会大幅增加。
真正自上而下的DSP设计方法
Accelchip公司的DSP合成工具使用VHDL或Verilog硬件描述语言能够直接读出MATLAB模型并自动输出可以合成的RTL模型和仿真测试平台。通过连接DSP的两个设计域,给DSP设计小组在设计的人力和时间、曲解的消除、高成本的重复工作、硬件实现的自动验证,以及系统设计人员和算法开发人员在开发的初期阶段进行结构探索时所需要的能力等方面带来了很大的简化。
Accelchip使硬件设计人员不需要人工创建RTL模型和仿真测试平台,从而缩短了开发周期,减少了硬件实现所需要设计人员的数量。而且自动建立的RTL模型是目标FPGA器件的“结构化意识”,而不是简单的、继承下来的RTL模型。建立RTL模型后,其高级综合工具将创建一个逻辑综合的最佳实现,以确保所产生的门级网表具有FPGA器件的优点。
例如,DSP算法在不同供应商提供的FPGA器件列中实现,其性能和范围有很大的差异,这是因为对于不同设备来讲,结构、逻辑资源、布局资源以及布局方法都是不同的。通过“结构化意识”,Accelchip为DSP设计小组的目标FPGA器件提供了很好的物理实现。同时通过提供容易使用的、自动的从MATLAB到硬件实现的直接路径,使得DSP系统设计人员和算法开发人员能够在设计开发初期定义他们的算法。进而算法开发人员能够很快地将MATLAB设计转换成综合了性能、范围、成本和功率优点的目标FPGA的门级网表。有了来自算法物理实现的初期或开发周期中的反馈,就意味着设计流程后期所做的重复更少,再一次节省了宝贵的时间和人力。
结语
DSP技术的重要性日益增加,对其算法的性能要求远远超过了通用性DSP处理器的能力,从而促使DSP实现小组去寻找硬件的解决方法。FPGA给DSP实现提供了理想的平台,Accelchip提供的真正的自上而下的设计方案无缝地融入了DSP的设计环境,从而确保了在转向真正的自上而下的DSP设计方法时管理风险的最小化。