现场可编程门阵列的结构与设计
摘要:现场可编程门阵列(FPGA——Field Programmable Gate Array)是上世纪80年代末发展起来的新型大规模集成逻辑器件。它采用高级计算机辅助设计技术进行器件的开发与设计,其优越性大大超过普通TTL集成门。重点介绍了FPGA的基本组成原理及设计方法。
关键词:现场可编程门阵列;可配置逻辑块;专用集成电路
1 引言
FPGA是上世纪80年代末开始使用的大规模可编程数字集成电路器件。它充分利用计算机辅助设计技术进行器件的开发与应用。用户借助于计算机不仅能自行设计专用集成电路芯片,还可在计算机上进行功能仿真和实时仿真,及时发现问题,调整电路,改进设计方案。这样,设计者不必动手搭接电路、调试验证,只须在计算机上操作很短的时间,即可设计出与实际系统相差无几的理想电路。而且,FPGA器件采用标准化结构,体积小、集成度高、功耗低、速度快,可无限次反复编程,因此,成为科研产品开发及其小型化的首选器件,其应用极为广泛。
2 FPGA的基本组成原理
FPGA的基本组成与生产厂家有关,不同厂家的器件其结构、工艺技术和编程方法各不相同。目前国内广泛使用Xilinx公司生产的FPGA器件。XilinxFPGA采用逻辑单元阵列(Logic Cell Array—简称LCA)结构,其示意图如图1所示。
图1 Xilinx公司FPGA结构图
由图1可知,XilinxFPGA由3个可编程基本单元阵列组成:输入/输出块(I/OBlock—简称I/OB)阵列,可配置逻辑块(Configurable LogicB lock—简称CLB)阵列及可编程互连网络(Programmable Interconnect—简称PI)。其中输入/输出块排列在芯片周围,它是可配置逻辑块与外部引脚的接口。可配置逻辑块是FPGA的核心,它以矩阵形式排列在芯片中心。每个CLB均可实现一个逻辑功能小单元。各CLB之间通过互连网络编程连接,以实现复杂的逻辑功能。
3 FPGA的开发过程
FPGA的开发过程依赖于它的软件开发系统,其设计流程如图2所示。
由图2可知,FPGA的基本设计流程分为3部分:设计输入,设计实现及设计验证。
图2FPGA的基本设计流程
3.1 设计输入
设计输入是将要实现的逻辑关系以开发系统所支持的方式输入计算机,这是设计FPGA的开始。有多种方法实现设计输入,最常用的是原理图编辑器。它允许用2种方式进行设计输入:
1)图形输入这种输入方式允许使用元件库中提供的各种常规门电路及逻辑部件(宏单元)设计电路,并以原理图的方式输入;
2)文本输入这种输入方式允许使用高级可编程逻辑设计语言,如VHDL,ABEL、CUPL语言等编写输入文件,也允许直接用布尔方程进行输入。
设计输入的目的是要产生一个XNF(Xilinx Netlist Format)文件,这是设计实现和设计验证的输入文件。如果同时采用图形输入和文本输入,则还需要进行归并(XNFMERGE)处理,以产生一个完整的XNF文件。
3.2 设计实现
设计实现是设计开发过程的核心,其主要任务是对归并后的XNF文件进行分割、布局和布线。分割是把XNF文件中的逻辑设计经过化简,分割成为以CLB及I/OB为基本单元的逻辑设计。布局是把分割后的逻辑设计分配到FPGA的相应CLB及I/OB位置。布线是对已布局好的CLB,I/OB进行连线。Xilinx开发软件具有自动布局、布线功能,它能在布局、布线过程中采用一系列优化程序,找出最佳布局、布线方案。设计实现的最终目的是产生符合设计要求的比特流文件。这是用来为FPGA芯片装载的二进制文件。
3.3 设计验证
设计验证主要是对电路进行仿真测试。仿真测试包括功能仿真和实时仿真。功能仿真假设信号通过每个逻辑门产生同样的延迟时间(0.1ns),而通过路径没有延时。这种仿真可测试系统功能是否满足设计要求。实时仿真是在布局布线后进行,它能按照所选器件的实际延迟时间进行模拟,主要用来验证系统的时序关系。
设计输入、设计实现和设计验证三个部分交替进行,最后得到完全满足设计要求的二进制文件。用该文件通过加载电缆或编程EPROM对FPGA加载,即可得到用户需要的专用集成电路芯片。
4 FPGA设计方法
4.1 时钟信号分配技术
时钟分配网络是FPGA芯片中的特殊布线资源,由特定的引脚和特定的驱动器驱动,只能驱动芯片上触发器的时钟输入端或除了时钟输入端外有限的一些负载,其反相功能一般可在可编程逻辑块(CLB)或可编程输入输出块(I/OB)内部实现,其目的是为设计提供小延迟偏差的时钟信号。因此,FPGA特别适合于同步电路设计技术,尽可能减少使用的时钟信号种类。而在TTL电路设计中经常采用的由组合逻辑生成多个时钟,然后分别驱动多个触发器以装入和保持数据的设计方法,对FPG
- 基于FPGA的DSP设计方法(08-26)
- 电力电子装置控制系统的DSP设计方案(04-08)
- 基于DSP Builder的VGA接口设计(04-10)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)
- 基于DSP的嵌入式显微图像处理系统的设计(06-28)