1、FPGA介绍: 可编程逻辑器件是一种可以构成各种用途逻辑的通用芯片,它是实现专用集成电路ASIC( Application Specific Integrated Circuit)的半定制器件,它的出现和发展使电子系统设计师借助于 CAD 手段在实验室里就可以设计自己的 ASIC 器件。特别是 FPGA( Field Programmable Gate Array)的产生与发展,使其成为继微处理器、存储器之后的为电子数字系统设计而确定的又一种新的工业标准 (即可以按标准产品目录在销售市场上购到 )。数字系统正朝向以微处理器、 存储器、 FPGA三种标准积木块构成或是它们的集成方向发展。 使用
2、FPGA 器件设计数字电路,不仅可以简化设计过程,而且可以降低整个系统的体积和成本,增加系统的可靠性。它们无需花费传统意义下制造集成电路所需大量时间和精力,避免了投资风险,成为电子器件行业中发展最快的一族。使用 FPGA 器件设计数字系统电路的主要优点如下: ( 1)设计灵活 使用 FPGA 器件,可不受标准系列器件在逻辑功能上的限制。而且修改逻辑可在系统设计和使用过程的任一阶段中进行,并且只须对所用的 FPGA器件进行重新编程即可完成,给系统设计提供了很大 的灵活性。 ( 2)增大功能密集度 功能密集度是指在给定的空间能集成的逻辑功能数量。可编程逻辑芯片内的组件门数高,一片 FPGA可代替几
3、片、几十片乃至上百片中小规模的数字集成电路芯片。 FPGA 器件实现数字系统 时 用的芯片数量少,从而减少芯片的数目,减少印刷线路板面积和印刷线路板数目,最终导致系统规模的全面缩减。 ( 3)提高可靠性 减少芯片和印刷板数目,不仅能缩小系统规模,而且它还极大的提高了系统的可靠性。具有较高集成度的系统比用许多低集成度的标准组件设计的相同系统具有高得多的可靠性。使用 FPGA 器件减少 了实现系统所需要的芯片数目,在印刷线路板上的引线以及焊点数量也减少 了 ,所以系统的可靠性得以提高。 ( 4)缩短设计周期 由于 FPGA 器件的可编程性和灵活性,用它来设计一个系统所需时间比传统方法大为缩短。 F
4、PGA 器件集成度高,使用时印刷线路板电路布局布线简单。同时,在样机设计成功后,由于开发工具先进,自动化程度高,对其进行逻辑修改也十分简便迅速。因此,使用 FPGA器件可大大缩短系统的设计周期,加快产品投放市场的速度,提高产品的竞争能力。 ( 5)工作速度快 FPGA/CPLD 器件的工作速度 快,一般可以达到几百兆赫兹,远远大于 DSP 器件。 并且 使用 FPGA器件后实现系统所需要的电路级数又少,因而整个系统的工作速度会得到提高。 ( 6)增加系统的保密性能 很多 FPGA 器件都具有加密功能,在系统中广泛的使用 FPGA 器件可以有效防止产品被他人非法仿制。 ( 7)降低成本 使用 F
5、PGA 器件实现数字系统设计时,如果仅从器件本身的价格考虑,有时还看不出来它的优势,但是影响系统成本的因素是多方面的,综合考虑,使用 FPGA的成本优越性是很明显的。首先,使用 FPGA器件修改设计方便,设计周期缩短,使系 统的研制开发费用降低;其次, FPGA 器件可使印刷线路板面积和需要的插件减少,从而使系统的制造费用降低;再次,使用 FPGA器件能使系统的可靠性提高,维修工作量减少,进而使系统的维修服务费用降低。总之,使用 FPGA器件进行系统设计能节约成本。 FPGA设计原则: FPGA 设计的一个重要指导原则:面积和速度的平衡与互换,这个原则在后边的滤波器设计中有大量的验证体现。 这
6、里 “面积 ”指一个设计消耗 FPGA/CPLD 的逻辑资源的数量,对于 FPGA 可以用所消耗的触发器 (FF)和查找表 (LUT)来衡量,更一般的 方法 可以用设 计所占用的等价逻辑门数来衡量。 “速度 ”指在芯片上稳定运行所能够达到的最高频率,这个频率由设计的时序状况决定,和时钟周期, PADto PAD Time, Clock Setup Time, Clock Hold Time, Clock-to-Output Delay 等众多时序特征量密切相关。面积和速度贯穿着 FPGA 设计的始终,是设计质量评价的终极标准。关于面积和速度的两个最基本的概念:面积与速度的平衡和面积与速度的互换
7、。 面积和速度是一对对立统一的矛盾体。要求一个设计同时具备设计面积最小,运行频率最高是 不现实的。更科学的设计目标应该是在满足设计时序要求 (包含对设计频率的要求 )的前提下,占用最小的芯片面积。或者在所规定的面积下,使设计的时序余量更大,频率跑得更高。这两种目标充分体现了面积和速度的平衡的思想。关于面积和速度的要求,不应该简单地理解为工程师水平的提高和设计完美性的追求,而应该认识到它们是和产品的质量和成本直接相关的。如果设计的时序余量比较大,跑的频率比较高,意味着设计 更加健壮 ,整个系统的质量更有保证;另一方面,设计所消耗的面积更小,则意味着单位芯片能 实现 更多 的功能模块,需要的芯片数
8、量更少,整个系统的成本也大幅度削减。作为矛盾的两个组成部分,面积和速度的地位是不一样的。相比之下,满足时序、工作频率的要求更重要一些,当两者冲突时,采用速度优先的准则。 面积和速度的互换是 FPGA设计的一个重要思想。从理论上讲,一个设计如果时序余量较大,所能跑的频率远远高于设计要求,那么就能通过功能模块复用减少整个设计消耗的芯片面积,这就是用速度的优势换面积的节约;反之,如果一个设计的时序要求很高,普通方法达不到设计频率,那么一般可以通过将数据流串并转换,并行复制多个操作模块,对整 个设计采取 “串并转换 ”的思想进行运作,在芯片输出模块再在对数据进行 “并串转换 ”,从宏观上看整个芯片满足
9、了处理速度的要求,这相当于用面积复制换速度提高。 举一个例子。假设数字信号处理系统输入数据流的速率是 350Mb/s,而在 FPGA 上设计的数据处理模块的处理速度最大为 150Mb/s,由于处理模块的数据吞吐量满足不了要求,直接在 FPGA上实现是不可能的。这种情况下,就应该利用 “面积换速度 ”的思想,至少复制成 3个处理模块,首先将输入数据进行串并转换,然后利用这三个模块并行处理分配的数据,然后将处理结果 “并串变 换 ”,就完成数据速率的要求。我们在整个处理模块的两端看,数据速率是 350Mb/s,而在 FPGA 的内部看,每个子模块处理的数据速率是 150Mb/s,其实整个数据的吞吐
10、量的保障是依赖于 3个子模块并行处理完成的,也就是说利用了占用更多的芯片面积,实现了高速处理,通过 “面积的复制换取处理速度的提高 ”的思想实现了设计。 FPGA 是英文 Field Programmable Gate Array 的缩写,即现场可编程门阵列,它是在PAL、 GAL、 EPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路( ASIC) 领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件 中 门电路数有限的缺点。 FPGA 采用了逻辑单元阵列 LCA( Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块 CLB(
11、Configurable Logic Block)、输出输入模块 IOB( Input Output Block)和内部连线( Interconnect)三个部分。 FPGA的基本特点: 1)采用 FPGA设计 ASIC 电路,用户不需要投片生产,就能得到合用的芯片。 2) FPGA可做其它全定制或半定制 ASIC 电路的中试样片。 3) FPGA内部有丰富的触发器和 I O 引脚。 4) FPGA是 ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速 CHMOS 工艺,功耗低,可以与 CMOS、 TTL电平兼容。 可以说, FPGA芯片是小批量系统提高系
12、统集成度、可靠性的最佳选择之一。 目前 FPGA 的品种很多,有 XILINX 的 XC 系列、 TI 公司的 TPC 系列、 ALTERA 公司的 FIEX系列等。 FPGA 是由存放在片内 RAM 中的程序来设置其工作状态的,因此,工作时需要对片内的 RAM进行编程。用户可以 根据不同的配置模式,采用不同的编程方式。 加电时, FPGA 芯片将 EPROM中数据读入片内编程 RAM中,配置完成后, FPGA 进入工作状态。掉电后, FPGA 恢复成白片,内部逻辑关系消失,因此, FPGA 能够反复使用。 FPGA 的编程无须专用的 FPGA编程器,只须用通用的 EPROM、 PROM编程器
13、即可。当需要修改 FPGA 功能时,只需换一片 EPROM 即可。这样,同一片 FPGA,不同的编程数据,可以产生不同的电路功能。因此, FPGA非常灵活。 FPGA 有多种配置模式:并行主模式为一片 FPGA 加一片 EPROM 的方式;主从模 式可以支持一片 PROM编程多片 FPGA;串行模式可以采用串行 PROM 编程 FPGA;外设模式可以将 FPGA作为微处理器的外设,由微处理器对其编程。 Verilog HDL 是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。 Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外, Verilog HDL 语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。 Verilog HDL 语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用 Verilog 仿真器进行验证。语言从 C 编程语言中继承了多种操作符和结构。 Verilog HDL 提供了扩展的建模能力,其中许多扩展最初很难理解。