数字调制解调技术的MATLAB与FPGA实现-数字通信及FPGA概述 【1.4】

1.3.3 FPGA的组成结构

        目前所说的可编程逻辑器件,通常情况下指的是FPGA与CPLD(Complex ProgrammableLogic Device,复杂可编程逻辑器件)器件。FPGA与CPLD器件因其内部结构不同,导致其集成度、运算速度、功耗及应用方面均有一定差别。通常将以乘积项结构方式构成逻辑行为的器件称为CPLD,如XILINX的XC9500系列、ALTERA的MAX7000S系列和 Lattice的 Mach 系列等,这类器件的逻辑门密度在几千到几万个逻辑单元之间。CPLD更适合触发器有限而乘积项丰富的结构,适合完成复杂的组合逻辑。通常将基于査找表(Look-Up-Table,LUT)结构的 PLD器件称为FPGA,如 XILINX 公司的 Spartan-3、Spartan-6、Virtex-I、Virtex-4、Virtex-5、Virtex-6系列,ALTERA的FLEX10K或ACEX1K系列等。FPGA是在CPLD 等逻辑器件的基础上发展起来的,作为ASIC领域的一种半定制电路器件,它克服了ASIC器件灵活性不足的缺点,同时解决了CPLD等器件逻辑门电路资源有限的缺点,这种器件的密度通常在几万门到几百万门之间。FPGA 更适合于触发器丰富的结构,适合完成时序逻辑,因此在数字信号处理领域多使用FPGA器件。

        目前主流的FPGA 仍是基于查找表技术的,但已经远远超出了先前版本的基本性能并且整合了常用功能(如RAM、时钟管理和DSP)的硬核模块。如图1-15所示(图1-15只是一个示意图,实际上每一个系列的FPGA 都有其相应的内部结构),FPGA芯片主要由6部分组成:可编程输入/输出单元(Imput/Output Block,IOB)、基本可编程逻辑块(ConfigurableLogic Block,CLB)、数字时钟管理模块(Digital Clock Manager,DCM)、嵌入式块 RAM(BIOcKRAM,BRAM)、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。

1.可编程输入/输出单元(IOB)
        可编程输入/输出单元简称I0单元,是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动与匹配要求,其示意结构如图1-16所示。
        FPGA内的IO按组分类,每组都能够独立地支持不同的IO标准。通过软件的灵活配置,可适应不同的电气标准与IO物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻阻值。目前,I/0口的频率也越来越高,一些高端的FPGA通过DDR寄存器技术可以支持高达2Gbps的数据速率。外部输入信号可以通过10B模块的存储单元输入到FPGA的内部,也可以直接输入到FPGA内部。为了便于管理和适应多种电器标准,FPGA的IOB被划分为若干个组(Bank),每个Bank的接口标准由其接口电压Vcco决定。一个Bank只能有一种 Vcco,但不同 Bank的 Vcco可以不同。只有相同电气标准的端口才能连接在一起,Vcco电压相同是接口标准化的基本条件。
2.可配置逻辑块(CLB)
        CLB是FPGA内的基本逻辑单元。CLB的实际数量和特性依据器件规模和种类的不同而不同,但是每个 CLB都包含一个可配置开关矩阵(Switch Matrix),此矩阵由4或6个输入模块、多路复用器和触发器等组成。开关矩阵是高度灵活的,可以对其进行配置以便实现组合逻辑、移位寄存器或RAM等功能。在XILINX公司的FPGA器件中,CLB由多个(一般为4个或2个)相同的Slice 和附加逻辑构成,如图1-17所示。每个CLB 模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。

        Slice 是赛灵思公司定义的基本逻辑单位,其内部结构如图1-18所示。一个Slice 由两个4输入的函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。算术逻辑包括一个异或门(XORG)和一个专用与门(MULTAND)。一个或门可以使一个Sice实现2bit全加操作,专用与门用于提高乘法器的效率;进位逻辑由专用进位信号和函数复用器(MUXC)组成,用于实现快速的算术加减法操作:4输入函数发生器用于实现4输入LUT分布式RAM或16bit移位寄存器(Virtex-5系列芯片Slice中的两个输入函数为6输入,可以实现6输入LUT或64bit移位寄存器):进位逻辑包括两条快速进位链,用于提高CLB模块的处理速度。

