数字电路设计方案的比较与选择
二十世纪80年代以来,一类先进的门阵列——FPGA的出现,产生了另一种数字电路设计方法,具有十分良好的应用前景。基于FPGA的数字电路设计方式在可靠性、体积、成本上的优势是巨大的。
除了上述两种方案,还有DSP+FPGA方案,以及选择内部嵌入DSP模块的FPGA实现系统的方案。
1 DSP和FPGA的结构特点
1.1 DSP的结构特点
DSP是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP 指令,可以用来快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:
(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
1.2 FPGA的结构特点
FPGA的结构是由基于半定制门阵列的设计思想而得到的。从本质上讲,FPGA是一种比半定制还方便的ASIC(ApplicaTIon Specific Integrated Circuit 专用集成电路)设计技术。
FPGA的结构主要分为三部分:可编程逻辑块、可编程I/O模块、可编程内部连线。可编程逻辑块和可编程互连资源的构造主要有两种类型:即查找表类型和多路开关型。
查找表型FPGA的可编程逻辑单元是由功能为查找表的SRAM(Static Random Access Memory 静态随机存取存储器)构成函数发生器,由它来控制执行FPGA应用函数的逻辑。SRAM的输出为逻辑函数的值,由此输出状态控制传输门或多路开关信号的通断,实现与其它功能块的可编程连接。多路开关型可编程逻辑块的基本构成是一个多路开关的配置。利用多路开关的特性,在多路开关的每个输入接到固定电平或输入信号时,可实现不同的逻辑功能。大量的多路开关和逻辑门连接起来,可以构成实现大量函数的逻辑块。
FPGA由其配置机制的不同分为两类:可再配置型和一次性编程型。近几年来,FPGA因其具有集成度高、处理速度快以及执行效率高等优点,在数字系统的设计中得到了广泛应用。
2 DSP与FPGA性能比较
DSP内部结构使它所具有的优势为:所有指令的执行时间都是单周期,指令采用流水线,内部的数据、地址、指令及DMA(Direct Memory Access直接存储器存取)总线分开,有较多的寄存器。
与通用微处理器相比,DSP芯片的通用功能相对较弱些。DSP是专门的微处理器,适用于条件进程,特别是较复杂的多算法任务。在运算上它受制于时钟速率,而且每个时钟周期所做的有用操作的数目也受限制。例如TMS320C6201只有两个乘法器和一个200 MHz 的时钟,这样只能在每秒完成400M的乘法。
将模拟算法、具体指标要求映射到通用DSP中,比较典型的DSP通过汇编或高级语言如C语言进行编程,实时实现方案。如果DSP采用标准C程序,这种C代码可以实现高层的分支逻辑和判断。例如通信系统的协议堆栈,这是很难在FPGA上实现的。从效果来说,采用DSP器件的优势在于:软件更新速度快,极大地提高了系统的可靠性、通用性、可更换性和灵活性,但DSP的不足是受到串行指令流的限制。
FPGA有很多自由的门,通过将这些门连接起来形成乘法器、寄存器、地址发生器等等。这些只要在框图级完成,许多块可以从简单的门到FIR(Finite Impulse Response 有限冲激响应)或FFT(Fast Fourier Transform. 快速傅里叶变换)在很高的级别完成。但它的性能受到它所有的门数及时钟速度的限制。例如,一个具有20万门的Virtex 器件可以实现200MHz时钟的10个16位的乘法器。
FPGA包含有大量实现组合逻辑的资源,可以完成较大规模的组合逻辑电路设计;与此同时,它还包含有相当数量的触发器,借助这些触发器,FPGA又能完成复杂的时序逻辑功能。通过使用各种EDA (Electronic Design AutomaTIc 电子设计自动化)工具,设计人员可以很方便地将复杂的电路在FPGA中实现。象微处理器一样,许多FPGA可以无限的重新编程,加载一个新的设计方案只需要几百毫秒。甚至现场产品可以很简单而且快速的实