FPGA的结构介绍FPGA的结构介绍
单元型FPGA主要由三部分组成:可配置逻辑模块CLB(Configurable Logic Block),输入、输出模块I/OB和可编程连线PI(Programmable Interconnect)。对于不同规格的芯片,可分别包含8×8、20×20、44×44甚至92×92个CLB阵列,同时配有64、160、352、甚至448个I/OB以及为实现可编程连线所必需的其它部件。图2所示是本设计中使用的XC2S30芯片的内部结构。
Xinlinx公司的SpartanII系列FPGAXinlinx公司目前生产的FPGA有两类代表性产品一类是XC40003/Spartan系列另一类是Vir-tex/SpartanII系列。这两类产品除具有FPGA的三种基本资源(可编程I/O、可编程逻辑功能模块CLB和可编程布线等)外还具有片内RAM资源。但两种产品也有所不同。其中XC4000E可以用于实现片内分布RAM,同时专门为实现可编程片上系统开发的Virtex系列,其片内分布RAM和块RAM都可以实现,并可实现片上系统所要求的其他性能,如时钟分配和多种电平接口等特性。SpartanII系列与Virtex系列产品相比,除了块RAM数量少于Virtex系列产品外,其余有关性能(如典型门范围、线宽、金属层、芯内电压、芯片输入输出引脚电压、系统频率和所含DLL个数等)都基本相同,它的一个突出优点(也是本设计选用该系列芯片的主要原因)是:该系列产品是专门为取代掩膜门阵列的低价位FPGA,在达到门阵列数量时,其价格可与门阵列相比。因此,本文介绍的时钟电路的设计选用SpartanII系列FP-GA中的XC2S30-5PQ208芯片来实现。3 用FPGA实现时钟分频和分配如图2所示SpartanII系列芯片内部含有四个全数字延时锁定环(DLL),每一个DLL可驱动两个全局时钟分布网络。通过控制DLL输出时钟的一个采样可以补偿由于布线网络带来的时钟延时,从而有效消除从外部输入端口到器件内部各个时钟负载的延时。DLL除提供对用户输入时钟的零延时之外,还具有时钟倍频和分频功能。它可以对时钟源进行两倍频和1.5、2、3、4、5、8或16分频。本设计就是利用DLL的零延时和分频功能来实现对62.5MHz时钟的输出和16分频后4MHz(约)时钟的输出。3.1 数字延时锁定环(DLL)的结构原理图3是一个DLL的内部原理框图,它由各类时钟延时线和控制逻辑组成。延时线主要用于对时钟输入端CLKIN产生一个延时。通过器件内部的时钟分布网络可将该输入时钟分配给所有的内部寄存器和时钟反馈端CLKFB。控制逻辑则主要用于采样输入时钟和反馈时钟以调整延时线。这里所说的延时线由压控延时或衰减延时组件构成,SpartanII系列芯片选用了后者。DLL可在输入时钟和反馈时钟之间不停地插入延时,直到两个时钟的上升沿同步为止。当两时钟同步时,DLL锁定。在DLL锁定后,只要输入时钟没有变化,两时钟就不会出现可识别偏差。因此,DLL输出时钟就补偿了时钟分布网络带来的输入时钟延时,从而消除了源时钟和负载之间的延时。
DLL功能的实现SpartanII系列芯片内含专门实现DLL功能的宏单元模块BUFGDLL,其结构简图如图4所示。该模块由IBUFG、CLKDLL和BUFG三个库元件组成其原理框图如图5所示。图5中,CLKDLL库元件用于实现DLL的主要功能包括完成时钟的零延时输出、时钟的倍频以及分频和镜像操作。而IBUFG和BUFG则分别实现外部时钟的输入以及将输出时钟分配到芯片引脚。本设计的时钟分频就是将62.5MHz的时钟由IBUFG输入经CLKDLL分频后再由CLKDV端传给BUFG然后经片内IOBUF分配到芯片的普通I/O输出引脚。
(本文由Cogo商城-IC元器件在线采购平台搜集整理,
浏览

了解更多详细信息)