3.数字时钟管理模块(DCM)
        目前,业内大多数FPGA均提供数字时钟管理(XILINX公司的全部FPGA均具有这利特性)。XILINX公司推出最先进的FPGA器件提供数字时钟管理和相位环路锁定功能模块,相位环路锁定功能模块能够提供精确的时钟综合,而且能够降低抖动,并实现过滤功能。
4.嵌入式块 RAM(BRAM)
        大多数FPGA 都具有内嵌的块RAM,这大大拓展了FPGA的应用范围和灵活性。块RAM 可被配置为单端口RAM、双端口RAM、地址存储器(CAM)和FIFO等常用存储结构。CAM存储器在其内部的每个存储单元中都有一个比较逻辑,写入CAM中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址。除了块RAM,还可以将 FPGA 中的 LUT灵活地配置成RAM、ROM 和FIFO 等结构。在实际应用中,芯片内部的块RAM数量也是选择芯片的一个重要因素。对于一般的FPGA 器件来讲,单片块RAM的容量为18kbit,即位宽为18bit、深度为1024。用户可以根据需要改变其位宽和深度,还可以将多片块RAM级联起来形成更大的RAM,此时所配置的最大容量只受限于芯片内的块RAM数量。
5.丰富的布线资源
        布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别:第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线:第二类是长线资源,用于完成芯片Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线:第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。在实际工程设计中,设计者不需要直接选择布线资源,布局布线器可自动地根据输入逻辑网表的拓扑结构和约束条件选择布线资源来连通各个模块单元。从本质上讲,布线资源的使用方法和设计的结果有密切、直接的关系。
6.底层内嵌功能单元
        内嵌功能模块主要指延迟锁定环(DelayLockedLoop,DLL)、锁相环(Phase LockedLoOp,PLL)、DSP等软处理核(Sof Core)。现在越来越丰富的内嵌功能单元使得单片FPGA成为了系统级的设计平台,使其具备了软硬件联合设计的能力,并逐步向SOC平台过渡。DLL和 PLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。赛灵思公司生产的芯片上集成了DCM和DLLALTERA 公司的芯片集成了PLL,Attice公司的新型芯片上同时集成了PLL和DLL。PLL和DLL可以通过IP核生成工具方便地进行管理和配置。DLL的结构如图 1-19 所示。

7.内嵌专用硬核
        内嵌专用硬核是相对底层嵌入的软核而言的,FPGA内部集成的处理能力强大的硬核(HardCore),等效于ASIC电路。为了提高FPGA性能,芯片生产商在芯片内部集成了些专用的硬核。例如,为了提高FPGA的乘法速度,主流的FPGA中都集成了专用乘法器:为了适应通信总线与接口标准,很多高端的FPGA内部都集成了串并收发器(SERDES),可以达到数10Gbps的收发速度。赛灵思公司的高端产品不仅集成了PowerPC系列CPU,还内嵌了 DSP Core 模块,其相应的系统级设计工具是EDK和Platform Studio,并依此提出了SOC(System on Chip,片上系统)的概念。通过 PowerPC、Miroblaze、Picoblaze 等平台,能够开发标准的 DSP处理器及其相关工程应用,实现SOC的开发目的。

