首页计算机计算机工程硬件描述语言和数字系统设计 13 第13章 可编程逻辑器件FPGA原理-ISE安装使用.pptx

13 第13章 可编程逻辑器件FPGA原理-ISE安装使用.pptx

页数:34页文件大小:202.4 KB来源: 硬件描述语言和数字系统设计ppt课件

本课件介绍可编程逻辑器件的基本原理:FPGA与CPLD的组成与特点,基于乘积项的PLD结构与逻辑实现方式,查找表LUT的原理与Xilinx、Altera器件内部结构,并以4位加法器为例演示FPGA设计流程。

第13章可编程逻辑器件FPGA原理章节封面,标示本章涵盖可编程逻辑器件FPGA原理、基于可编程逻辑器件FPGA设计等内容
第13章主要内容,依次讲述可编程逻辑器件FPGA原理、基于可编程逻辑器件FPGA设计等小节
可编程逻辑器件FPGA原理知识点页,列出FPGA概述、FPGA组成、FPGA特点等知识点
查看本课件的文字版(共 34 页,供检索与复制)

第1页:第13章可编程逻辑器件FPGA原理

硬件描述语言和数字系统设计

第2页:第13章主要内容

主要内容
13.1可编程逻辑器件FPGA原理13.2基于可编程逻辑器件FPGA设计

第3页:可编程逻辑器件FPGA原理

13.1.1
FPGA概述
13.1.2
FPGA组成
13.1.3
FPGA特点
13.1.4
电路结构
13.1.5
基于乘积项的PLD结构
13.1.6
乘积项结构PLD的逻辑实现原理
13.1.7
查找表的原理与结构
13.1.8
基于查找表(LUT)的FPGA的结构
13.1.9
查找表结构的FPGA逻辑实现原理

第4页:FPGA概述

概述

  • FPGA(Field Programable Gate Array):现场可编程门阵列
  • CPLD(Complex Programable Logic Device):复杂可编程逻辑器件
  • FPGA/CPLD是在PAL、GAL等逻辑器件的基础之上发展起来的,规模比较大
  • Altera和Xilinx公司占有全球PLD/FPGA产品60%以上的份额

第5页:FPGA组成

组成

  • FPGA,CPLD和其它类型PLD的结构概括起来都由三大部分构成:
  • 一个二维的逻辑块阵列,构成了PLD器件的逻辑组成核心
  • 输入/输出块
  • 连接逻辑块的互连资源

第6页:蓝色:逻辑单元 红色:连线资源 黄色

  • 蓝色:逻辑单元
  • 红色:连线资源
  • 黄色:输入输出块图1 典型的PLD框图

第7页:FPGA特点

特点

  • FPGA/CPLD芯片都是特殊的ASIC芯片,具有一般ASIC的特点
  • FPGA/CPLD芯片规模已达上百万门,所能实现的功能也越来越强,同时支持系统集成
  • FPGA/CPLD芯片在出厂之前都做过测试,不需要设计人员承担投片的风险和费用,所以资金投入小,节省了许多潜在的花费
  • 用户可以反复地编程、擦除、使用或者在外围电路不动的情况下用不同软件就可实现不同的功能。用FPGA/PLD试制样片,能以最快的速度占领市场

第8页:电路结构

电路结构

  • 乘积项(Product-Term)结构(PLD多采用该结构)
  • Altera的MAX7000,MAX3000系列(EEPROM工艺),Xilinx的XC9500系列(Flash工艺)和Lattice,Cypress的大部分产品(EEPROM工艺)
  • 查找表(Look-Up-Table)结构(FPGA多采用该结构)
  • altera的ACEX,APEX系列,xilinx的Spartan,Virtex系列等

第9页:基于乘积项的PLD结构

基于乘积项(Product-Term)的PLD结构

图2 基于乘积项的PLD内部结构

  • 这种PLD可分为三块结构:宏单元(Marocell)、可编程连线(PIA)和I/O控制块。

第10页:宏单元是PLD的基本结构

  • 由它来实现基本的逻辑功能。
  • 图1 中蓝色部分是多个宏单元的集合。可编程连线负责信号传递,连接所有的宏单元。I/O控制块负责输入输出的电气特性控制。
  • 图2 左上的INPUT/GCLK1,INPUT /GCLRn,INPUT/OE1, INPUT/OE2是全局时钟、清零和输出使能信号,这几个信号有专用连线与PLD中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。
  • 宏单元的具体结构见图3 所示。

