FPGA的基本原理一、什么是FPGA?二、FPGA的内部结构三、FPGA内部逻辑模块结构四、FPGA内部I/O模块结构五、FPGA内部布线资源六、FPGA内部编程单元七、PGA的工作速度与速度等级八、FPGA内部逻辑模块数及触发器数九、FPGA内部的时钟网络十、FPGA的集成度十一、FPGA的封装十二、FPGA的功耗十三、FPGA的利用率十四、FPGA中的RAM十五、FPGA的JTAG接口十六、FPGA的设计安全性十七、FPGA的设计流程十八、FPGA的选用一、什么是FPGA?(一)、什么是PLD?lPLD即ProgrammableLogicDevice,称为可编程逻辑器件。按照制造工艺、编程方式、结构、规模的不同可分为PAL、GAL、EPLD、CPLD等不同种类。lPAL即Programmablearraylogic,是70年代末80年代初由MonolithicMemoriesInc。(现为AMD的一部分)首先推出。它是一种熔丝可编程的器件,采用双极性工艺生产,可用来把几片分立的TTL电路集成到一片PAL中。PAL是一次性编程的可编程逻辑器件。lGAL即GenericArrayLogic,是一种采用CMOS工艺生产的可编程逻辑器件,在结构上和PAL相似,可用来代替PAL。GAL是一种可重复编程的器件。lEPLD即可擦除的可编程逻辑器件,包括UV可擦除PLD和电可擦除PLD,EPLD在结构上增加输出宏单元的数目及提供更大的与阵列。lSPLD即Simple-PLD:它包括PAL、GAL和EPLD。lCPLD即Complex-PLD:它是在SPLD的基础上发展起来的,是由逻辑阵列块、可编程连线阵列和I/O模块组成。规模一般比SPLD大,结构一般较复杂。(二)、什么是FPGA?FPGA是英语(FieldprogrammableGateArray)的缩写,即现场可编程门阵。它的结构类似于掩膜可编程门阵(MPGA),由可编程逻辑功能块和可编程I/O模块排成阵列组成,并由可编程的内部连线连接这些逻辑功能块和I/O模块来实现不同的设计。1、FPGA与MPGA的区别:MPGA利用集成电路制造过程进行编程来形成金属互连,而FPGA利用可编程的电子开关实现逻辑功能和互连。2、FPGA与CPLD的区别:1)结构不同:FPGA是由可编程的逻辑模块、可编程的分段互连线和I/O模块组成,而CPLD是由逻辑阵列块、可编程连线阵列和I/O模块组成。2)CPLD延时可预测(Predictable),FPGA的延时与布局布线情况有关。3)CPLD组合逻辑多而触发器较少,而FPGA触发器多。(三)、FPGA的分类1、按可编程逻辑模块大小分:l细粒度型(fine-grain):内部可编程模块较小的FPGA,如Actel公司的FPGA。l粗粒度型(coarse-grain):内部可编程模块较大的FPGA,如Xilinx公司的FPGA。2、按可编程逻辑模块结构分:l多路开关型FPGA:可编程逻辑模块实现组合逻辑是用多路开关实现的。lRAM查找表型FPGA:可编程逻辑模块实现组合逻辑是用RAM查找表实现的。3、按可编程单元分:l基于RAM的FPGA这种类型的FPGA一般采用RAM查找表实现逻辑功能,而采用RAM单元控制的电子开关作为编程单元,由于FPGA的功能取决于RAM中的内容,所以改变RAM中的内容就可改变FPGA的电路功能,这种类型的FPGA可实现系统内可重复编程(In-systemreprogrammability)l逆熔丝型的FPGA这种类型的FPGA的编程单元采用逆容丝,由于逆容丝体积非常小,所以这种类型的FPGA保密性非常好。lFLASH型FPGA这种类型的FPGA的编程单元采用FLASH存储器作为电子开关的控制单元,所以采用这种编程单元的FPGA既具有系统内可重复编程性,又具有非易失性(Non-volatility)。4、按可重复编程性分:l一次性编程的FPGA:这种FPGA只能编程一次,如逆熔丝型FPGA就是一次性编程的FPGA。l可重复编程的FPGA:这种FPGA可以反复编程,如基于RAM的FPGA和FLASH型FPGA都可反复编程。(四)、FPGA的优点和其它类型的ASIC相比,FPGA具有以下优点:l不需要初始投资l不要提前制造l无库存风险l模拟工作费时较少l适合样品试制和小批量生产二、FPGA的内部结构LMI/OModulesFPGA内部由四部分组成:即可编程逻辑模块,可编程布线资源,可编程I/O模块。l可编程逻辑模块:是用来实现逻辑门及存贮单元的,理想的可编程逻辑模块应为用户提供高性能、高效、易设计的单元。l可编程布线资源:用来提供内部可编程逻辑模块之间及可编程逻辑模块与可编程I/O模块间的连接。l可编程I/O模块:为FPGA提供可编程引脚,使FPGA的引脚具有输入、输出、三态及双向功能。l编程单元:三、FPGA内部逻辑模块结构1、多路开关型FPGA内部逻辑模块结构1)多路开关实现可编程逻辑的原理在多路开关的输入端接上不同的电平或输入信号时,可实现不同的逻辑功能。下面二选一为例说明:absyY=sa+sbs•当a=0时:y=sb当a=0时,二选一可完成“与门”的功能。•当b=0时:y=sa当b=0时,二选一也可完成“与门”的功能,但这时其中一个输入反相了。•当b=0、a=1时:y=s当b=0、a=1时,二选一可完成“非门”的功能。•当b=1时:y=sa+s=a+s当b=1时,二选一可完成“或门”的功能。2)ACT1的逻辑模块:•下图为Actel公司生产的ACT1系列FPGA的逻辑模块框图,ACT1逻辑模块由三个二选一多路选择器和一个或门组成,是一个有8个输入一个输出的电路,它可实现两输入、三输入和四输入的与、或门、与非、或非门、与或门、或与门等,也可实现D型锁存器,用两个模块可实现各种类型的D触发器。•ACT1模块是如何实现三输入与门的?GNDYABCY2、查表型FPGA结构两输入与门:4X1RAM表:ABC000010100111A1A0Y000010100111四、FPGA内部I/O模块结构FPGA的I/O引脚都可设置为:输入、输出、双向、三态四种状态五、FPGA内部布线资源分段连接线,分段连线的两端为编程单元,通过对编程单元的编程来决定两个分段连线是否连接。六、FPGA内部编程单元1、逆熔丝开关逆熔丝开关的功能和熔丝开关正好相反,当加上编程电压后两端相连(电阻很小〈1kΩ〉,且为永久性连接;不编程时两端电阻很大(100MΩ)。市场上有两种类型的逆熔丝开关,分别是ACTEL公司的多晶硅-扩散逆熔丝和QuickLogic公司的金属-金属逆熔丝(ViaLinkTM)。l这种逆熔丝开关的面积很小,大约9um2,电阻较小(电阻与编程电压有关),电容很小,10fF(1.2um工艺)。2、采用浮栅编程技术的编程单元浮栅编程技术采用悬浮栅存储电荷的方法来保存数据,在断电时存储数据不丢失。包括三种:lEPROM:紫外线擦除、电编程。lEEPROM:一次可擦一个字l闪速存储器(FLASHMEMORY):完全擦除或擦除一段。3、晶体管开关80年代中期,XILINX和Altera推出了利用晶体管作为开关单元的FPGA器件。存储器单元来控制开关,而存储单元是可以擦除和重新编程的,从而使得采用这种技术的FPGA具有可重复编程性。SRAM开关单元由一个5个晶体管组成的RAM单元和1个通过晶体管(称为可编程互连点,PIP:ProgrammableInterconnectPoint)组成。PIP控制分段连线的连接情况(即:连或不连),PIP受RAM单元控制,位于PIP晶体管两边的分段连线是连还是不连由RAM单元的值决定。SRAM开关单元的面积:50~225μm2。电阻:800~1900Ω。电容:8~17Ff。七、FPGA的工作速度与速度等级1、FPGA速度指标:•内部触发器的反转频率:是FPGA内部工作的最高速度,但由于设计电路时触发器之间有组合电路,而且布线也存在迟延,所以FPGA的实际工作速度要比触发器的反转频率低很多。•系统工作频率:即FPGA的实际工作频率,与所选芯片及电路结构有关•时钟到输出的迟延:是衡量FPGA时钟网络性能的一个指标,如:10ns、5.6ns、4ns。•引脚到引脚的迟延:是衡量FPGA速度的一个指标,引脚到引脚的迟延越小,FPGA的实际工作速度会越高。2、FPGA的速度等级std-1比std快15%–2比std快25%-3比std快35%八、FPGA内部逻辑模块数及触发器数•内部模块数A54SX32A:2880,CC:1800,RC:1080,D:1980•每个逻辑模块所含触发器的个数ACTEL:1个XILINX:2个九、FPGA内部的时钟网络•FPGA内部的时钟网络–为时序电路提供大驱动能力、时钟歪斜小的时钟,或者用作大驱动全局信号,如:reset,output,selectsignal。–具有时钟网络是实现同步设计的基础。•时钟网络数:1:A40MX022:A42MX243:A54SX32A十、FPGA的集成度•门阵等效门:一个门阵等效门定义为一个两输入端的“与非”门。•系统门:是芯片上门的总数,是厂家指定给器件的一个门数。十一、FPGA的封装1、引脚数:FPGA芯片总的引脚数。2、用户I/O数:指除了电源引脚、特殊功能引脚外的引脚,这些引脚可根据用户的需要进行配置。3、I/O驱动电流:8mA或10mA。4、时钟网络数:FPGA芯片可能包含1个、2个或4个时钟网络。5、封装:PLCC,PQFP,CPGA等封装形式。6、工作温度范围:FPGA芯片一般有商用、工业用及军用等不同的工作温度范围。7、工作环境:一般分普通工作环境和航天工作环境。十二、FPGA的功耗FPGA的功耗可用下面的公式表示:P=[Iccs+Icca]*Vcc+Iol*Vol*N+Ioh*(Vcc-Voh)*M•其中包括静态功耗和动态功耗两部分:静态功耗:当输入输出都不变化时的功耗动态功耗:当输入输出变化时的功耗–在FPGA中动态功耗占主导地位。十三、FPGA的利用率l模块利用率模块利用率=所用模块数/FPGA总的模块数l门利用率指所设计电路用的门数与FPGA总的系统门数之比。十四、FPGA中的RAMl单口RAMl同步双口RAM:Actel公司的3200DX系列、42MX系列。lFPGA中RAM的容量lFPGA中RAM的速度:Actel公司的42MX系列FPGA的SRAM读写时间为5ns。十五、FPGA的JTAG接口随着电路板复杂度的增加及表面贴装技术的快速发展,电路板的测试就变得越来越昂贵和困难。IEEE就制定了Std.1149.1标准,由于它是JointTestActionGroup(JTAG)负责制定的,所以一般称为JTAG。JTAG通过边界扫描技术来实现对元件的性能、连接及相互作用的测试。FPGA厂商为了改善I/O引脚数很多的FPGA的可测试性与可制造性(Manufacturability)而增加的一个测试接口。十六、FPGA的设计安全性常用的器件的设计安全性依次为:SRAMFPGAFlash-basedPLDsASICsAntifuseFPGAs。•基于SRAM的FPGA安全性最差,较容易被仿制,而逆熔丝型FPGA安全性最好,最难仿制。十七、FPGA的设计流程设计输入设计验证FPGA的设计过程可分为五个阶段:设计实现编程测试十八、FPGA的选用1、比较器件的工艺器件的工艺决定了器件的性能、价格、功耗及工作环境及安全性2、了解器件的性能器件的性能包括:FPGA的容量、工作速度、封装(面积、I/O数)及安全性。3、评价其开发工具l了解开发系统的性能l了解开发系统的价格l了解开发系统销售商售后服务情况