1.3.4 FPGA的工作原理

        众所周知,类似于PROM(Programmable Read Only Memory,可编程只读存储器)、EPROM(Erasable Programmable Read Only Memory,可擦可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦可编程只读存储器)可编程器件的可编程原理是通过加高压或紫外线导致三极管或MOS管内部的载流子密度发生变化,实现所谓的可编程,但是这些器件大多只能实现单次可编程,或者编程状态难以稳定。FPGA 则不同,它采用了LCA(LogicCellArray,逻辑单元阵列)这样一个新概念,内部包括 CLB(Configurable Logic Block,可配置逻辑模块)、IOB(Input Output Block,输入/输出模块)和内部连线(Interconnect)三个部分。FPGA的可编程实际上是改变了CLB和IOB的触发器状态,这样可以实现多次重复的编程。由于FPGA需要被反复烧写,它实现组合逻辑的基本结构不可能像 ASIC那样通过固定的与非门来完成,而只能采用一种易于反复配置的结构。查找表可以很好地满足这一要求,目前主流FPGA都采用了基于SRAM 工艺的查找表结构,也有一些军品和宇航级FPGA采用Flash或者熔丝与反熔丝工艺的查找表结构。

        根据数字电路的基本知识可以知道,对于一个n输入的逻辑运算,不论是与、或运算还是其他逻辑运算,最多只可能存在2"种结果。所以如果事先将相应的结果存放于一个存储单元,就相当于实现了与非门电路的功能。FPGA的原理也是如此,它通过烧写程序文件去配置查找表的内容,从而在相同电路结构的情况下实现了不同的逻辑功能。查找表简称LUT,其本质上就是一个 RAM。目前FPGA 中多使用 4~6 输入的LUT,所以每一个 LUT可以看成一个有4~6位地址线的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)事先写入 RAM,如表1-1所示。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。

        从表1-1中可以看到,LUT具有和逻辑电路相同的功能。实际上,LUT具有更快的执行速度和更大的规模。由于基于LUT的FPGA具有很高的集成度,其器件密度从数万门到数千万门不等,可以完成极其复杂的时序逻辑与组合逻辑电路功能,所以适用于高速、高密度的高端数字逻辑电路设计领域。
        FPGA 是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM 进行编程。用户可以根据不同的配置模式,采用不同的编程方式编程。加电时,FPGA芯片将 EPROM 中的数据读入片内的编程 RAM 中,配置完成后,FPGA进入工作状态。掉电后FPGA 恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA 编程器,只需用通用的EPROM、PROM 编程器即可。Actel、QuickLogic 等公司还提供反熔丝技术的 FPGA,具有抗辐射、耐高低温、低功耗和速度快等优点,在军品和航空航天领域中应用较多,但这种FPGA不能重复擦写,开发初期比较麻烦,费用也比较昂贵。

1.4 FPGA 与其他处理平台的比较

        目前,现代数字信号处理技术的实现平台主要有ASIC、DSP、ARM及FPGA四种。随着半导体芯片生产工艺的不断发展,四种平台的应用领域已越来越出现了相互融合的趋势,但因各自的侧重点不同,依然有各自的优势及鲜明特点。关于对四者的性能、特点、应用领域等方面的比较分析一直都是广大技术人员及专业杂志讨论的热点之一。相对而言,ASIC只提供可以接受的可编程性和集成水平,通常可为指定的功能提供最佳解决方案;DSP可为涉及复杂分析或决策分析的功能提供最佳可编程解决方案;ARM则在需要嵌入操作系统、可视化显示等领域得到广泛的应用:FPGA可为高度并行或涉及线性处理的高速信号处理功能提供最佳的可编程解决方案。接下来对这几种数字信号处理平台的特点进行简要介绍。

1.4.1 ASIC、DSP 及 ARM 的特点

        ASIC是 Application Specific Integrated Circuit 的英文缩写,是一种为专门目的而设计的集成电路。ASIC 设计主要有全定制(Full-Custom)设计方法和半定制(Semi-Custom)设计方法。半定制设计又可分为门阵列设计、标准单元设计、可编程逻辑设计等。全定制方法完全由设计师根据工艺,以尽可能高的速度和尽可能小的面积以及完全满意的封装、独立地进行芯片设计。这种方法虽然灵活性高,而且可以达到最优的设计性能,但是需要花费大量的时间与人力来进行人工的布局布线,而且一旦需要修改内部设计,将不得不影响到其他部分的布局,所以,它的设计成本相对较高,适合于大批量的ASIC芯片设计,如存储芯片的设计等。相比之下,半定制方法是一种基于库元件的约束性设计。约束的主要目的是简化设计、缩短设计周期,并提高芯片的成品率。它更多地利用了EDA系统来完成布局布线等工作,可以大大减少设计工程师的工作量,因此它比较适合于小规模设计生产和实验。

        DSP(Digital Signal Processor,数字信号处理器)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器芯片内包括有控制单元、运算单元、各种寄存器,以及一定数量的存储单元等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛结构设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说,在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为“0”或“1”的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的处理器芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度的灵活性,因此为从事各种复杂的应用提供了一条有效途径。当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

        ARM(Advanced RISCMachines/Microprocessor)嵌入式处理器是一种 32 位高性能、低功耗的 RISC(Reduced Instruction Set Computing,精简指令集)芯片,它由英国 ARM 公司设计,世界上几乎所有的主要半导体厂商都生产基于ARM体系结构的通用芯片,或在其专用芯片中嵌入 ARM 的相关技术,如TI、Motorola、Intel、Atmel、Samsung、Philips、ALTERA、NEC、Sharp、NS等公司都有相应的产品。ARM只是一个核,ARM公司自己不生产芯片,采用授权方式给半导体生产商。目前,全球几乎所有的半导体厂家都向ARM公司购买了各种 ARM 核,配上多种不同的控制器(如LCD 控制器、SDRAM 控制器、DMA控制器等)和外设、接口,生产各种基于ARM核的芯片。目前,基于ARM核的各种处理器型号有好几百种,在国内市场上,常见的有ST、TI、NXP、Atmel、Samsung、OKI、Sharp、Hynix、Crystal等厂家的芯片。用户可以根据各自的应用需求,从性能、功能等方面考察,在许多具体型号中选择最合适的芯片来设计自己的应用系统。由于ARM核采用向上兼容的指令系统,用户开发的软件可以非常方便地移植到更高的ARM平台。ARM微处理器一般都具有体积小、功耗低、成本低、性能高、速度快的特点,目前 ARM 芯片广泛应用于工业控制、无线通信、网络产品、消费类电子产品、安全产品等领域,如交换机、路由器、数控设备、机顶盒、STB及智能卡都采用了ARM技术。可以预见,ARM技术将在未来的电子信息领域中取得越来越广泛的应用。

