FPGA技术教程(通俗易懂)_第1页
FPGA技术教程(通俗易懂)_第2页
FPGA技术教程(通俗易懂)_第3页
FPGA技术教程(通俗易懂)_第4页
FPGA技术教程(通俗易懂)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FPGA技术2.CPLD/FPGA概述1.可编程逻辑器件发展历程3.CPLD/FPGA基本原理4.FPGA设计方法5.FPGA设计流程7.PLD/FPGA发展趋势6.VerilogHDL语言简介1.可编程逻辑器件的发展历程

可编程逻辑器件(PLD)

可编程阵列逻辑(PAL)可编程逻辑阵列(PLA)

Xilinx的FPGAAltera的CPLD早期FPGAFPGA技术现在Xilinx:基于查找表技术,SRAM工艺,要外挂配置用的EEPROM的PLD叫FPGA(FieldProgramableGateArray)基于乘积项技术,Flash(类似EEPROM工艺)工艺的PLD叫CPLDAltera:MAX系列(乘积项技术,EEPROM工艺),FLEX系列(查找表技术,SRAM工艺)都叫作CPLD(ComplexProgramableLogicDevice),即复杂PLD(ComplexPLD)。FPGA技术FPGA技术2.CPLD/FPGA概述二维的逻辑块阵列,构成了PLD器件的逻辑组成核心。输入/输出块:·连接逻辑块的互连资源连线资源:由各种长度的连线线段组成,其中也有一些可编程的连接开关,它们用于逻辑块之间、逻辑块输入/输出块之间的连接

典型的PLD框图I/O控制模块(block)逻辑块连线资源FPGA技术规模大,能够完成任何数字逻辑的功能,实现系统集成在投片前验证设计的正确性,开发成本低修改设计而不用改动硬件电路,开发周期短减少PCB面积,提高系统可靠性FPGA技术PLD(CPLD/FPGA)的优点:FPGA技术CPLD和FPGA的区别制造工艺不同实现功能不同FPGA:查找表技术,SRAM工艺CPLD:乘积项技术,Flash/EEPROM工艺FPGA:时序逻辑电路CPLD:组合逻辑电路3.CPLD/FPGA基本原理FPGA技术◆基于查找表的PLD的基本结构及逻辑实现原理◆基于乘积项的PLD的基本结构及逻辑实现原理◆基于乘积项的PLD的基本结构及逻辑实现原理

这种FPGA的结构可分为三块:宏单元(Macrocell)、可编程连线(PIA)和I/O控制块。宏单元是器件的基本结构,由它来实现基本的逻辑功能;可编程连线负责信号传递,连接所有的宏单元;I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。

INPUT/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2是全局时钟、清零和输出使能信号,这几个信号有专用连线与器件中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。FPGA技术宏单元具体结构与或阵列,每一个交叉点都是可编程熔丝,导通实现与逻辑“或”阵列可编程D触发器FPGA技术乘积项结构的逻辑实现原理f=(A+B)*C*!D=A*C*!D+B*C*!Df=f1+f2=A*C*!D+B*C*!DFPGA技术查找表(Look-Up-Table)的原理和结构查找表LUT实质上是一个RAM,n位地址线可以配置为n×1的RAM。当用户描述了一个逻辑电路后,软件会计算所有可能的结果,并写入RAM。每一个信号进行逻辑运算,就等于输入一个地址进行查表,找出地址对应的内容,输出结果FPGA技术XilinxSpartan-II内部结构FPGA技术Altera的FLEX/ACEX等芯片的内部结构FPGA技术查找表结构的逻辑实现原理f=(A+B)*C*!D=A*C*!D+B*C*!DFPGA技术选择FPGA还是CPLDCPLD组合逻辑的功能很强,一个宏单元就可以分解十几个甚至20-30多个组合逻辑输入。而FPGA的一个LUT只能处理4输入的组合逻辑,因此,CPLD适合用于设计译码等复杂组合逻辑。但FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是几千上万,CPLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于CPLD。FPGA技术4.FPGA的设计方法FPGA的常用设计方法包括“自顶向下”和“自下而上”,目前大规模FPGA设计一般选择“自顶向下”的设计方法。所谓“自顶向下”设计方法,简单地说,就是采用可完全独立于芯片厂商及其产品结构的描述语言,在功能级对设计产品进行定义,并结合功能仿真技术,以确保设计的正确性,在功能定义完成后,利用逻辑综合技术,把功能描述转换成某一具体结构芯片的网表文件,输出给厂商的布局布线器进行布局布线。布局布线结果还可反标回同一仿真器,进行包括功能和时序的后验证,以保证布局布线所带来的门延时和线延时不会影响设计的性能。FPGA技术自顶向下设计方法学顶层模块子模块1子模块2子模块3叶单元叶单元叶单元叶单元叶单元叶单元FPGA技术FPGA技术RTL代码逻辑综合器调用模块的黑盒子接口设置综合目标和约束条件EDIF网表(netlist)HDL网表(netlist)RTL代码逻辑仿真器(modelsim)调用模块的行为仿真模型测试数据测试程序(testbench)5.FPGA设计流程(1)设计定义(2)设计输入布尔等式设计,原理图设计,HDL语言设计(3)功能仿真RTL代码中引用的由厂家提供的宏模块/IP