第11页:PLD宏单元结构

图3 PLD宏单元结构

第12页:乘积项结构PLD的逻辑实现原理

图4 CMOS工艺实现电路

第13页:PLD的逻辑实现方法

图5 PLD的逻辑实现方法

第14页:PLD将以下面的方式来实现组合逻辑f

  • A,B,C,D由PLD芯片的管脚输入后进入可编程连线阵列(PIA),在内部会产生A,A反,B,B反,C,C反,D,D反8个输出。图5 中每一个叉表示相连(可编程熔丝导通)
  • 对于一个复杂的电路,就需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出也可以连接到可编程连线阵列,再做为另一个宏单元的输入。这样PLD就可以实现更复杂逻辑。
  • 基于乘积项的PLD基本都是由EEPROM和Flash工艺制造的,一上电就可以工作,无需其他芯片配合。

第15页:查找表的原理与

查找表(Look-Up-Table)的原理与结构

  • 采用这种结构的PLD芯片我们也可以称之为FPGA
  • 查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM
  • 目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM
  • 当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM
  • 每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可

第16页:4输入与门的实际电路和LUT实现形式比较

输入与门的实际电路和LUT实现形式比较LUT的实现方式实际逻辑电路RAM中存储的内容地址逻辑输出a,b,c,d输入000000000000001000010...0....1111111111

第17页:基于查找表

(LUT)的FPGA的结构

  • Xilinx公司的Spartan-II主要包括CLBs,I/O块,RAM块和可编程连线(未表示出)。在spartan-II中,一个CLB包括2个Slices,每个slices包括两个LUT,两个触发器和相关逻辑。Slices可以看成是SpartanII实现逻辑的最基本结构。

第18页:xilinx Spartan-II芯片内

图6 xilinx Spartan-II芯片内部结构

图7 Slices结构

第19页:Altera FLEX/ACEX芯片结构

  • Altera公司的FLEX/ACEX的结构主要包括LAB,I/O块,RAM块(未表示出)和可编程行/列连线。在FLEX/ACEX中,一个LAB包括8个逻辑单元(LE,如图9 所示),每个LE包括一个LUT,一个触发器和相关的相关逻辑。LE是FLEX/ACEX芯片实现逻辑的最基本结构。

第20页:altera FLEX/ACEX芯片的内

图8 altera FLEX/ACEX芯片的内部结构

第21页:逻辑单元

图9 逻辑单元(LE)内部结构

第22页:查找表结构的FPGA逻辑实现原理

查找表结构的FPGA逻辑实现原理

  • 以图4 电路为例。A,B,C,D由FPGA芯片的管脚输入后进入可编程连线,然后作为地址线连到到LUT,LUT中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出,这样组合逻辑就实现了。
  • 该电路中D触发器是直接利用LUT后面D触发器来实现。时钟信号CLK由I/O脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。触发器的输出与I/O脚相连,把结果输出到芯片管脚。这样PLD就完成了图4 所示电路的功能。(以上这些步骤都是由软件自动完成的,不需要人为干预)

第23页:这个电路是一个很简单

  • 的例子,只需要一个LUT加上一个触发器就可以完成。对于一个LUT无法完成的的电路,就需要通过进位逻辑将多个单元相连,这样FPGA就可以实现复杂的逻辑。
  • 由于LUT主要适合SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候,由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作,由于配置时间很短,不会影响系统正常工作。也有少数FPGA采用反熔丝或Flash工艺,对这种FPGA,就不需要外加专用的配置芯片。

第24页:基于可编程逻辑器件FPGA设计

可编程逻辑器件FPGA设计知识点:13.2.1 PLD与FPGA的选择13.2.2 FPGA设计流程(以4位加法器为例)13.2.3 FPGA管脚约束文件

第25页:PLD与FPGA的选择

选择PLD还是FPGA?

  • PLD分解组合逻辑的功能很强,一个宏单元就可以分解十几个甚至20-30多个组合逻辑输入。而FPGA的一个LUT只能处理4输入的组合逻辑,因此,PLD适合用于设计译码等复杂组合逻辑。但FPGA的制造工艺确定了FPGA芯片中包含的LUT和触发器的数量非常多,往往都是几千上万,PLD一般只能做到512个逻辑单元,而且如果用芯片价格除以逻辑单元数量,FPGA的平均逻辑单元成本大大低于PLD。所以如果设计中使用到大量触发器,例如设计一个复杂的时序逻辑,那么使用FPGA就是一个很好的选择。