1.4.2 FPGA的特点及优势

        FPGA 是英文 Field Programmable Gate Array(现场可编程门阵列)的缩写,它是在 PALGAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA采用了逻辑单元阵列(LogicCel Array,LCA)这样一个新概念,内部包括可配置逻辑模块(Configurable Logic Block,CLB)、输入/输出模块(Input Output Block,IOB)和内部连线(nterconnect)三个部分。用户可对FPGA内部的逻辑模块和I/0模块重新配置,以实现用户的逻辑。它还具有静态可重复编程和动态在线系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路(ASIC)领域中的一种半定制电路,FPGA 既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张地讲,FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA 来实现。FPGA 如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在完成PCB以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此工作时需要对片内的RAM 进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA 芯片将EPROM中数据读入片内编程RAM中,完成配置后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用FPGA的编程无须专用的编程器,只需用通用的EPROM、PROM编程器即可。当需要修改FPGA 功能时,只需换一片 EPROM 即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的XC系列、TI公司的 TPC系列、ALTERA 公司的FIEX系列等。

        它们的区别是什么呢?DSP主要是用来计算的,如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。ARM具有比较强的事务管理功能,可以用来运行界面和应用程序等,其优势主要体现在控制方面。FPGA可以用VHDL或VerilogHDL来编程,灵活性强,由于能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,因为这种能力可以用来进行系统升级或除错。
        任何信号处理器件性能的鉴定必须包括衡量该器件是否能在指定的时间内完成所需的功能。这类评估中一种最基本的测量方法就是多个乘加运算处理时间的测量。考虑一个具有16个抽头的简单FIR滤波器,该滤波器要求在每次采样中完成16次乘积和累加(MAC)操作。德州仪器公司的TMS320C6203DSP具有300MHz的时钟频率,在合理的优化设计中,每秒可完成大约4亿至5亿次MAC操作。这意味着C6203系列器件的FIR滤波具有最大为每秒3100万次采样的输入速率。但在FPGA中,所有16次MAC操作均可并行执行。对于XILINX的Virtex器件,16位MAC操作大约需要配置160个结构可重置的逻辑块(CLB),因此16个并发MAC操作的设计实现将需要大约2560个CLB。XCV300E可轻松地实现上述配置,并允许FIR滤波器工作在每秒1亿个样本的输入采样速率下。

        目前,无线通信技术的发展十分迅速,无线通信技术发展的理论基础之一是软件无线电技术,而数字信号处理技术无疑是实现软件无线电技术的基础。无线通信一方面正向语音和数据综合的方向发展;另一方面,在手持PDA产品中越来越多地需要综合移动技术。这一要求对应用于无线通信中的FPGA 芯片提出了严峻的挑战,其中最重要的三个方面是功耗、性能和成本。为适应无线通信的发展需要,FPGA系统芯片(SystemOnaChip,SOC)的概念技术、芯片应运而生。利用系统芯片技术将尽可能多的功能集成在一片FPGA 芯片上,使其性能上具有速率高、功耗低的特点,不仅价格低廉,还可以降低复杂性,便于使用。

        实际上,FPGA器件的功能早已超越了传统意义上的胶合逻辑功能。随着各种技术的相互融合,为了同时满足运算速度、复杂度,以及降低开发难度的需求,目前在数字信号处理领域及嵌入式技术领域,“FPGA+DSP+ARM”的配置模式已浮出水面,并逐渐成为标准的配置模式。

  • 25
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值