首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FPGA学习 第二章

FPGA学习 第二章

2
FPGA简介:

可编程逻辑器件,广义上讲,是指一切通过软件手段更改、配置器件内部连接结构和逻辑单元,完成既定的设计功能的数字集成电路。目前,常见的逻辑器件主要有简单的逻辑阵列(PAL/GAL)、复杂可编程逻辑器件(CPLD)和现场可编程逻辑阵列(FPGA)。新一代的FPGA集成了中央处理器(CPU)或者DSP内核。在一片FPGA上很容易实现软硬件协同设计,为实现片上可编程系统(SOC)提供了强大的硬件支持。
PAL/GAL是早期可编程逻辑器件的发展形势,其特点是大多基于(电可擦除的互补MOS)工艺,,结构较为简单,可编程逻辑器件多为与阵列或和或阵列,可编程单元密度较低,但是它们一出现即以其低功耗、低成本、高可靠性、软件可编程性、可重复改写等特点引起了极大的关注。

复杂可编程逻辑器件(CPLD)一般也采用工艺,但也有少数厂商采用Flash工艺,其基本结构有I/O单元、基本逻辑单元、布线池和其他辅助功能模块组成。可完成一些较复杂、较高速的逻辑功能,如接口转换、总线控制等。

现场可编程逻辑阵列(FPGA)是在此基础上发展起来的新型高性能可编程逻辑器件。一般采用SRAM工艺,也有一些专用器件采用Flash工艺或反熔丝等。FPGA集成度很高,从数万系统门到数千万系统门。适应于高速、高密度、高端数字逻辑电路设计领域。目前,两大厂商XilinxAltera
可编程逻辑器件(Programmable Logic Devices, PLD)是上世纪70年代发展起来的一种通用性集成逻辑器件。它是大规模集成电路技术飞速发展的产物,是一种半定制的集成电路。可编辑器件经历了从PROM(Programmable Read Only Memory)PLA(Programmable Logic Array)PAL(Programmable Array Logic)、可重复编程的通用阵列逻辑GAL(Generic Array Logic)、采用大规模集成电路技术的EPLD、到CPLDFPGA的发展过程。
FPGA基本结构:可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入式功能单元、内嵌专用硬核等。
同器件商不同器件族的FPGA支持的I/O标准也不一样,一般常见的电气标准由LVTTLLVCMOSPCI等。
基于SRAM工艺的FPGA的可编程逻辑单元是由查找表(LUT)和寄存器组成。内部查找表一般是4输入的,查找表一般完成纯组合逻辑功能。可编程逻辑功能块是实现用户功能的基本单元。
目前大多数FPGA都有内嵌的RAM。块RAM可被配置为单端口RAM、双端口RAM、内容地址存储器(CAM)以及FIFO等常用存储结构。
FPGA芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别:第一类是全局布线资源,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线资源,用以完成芯片间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。
DLLPLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。
FPGA具有很多优点:可以直接面向用户;灵活性和通用性好;开发效率高;成本低可靠性好等优点。因此FPGA适合于设计各种复杂电路。
FPGA的开发流程:
一般情况下,FPGA系统设计流程主要包括设计输入、综合、布局布线、时序仿真和功能仿真、编程下载和硬件测试。
1)
设计输入是指将电路以一定的表达方式输入进计算机,通常是在软件平台对其进行操作。常用设计输入方法有:图形输入和HDL文本编辑。图形输入包括状态图输入、波形图输入和原理图输入。在构建系统模块时,HDL文本输入用的最多,它是最有效、最通用的输入方法。
2)
综合就是将描述电路的高级语言(行为描述语言)转化成较低级的、可以和PFGA的基本结构相映射的网表文件或程序。经过综合,综合器一般会生成一种或多种格式的网表文件,如VHDLVerilogEDIFVQM等标准格式。整个综合的过程就是在软件平台上编辑的HDL文本文件或者采用图形输入,依据指定的硬件和约束条件进行编译、优化、转换和综合,最终生成门级电路或者更底层的电路描述网表文件。综合通常不是单方向的,为了满足速度、面积等一些要求,通常对要综合加以约束。      
3)
布局布线。布局布线又称为适配,是指适配器将综合后得到的网表型文件映射到指定的目标器件上的过程,包括底层器件的配置、逻辑分割、逻辑优化及逻辑布局布线等。适配产生的仿真文件可以通过时序仿真来验证是否满足时序要求,适配结束后会产生最终的编程下载文件,如sofpof等格式的文件。
4)
仿真验证。仿真验证即使用软件对适配后的文件进行模拟测试,它是FPGA设计过程中的重要步骤。时序仿真就是尽量模拟真实器件运行时的特征来进行仿真,是指将第一步所设计出来的设计输入翻译成由与、或、非、RAMROM、寄存器等基本逻辑单元组成的逻辑网表,在此过程中一般加入一定的约束条件。优化是指将逻辑化简,去掉逻辑描述中的冗余项,节省硬件资源。
5)
编程配置。指软件通过下载USB线或下载电缆线将适配后的最终编程文件下载到FPGA芯片中。
返回列表