第26页:FPGA软件平台:Xilinx公司

FPGA软件平台:

  • Xilinx公司的ISE 6.2 Altera公司的QartusII
  • 是一个以FPGA实现为目的的全流程平台,集成了仿真工具Modelsim、综合工具XST或synplify以及版图工具
  • 可实现从源码编写、仿真、综合、版图布局直到最后生成可下载到FPGA器件去的*.bit位流文件
  • 以4位加法器为例演示整个操作过程

第27页:基于可编程逻辑器件FPGA设计(续1)

以4位加法器为例module adder( A, B, SUM);input [3:0] A;//四位加法器的加数输入线input [3:0] B;//四位加法器的被加数输入线output [4:0] SUM;//包括进位的四位加法器输出//利用Verilog HDL加法运算子设计出的加法器assign SUM = A + B;endmodule

第28页:FPGA管脚约束文件

位加法器的FPGA管脚约束文件#PACE: Start of Constraints generated by PACE#PACE: Start of PACE I/O Pin AssignmentsNET"A<0>"LOC = "p163" ;NET"A<1>"LOC = "p161" ;NET"A<2>"LOC = "p109" ;NET"A<3>"LOC = "p111" ;NET"B<0>"LOC = "p113" ;NET"B<1>"LOC = "p115" ;NET"B<2>"LOC = "p120" ;NET"B<3>"LOC = "p122" ;NET"SUM<0>"LOC = "p33" ;NET"SUM<1>"LOC = "p30" ;NET"SUM<2>"LOC = "p27" ;NET"SUM<3>"LOC = "p23" ;NET"SUM<4>"LOC = "p21" ;#PACE: Start of PACE Area Constraints#PACE: Start of PACE Prohibit Constraints#PACE: End of Constraints generated by PACE

第29页:按照使用说明运行ISE的Project

Navigator软件新建project并向工程中加入源码adder.v文件和管脚约束文件adder.ucf文件后

  • FPGA器件选择device family: spartan2device: xc2s200package: pq208在左上角的module view窗口中选中源码顶层文件adder.v在左下角的process view窗口可进行全流程操作,重要步骤如下:

第30页:查看综合报告

.选择综合synthesize可查看view synthesis report,可看代码对应的电路规模、所占资源等信息2.双击Implement Design可完成综合的translate、map、place&Route等步骤操作3.点开步骤2的子栏place&Route,可进行静态时序分析Post-Place&Route Static Timing Report,看看是否有建立时间违背;可进行FPGA布局布线后仿真网表和延时文件生成Post-Place&Route Simulation Model;还可进行功耗分析Analyze Power(xpower)

第31页:选择产生可下载到FPGA器件去

.选择产生可下载到FPGA器件去的位流文件GenerateProgramming File,于是在当前工程路径下生成了如adder.bit的位流文件5.然后选择Configure Device(iMPACT),就可把位流文件下载到FPGA器件中,选择run,FPGA器件里就有相应的电路了,通过管脚约束文件中的相应FPGA管脚,就可以对输入端口写入数据,观察输出端口的信号了

第32页:FPGA的管脚约束文件*.ucf文件中

  • FPGA的管脚约束文件*.ucf文件中:
  • 复位信号rst可用普通I/O接口来映射如(spartan ii中用p163);也可以用全局时钟端口如(spartan ii中用p182),一般普通I/O端口的延时比全局时钟端口大,所以在规模比较大的设计中就要用全局时钟端口。
  • 时钟信号clk一般用全局时钟端口(spartan ii中用p80)。

第33页:复位信号rst在用全局时钟端口后

通常在用ISE map的时候会报端口错误map error,通常会这样修改源码:1.在源码中,输入端口为rst,再新定义一信号如wiret_rst2.例化BUFGP b(.I((rst),.O(t_rst));3.在源码的逻辑描述中,rst用t_rst替换。4.同理,如果时钟信号出现map error,说明fanout能力不够,也需要这样处理。

第34页:相关练习-常见公司数字IC设计招聘-题目

1.可编程逻辑器件在现代电子设计中越来越重要,请问:a)你所知道的可编程逻辑器件有哪些?b)试用VHDL或VERILOG、描述8位D触发器逻辑。(汉王)

顶部目录