(4)逻辑综合(5)前仿真HDL网表(netlist)逻辑仿真器测试数据调用模块的行为仿真模型测试程序(testbench)(6)布局布线EDIF网表(netlist)FPGA厂家工具调用模块的综合模型设置布局布线约束条件HDL网表(netlist)SDF文件(标准延时格式)下载/编程文件(7)后仿真HDL网表(netlist)SDF文件(标准延时格式)逻辑仿真器测试数据FPGA基本单元仿真模型测试程序(testbench)(8)静态时序分析(9)在系统测试6.VerilogHDL语言简介能力设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。主要功能基本逻辑门,例如and、or和nand等都内置在语言中开关级基本结构模型,例如pmos和nmos等也被内置在语言中可采用三种不同方式或混合方式对设计建模两类数据类型能够描述层次设计,可使用模块实例结构描述任何层次能够使用门和模块实例化语句在结构级进行结构描述FPGA技术VerilogHDL建模概述1.模块

Verilog的基本描述单位,用于描述某个设计的功能或结构及与其他模块通信的外部端口加法器实例moduleaddr(a,b,cin,count,sum);input[2:0]a;input[2:0]b;inputcin;outputcount;output[2:0]sum;assign{count,sum}=a+b+cin;endmoduleFPGA技术模块的结构modulemodule_name(port1,port2,......);//Declarations:input,output,inout,reg,wire,parameter,function,task,...//Statements:InitialstatementAlwaysstatementModuleinstantiationGateinstantiationContinuousassignmentendmoduleFPGA技术模块的端口inputregornetoutputnetnetregornetinoutnetnetFPGA技术2.时延信号在电路中传输会有传播延时等,如线延时、器件延时。时延就是对延时特性的HDL描述。assign#2B=A`timescale1ns/100psFPGA技术建模方式结构化描述方式数据流描述方式行为描述方式FPGA技术结构化描述方式结构化的建模方式就是通过对电路结构的描述来建模,即通过对器件的调用,并使用线网来连接各器件。moduleFA_struct(A,B,Cin,Sum,Count);inputA;inputB;inputCin;outputSum;outputCount;wireS1,T1,T2,T3;

xorx1(S1,A,B);

