FPGA技术教程(通俗易懂)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
布尔等式设计,原理图设 计,HDL语言设计
EDIF网表 SDF文件 EDIF 网表 ( netlist) (标准延时格式) (netlist) HDL网表 (netlist)
逻辑综合器
RTL代码中引用的由 厂家提供的宏模块 /IP 调用模块的 测试程序
行为仿真模型
HDL网表 FPGA基本单 调用模块的 (netlist) 元仿真模型 综合模型
自顶向下设计方法学
顶层模块
子模块1
子模块2
子模块3
叶单元
叶单元
叶单元
叶单元
叶单元
叶单元
五、FPGA设计流程
RTL代码
调用模块 的黑盒子 接口
设置综合目 标和约束条 件
测试数据
(1)设计定义 (2)设计输入 (3)功能仿真 (4)逻辑综合 (5)前仿真 (6)布局布线
HDL网表 (netlist)
2)集成度大于1000门/每片的HDPLD • FPGA ( Field Programmable Gate Array) • CPLD ( Complex Programmable Logic Device)
• •
2.从结构上可分为: 1)乘积项结构器件:为“与—或”阵列结构,大部分简 单PLD和 • CPLD都属于这个范畴; • 2)查找表结构器件:由查找表组成可编程门,再构成阵 列形式, • FPGA属于此类器件。
4.PLD中或阵列的表示
5. 阵列线连接表示
编程前
编程后
6.PROM的PLD阵列图
二、FPGA/CPLD的结构
FPGA/CPLD的结构各有其特点和长处,但概括起来,它们是由三 大部分组成的: 1.逻辑阵列块 LAB (Logic Array Block)或CLB(Configurable Logic Block),构成了PLD器件的逻辑组成核心。 2.输入/输出块 IOB(I/O Block) 3.连接逻辑块的可编程连线阵列 PIA (Programmable Interconnect Array)或互连资源 IR(Interconnect Resources).它由各种长度的连线 线段组成,也有一些可编程的连接开关,用于逻辑块之间、逻辑块与 输入/输出块之间的连接。
• 二、可编程器件的分类
1.按集成度来划分,分为高密度和低密度PLD器件。 • • • • • 1)集成度小于1000 门/每片的LDPLD,又称简单PLD。 PROM(可编程只读存储器) PLA (可编程逻辑阵列 ,Programmable Logic Array) PAL (可编程阵列逻辑 ,Programmable Array Logic) GAL (通用阵列逻辑,Generic Array Logic)
一、 Verilog HDL设计模块的基本结构
• Verilog HDL程序设计由模块(module)构成的, 设计模块的基 本结构如图,一个完整的Verilog HDL设计模块包括端口定义、 I/O声明、信号类型声明和功能描述4个部分。
1 模块端口的定义 • 模块端口定义用来声明电路设计模块 的输入/输出端口,端口定义格式如下: module 模块名 (端口1,端口2,端口3,…); • 在端口定义的括号中,是设计电路模块与外界联系的全部输入 /输出端口信号或引脚,是设计实体对外的一个通信界面,是外 界可以看到的部分(不包含电源和接地端),多个端口之间用 “,”分隔。例如1位全加器adder模块的端口定义为module adder (S, CO, A, B, CI); 模块名adder
第二章 CPLD/FPGA概述
一、 二、 三、 四、 五、 简单的PLD 结构 FPGA/CPLD的结构 FPGA/CPLD的基本原理 FPGA的设计方法 FPGA设计流程
•二维的逻辑块阵列,构成了PLD器件的逻 辑组成核心。 •输入/输出块:· 连接逻辑块的互连资源 •连线资源:由各种长度的连线线段组成,其中也有 一 些可编程的连接开关,它们用于逻辑块之间、逻辑块 输入/输出块之间的连接
一. 简单PLD的结构 任何组合函数都可以表示为与-或表达式:如 F=AB+BCD 。PLD由“与门阵列”和“或门阵列”加上输 入输出电路构成。 早期的PLD有些是“与”阵列可编程, 有些是“或”阵列可编程,还有些是“与”和“或”阵列 都可编程。
1.输入缓冲器
2.PLD的互补输入
3.PLD中与阵列表示
数据流图、真 值表、状态 机
门级
版图级
布尔方程、真 逻辑门、触发器、锁 值表 存器构成的逻辑图 几何图形 图形连接关系
Verilog HDL语言简介
能力
设计的行为特性、设计的数据流特性、设计的结构组成以及 包含响应 监控和设计验证方面的时延和波形产生机制。提供 了编程语言接口,通过该接口可以在模拟、验证期间从设计 外部访问设计,包括模拟的具体控制和运行。
FPGA技术Βιβλιοθήκη Baidu
第一章 可编程逻辑器件发展历程 第二章 CPLD/FPGA概述 第三章 硬件描述语言VHDL/Verilog HDL简介
第四章 Quartus II的Verilog HDL建模与仿真
第一章 可编程逻辑器件的发展历程
一、 二、 可编程逻辑器件的发展历程 可编程逻辑器件的分类
可编程逻辑器件(PLD)
PLD(CPLD/FPGA)的优点:
•规模大,能够完成任何数字逻辑的功能,实现系统集成 •在投片前验证设计的正确性,开发成本低 •修改设计而不用改动硬件电路,开发周期短 •减少PCB面积,提高系统可靠性
CPLD和FPGA的区别
•制造工艺不同 FPGA:查找表技术,SRAM工艺 CPLD:乘积项技术,Flash/EEPROM工艺 •实现功能不同 FPGA:时序逻辑电路 CPLD:组合逻辑电路
3. 从编程工艺上分为: 1)熔丝(Fuse)型器件:编程过程就是根据设计的熔丝图文件来烧断 对应的熔丝,来达到编程的目的。编程后即使系统断电,它们中存 储的 编程信息不会丢失 。 2)反熔丝(Antifuse)型器件:由Actel公司推出,在编程处通过击穿漏 层使得两点之间获得导通。反熔丝PLD抗辐射,耐高低温,功耗低, 速度快,在军品和宇航上有较大优势。前两种都属OTP器件。 3)EPROM型:紫外线擦除电可编程逻辑器件,它用较高的编程电 压进行编程,当需要再次编程时,用紫外线擦除。前三种较少使用。 4)EEPROM型:电可擦除可编程逻辑器件。CPLD采用此编程工艺。 5)SRAM型:SRAM查找表结构的器件,大部分的FPGA采用此编程 工艺。断电后编程信息会丢失,每次上电时,需从器件外部存储器将 编程数据重新写入SRAM中。允许无限次编程。 6)Flash(Fastflash)型:即闪存技术,由Actel公司推出。采用此编 程工艺的器件,可以实现多次可编程,也可以做到掉电后不需要重新 配置。CPLD采用此编程工艺。
设置布局布线 测试程序 约束条件 (test bench)
测试数据
(test bench)
调用模块 的行为仿 真模型
FPGA厂家工具 逻辑仿真器 逻辑仿真器
RTL代码
测试程序 (test bench)
测试数据
(9)在系统测试
下载/编程文件
HDL网表 (netlist)
SDF文件 (标准延时格式)
逻辑仿真器 (modelsim) (7)后仿真 (8)静态时序分析
VHDL VHDL 主要用于描述数字系统的结构、行为、功 能和接口。 Verilog HDL Verilog HDL是在C语言的基础上发展而来的硬件 描述语言,具有简洁、高效、易用的特点。
语言 设计层次 系统级 RTL级
Verilog HDL 行为描述 系统算法
VHDL 结构描述 系统逻辑框图 寄存器、ALU、 ROM等分模块描 述
这种FPGA的结构可分为三块:宏单元 (Macrocell)、可编程连线(PIA)和I/O控制块。 宏单元是器件的基本结构,由它来实现基本的逻辑 功能;可编程连线负责信号传递,连接所有的宏单 元;I/O控制块负责输入输出的电气特性控制,比如 可以设定集电极开路输出,摆率控制,三态输出等。
宏单元具体结构
四、FPGA的设计方法
FPGA的常用设计方法包括“自顶向下”和“自下而上”,目前大规模 FPGA设计一般选择“自顶向下”的设计方法。 所谓“自顶向下”设计方法, 简单地说,就是采用可完全独立于芯片厂商及 其产品结构的描述语言,在功能级对设计产品进行定义, 并结合功能仿真技术, 以确保设计的正确性,在功能定义完成后,利用逻辑综合技术,把功能描述转换成 某一具体结构芯片的网表文件,输出给厂商的布局布线器进行布局布线。布局 布线结果还可反标回同一仿真器, 进行包括功能和时序的后验证,以保证布局布 线所带来的门延时和线延时不会影响设计的性能。
主要功能
• • • • • • 基本逻辑门,例如and 、or 和nand 等都内置在语言中 开关级基本结构模型,例如pmos 和nmos 等也被内置在语言中 可采用三种不同方式或混合方式对设计建模 两类数据类型 能够描述层次设计,可使用模块实例结构描述任何层次 能够使用门和模块实例化语句在结构级进行结构描述
第三章 Verilog HDL语言
一、 二、 三、 四、 五、 六、 Verilog HDL设计模块的基本结构 Verilog HDL词法构成 Verilog HDL的语句 Verilog HDL描述方式 Verilog HDL设计流程 用Verilog HDL描述数字电路的实例
硬件描述语言( HDL )就是可以描述硬件电路 的功能、信号连接关系及定时(时序)关系的语言, 也是一种用形式化方法来描述数字电路和设计数字 系统的。 常用的硬件描述语言有VHDL、Verilog HDL,已 成为 IEEE 的工业标准硬件描述语言,得到了众多 EDA公司的支持。
Xilinx Spartan-II内部结构
Altera的FLEX/ACEX等芯片的内部结构
查找表结构的逻辑实现原理
f=(A+B)*C*!D=A*C*!D+B*C*!D
选择FPGA还是CPLD?
CPLD组合逻辑的功能很强,一个宏单元就可以 分解十几个甚至20-30多个组合逻辑输入。而FPGA 的一个LUT只能处理4输入的组合逻辑,因此, CPLD适合用于设计译码等复杂组合逻辑。 但FPGA 的制造工艺确定了FPGA芯片中包含的LUT和触发器 的数量非常多,往往都是几千上万,CPLD一般只能 做到512个逻辑单元,而且如果用芯片价格除以逻辑 单元数量,FPGA的平均逻辑单元成本大大低于 CPLD。
与或阵列,每一个交叉点都是 可编程熔丝,导通实现与逻辑
“或”阵列 可编程D触发器
乘积项结构的逻辑实现原理
f=f1+f2= A*C*!D+B*C*!D
查找表(Look-Up-Table)的原理和结构
查找表LUT实质上是一个RAM,n位地址线可以配置为n×1的RAM。当用户描 述了一个逻辑电路后,软件会计算所有可能的结果,并写入RAM。每一个信号 进行逻辑运算,就等于输入一个地址进行查表,找出地址对应的内容,输出结果
早期 FPGA
可编程阵列逻辑(PAL)
可编程逻辑阵列(PLA)
现在
Altera的CPLD
Xilinx的FPGA
一、可编程器件大致的发展过程如下:
1)20世纪70年代,出现了熔丝编程的PROM 和PLA器件。70 年代末,AMD 公司对PLA进行了改进,推出了PAL器件。 2)20世纪80年代初,Lattice(莱迪思)公司发明了电可擦写的, 比PAL更灵活的GAL通用阵列逻辑器件。 3)20世纪80年代中期,Xilinx公司提出现场可编程概念,生 产出了世界上第一片FPGA器件。FPGA是改变内部连接的布 线来编程。 4)20世纪80年代末,Lattice公司又提出在系统可编程概念 (ISP),并推出了一系列具有在系统可编程能力的CPLD器 件。CPLD的设计是修改具有固定内部连接电路的逻辑功能 来编程。 5)20世纪90年代后期,可编程集成电路技术飞速发展,器 件的可用逻辑门数超过了百万门,并出现了内嵌复杂功能模 块(如加法器,乘法器,RAM,CPU核,DSP核等)的 SOPC。
三、CPLD/FPGA基本原理
◆基于乘积项的PLD的基本结构及逻辑实现原理
◆基于查找表的PLD的基本结构及逻辑实现原理
◆基于乘积项的PLD的基本结构及逻辑实现原理
INPUT/GCLK1,INPUT/GCLRn, INPUT/OE1,INPUT/OE2是全局 时钟、清零和输出使能信号,这 几个信号有专用连线与器件中每 个宏单元相连,信号到每个宏单 元的延时相同并且延时最短。