今天,数字电子系统的设计方法及设计手段都发生了根本性变化,正由分立数字电路向可编程逻辑器件(PLD,ProgrammableLogic Device)及专用集成电路(ASIC,Application Specific IntegratedCircuit)转变。FPGA与CPLD(Programmable LogicDevice,复杂可编程逻辑器件)都属于PLD的范畴,它们在现代数字系统设计中正占据越来越重要的地位。
FPGA是由用户编程来实现所需逻辑功能的数字集成电路,它不仅具有设计灵活、性能高、速度快等优势,而且上市周期短、成本低廉。FPGA设计与ASIC前端设计十分类似,在领域中FPGA应用日益普及,已成为集成电路中最具活力和前途的产业。同时,随着设计技术和制造工艺的完善,器件性能、集成度、工作频率等指标不断提升,FPGA已越来越多地成为系统级芯片设计的首选。
FPGA由PAL(可编程阵列逻辑)、GAL(通用阵列逻辑)发展而来,其基本设计思想是借助于EDA开发工具,用原理图、状态机、布尔表达式、硬件描述语言等方法进行系统功能及算法描述,设计实现并生成编程文件,最后通过编程器或下载用目标器件来实现。
FPGA器件采用逻辑单元阵列(LCA,Logic CellArray)结构、SDRAM工艺,其中LCA由三类可编程单元组成。
(1)可配置逻辑块(CLB,Configurable LogicBlock):被称为核心阵列,是实现自定义逻辑功能的基本单元,散布于整个芯片;
(2)输入/输出模块(IOB,Input/OutputBlock):排列于芯片四周,为内部逻辑与器件封装引脚之间提供可编程接口;
(3)可编程互连资源(PI,Programmable Interconnect):包括不同长度的连线线段及连接,其功能是将各个可编程逻辑块或I/O块连接起来以构成特定电路。
全球生产FPGA的厂家很多,但影响力最大的是Xilinx公司和Altera公司,世界上第一片FPGA是在20世纪80年代中期Xilinx公司率先推出的。不同厂家生产的FPGA在可编程逻辑块的规模、内部互连线结构及所采用的可编程元件上存在较大差异,实际使用时应注意区分
FPGA设计包括描述层次及描述领域两方面内容。通常设计描述分为6个抽象层次,从高到低依次为:系统层、算法层、寄存器传输层、逻辑层、电路层和版图层。对每一层又分别有三种不同领域的描述:行为域描述、结构域描述和物理域描述。
系统层是系统最高层次的抽象描述,针对于电子系统整体性能。算法层又称为行为层,它是在系统级性能分析和结构划分后对每个模块的功能描述。算法层所描述的功能、行为最终要用数字电路来实现。而数字电路本质上可视为由寄存器和组合逻辑电路组成,其中寄存器负责信号存储,组合逻辑电路负责信号传输。寄存器传输层描述正是从信号存储、传输的角度去描述整个系统。寄存器和组合逻辑本质上是由逻辑门构成,逻辑层正是从逻辑门组合及连接角度去描述整个系统。
FPGA各个描述层次及综合技术关系如图1所示。传统的综合工具是将寄存器传输级(RTL)的描述转化为门级描述。随着以行为设计为主要标志的新一代系统设计理论的不断成熟,能够将系统行为级描述转化为RTL描述的高层次综合技术不断涌现。
作为现代集成电路设计的重点与热点,FPGA设计一般采用自顶向下、由粗到细、逐步求精的方法。设计最顶层是指系统的整体要求,最下层是指具体的逻辑电路实现。自顶向下是将数字系统的整体逐步分解为各个子系统和模块,若子系统规模较大则进一步分解为更小的子系统和模块,层层分解,直至整个系统中各子模块关系合理、便于设计实现为止。