xorx2(Sum,S1,Cin);andA1(T3,A,B);andA2(T2,B,Cin);andA3(T1,A,Cin);orO1(Cout,T1,T2,T3);endmoduleFPGA技术数据流描述方式数据流的建模方式就是通过对数据流在设计中的具体行为的描述的来建模。最基本的机制就是用连续赋值语句。在连续赋值语句中,某个值被赋给某个线网变量(信号)。`timescale1ns/100psmoduleFA_flow(A,B,Cin,Sum,Count)inputA,B,Cin;outputSum,Count;wireS1,T1,T2,T3;assign#2S1=A^B;assign#2Sum=S1^Cin;assign#2T3=A&B;assign#2T1=A&Cin;assign#2T2=B&Cin;endmoduleFPGA技术行为描述方式行为方式的建模是指采用对信号行为级的描述(不是结构级的描述)的方法来建模。在表示方面,类似数据流的建模方式,但一般是把用initial块语句或always块语句描述的归为行为建模方式。行为建模方式通常需要借助一些行为级的运算符如加法运算符(+),减法运算符(-)等。moduleFA_behav1(A,B,Cin,Sum,Cout);inputA,B,Cin;outputSum,Cout;regSum,Cout;regT1,T2,T3;always@(AorBorCin)beginSum=(A^B)^Cin;T1=A&Cin;T2=B&Cin;T3=A&B;

Cout=(T1|T2)|T3;endendmodulemoduleFA_behav2(A,B,Cin,Sum,Cout);inputA,B,Cin;outputSum,Cout;regSum,Cout;always@(AorBorCin)begin{Count,Sum}=A+B+Cin;endendmoduleFPGA技术VerilogHDL的数据类型reg是最常用的寄存器类型,寄存器类型通常用于对存储单元的描述,如D型触发器、ROM等。存储器类型的信号当在某种触发机制下分配了一个值,在分配下一个值之时保留原值。但必须注意的是,reg类型的变量,不一定是存储单元,如在always语句中进行描述的必须用reg类型的变量。reg类型定义语法如下:reg[msb:lsb]reg1,reg2,...regN;msb

和lsb

定义了范围,并且均为常数值表达式。范围定义是可选的;如果没有定义范围,缺省值为1位寄存器。例如:reg[3:0]Sat;//Sat为4位寄存器。regCnt;//1位寄存器线网寄存器线网类型主要有wire和tri两种。线网类型用于对结构化器件之间的物理连线的建模。如器件的管脚,内部器件如与门的输出等。由于线网类型代表的是物理连接线,因此它不存贮逻辑值。必须由器件所驱动。通常由assign进行赋值FPGA技术FPGA技术阻塞赋值和非阻塞赋值阻塞赋值=

在数据流描述中用于连续赋值在行为描述中用于对组合逻辑赋值顺序进行非阻塞赋值<=

在行为描述中用于对时序逻辑赋值并行操作,只能对寄存器赋值7.PLD/FPGA发展趋势工艺技术的进步使FPGA性能更强◆更高性能

◆更低成本

采用深亚微米的半导体工艺后,器件在性能提高的同时,价格也在逐步降低。由于便携式应用产品的发展,对现场可编程器件的低压、低功耗的要求日益迫切。因此,无论哪个厂家、哪种类型的产品,都在瞄准这个方向而努力。例如在前面所提到的Xilinx公司的SpantanTM系列的FPGA、Altera公司的APEX20KE器件、ACEX系列以及Actel公司的SX系列产品都是向高密度、低压、低功耗发展的典范。不仅如此,更有新型的公司以其特色的技术加入低压、低功耗芯片的竞争。典型的如PhilipsSemiconductors推出的CoolRunner960,是一种具有960个宏单元的CPLD,无论在何种应用中,都能提供标准的6ns传输延迟、工作于3v的电压下。该器件低功耗的关键是采用了ZeroPower互连阵列,它用一个由外部逻辑实现的CMOS门,代替了其它CPLD常用的对电流敏感的运放。这样当其它的相等规模的CPLD需要消耗250mA的静电流时,CoolRunner960的耗电不到100mA。

采用90nm工艺的FPGA,在容量对等的前提下,生产的FPGA的硅片尺寸变得更小,使得成本大为降低FPGA技术◆IP复用◆混合FPGA

设计理念的创新使FPGA向SOPC方向发展为了更好的满足设计人员的需要,扩大市场,各大现场可编程逻辑器件的厂商都在不断的扩充其知识产权(IP)核心库。这些核心库都是预定义的、经过测试和验证的、优化的、可保证正确的功能。设计人员可以利用这些现成的IP库资源,高效准确的完成复杂片上的系统设计。典型的IP核库有Xilinx公司提供的LogiCORE和AllianceCORE。半导体产品的一贯目标是以更小的尺寸、更低的成本和更小的功耗,获得更高的质量与性能。从设计角度来看,它的趋势是以各种宏模块的集成来代替分离的芯片,混合FPGA便是这一趋势下的必然产物。所谓混合FPGA,是指将各类数字电路单元(可编程逻辑、CPU/DSP、存储器等)和模拟电路单元(模拟线性电路、A/D、D/A等)的FPGA。随着IC技术的成熟与厂商间的激烈竞争,混合FPGA开始吸引IC厂商的目光,这也是由于其自身的特点造成的。由于混合FPGA不必驱动芯片外的数字负载,因而可以满足产品对低功耗、高性能的要求。此外,采用混合FPGA可减少所占用的印制电路板(PCB)实际面积,从而大大地降低成本。因此,混合FPGA能以更小的尺寸、更低的成本和更小的功耗,获得更高的质量与性能,以强大的市场竞争力受到整机厂商的欢迎。FPGA技术总结与结论

综上所述,我们可以看到在新世纪,以FPGA为代表的数字系统现场集成技术正朝着以下几个方向发展。

1、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论