可编程逻辑器件PPT课件_第1页
可编程逻辑器件PPT课件_第2页
可编程逻辑器件PPT课件_第3页
可编程逻辑器件PPT课件_第4页
可编程逻辑器件PPT课件_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、8.1可编程逻辑器件概述 PLD是可编程逻辑器件(Programmable Logic Devices)的 英文缩写,是EDA得以实现的硬件基础,通过编程,可灵活方 便地构建和修改数字电子系统。 可编程逻辑器件是集成电路技术发展的产物。自20世纪60年代 以来,集成电路技术迅猛发展,数字集成电路已经历了从SSI、 MSI、LSI到VLSI的发展过程,促进了可编程逻辑器件的飞速发 展。 8.1.1 PLD的分类 根据其集成度和结构复杂度的不同,大致可分为3类: 简单可编程逻辑器件(Simply Programmable Logic Device,SPLD)、 复杂可编程逻辑器件(Complex

2、Programmable Device,CPLD)、 现场可编程门阵列(Field Programmable Gate Array,FPGA)。 1.简单可编程逻辑器件 简单可编程逻辑器件SPLD属于集成度和结构复杂度都比较小的 可编程逻辑器件,共同的特点是都具有可编程的与阵列、不可 编程的或阵列、输出逻辑宏单元OLMC(Output Logic Macro Cell)和输入输出逻辑单元IOC(In Output Cell)。 这类器件适合于规模较小的逻辑设计,典型器件有Lattice生产 的GAL16V8、GAL22V10等。 2.复杂可编程逻辑器件 复杂可编程逻辑器件CPLD是阵列型高密度

3、PLD器件,大多采用 了乘积项、EEPROM(或Flash)工艺等技术,其集成度大于 GAL22V10,具有高密度、高速度和低功耗等特点。此类器件 有更大的与阵列和或阵列,增加了大量的宏单元和布线资源, 触发器的数量明显增多,多用于较大规模的逻辑设计。典型器 件有Xilinx公司的XC9500系列,Altera公司的MAX7000系列, Lattice生产的ispLSI1000、2000、3000系列。 3.现场可编程门阵列 现场可编程门阵列FPGA是集成度和结构复杂度最高的可编程逻 辑器件,大部分FPGA采用的是基于SRAM的查找表LUT (Look Up Table)逻辑结构形式,且其内部

4、采用矩阵式结构 分布,并拥有更多的触发器和布线资源,多用于10,000门以上 的大规模设计,适合做复杂的时序逻辑,如数字信号处理和各 种算法。典型器件有Xilinx公司的XC4000系列、SpartanII和 SpartanIII 等系列,Altera公司的Flex10K、Flex20K、 CycloneII 等系列,Lattice公司的XFPGA等系列。 8.1.2 PLD的开发流程 设计输入 (电路图、HDL等) 器件下载 设计实现 优化 合并、映射 图图8-1 PLD的一般开发流程的一般开发流程 功能仿真 时序仿真 器件测试 (1)设计输入 设计输入是由设计者对器件所实现的数字系统的逻辑

5、功能进行描 述。设计输入一般采用一种或几种设计输入源文件来描述设计对 象,以实现设计要求。常用的设计输入方法有原理图输入、状态 机输入、HDL(Hardware Description Language)等输入方 式。其中HDL是使用最为普遍的一种设计方法,具有较好地可读 性和可移植性。 在设计过程中,往往采用层次化设计方法,分模块、分层次地进 行设计描述,即采用自定向下的设计方法。 (2)功能仿真 功能仿真主要是对所设计的电路及所有输入的电路进行功能验 证,以便设计者及时修改设计中存在问题,实现设计要求。一 般可以利用波形编辑器对所需检验的单个功能模块或系统输入 一些数字信号,通过仿真软件得

6、到输出波形,从而可以检验设 计的正确性。需要指出的是功能仿真一般不包含设计器件的信 息,是一种理想的仿真,只能验证设计的逻辑功能,与时序无 关。 (3)设计实现 设计实现是指从设计输入文件到熔丝图文件或位图文件的编译 过程。设计实现阶段需要完成逻辑分割、器件布局和布线工作, 这些一般是由可编程逻辑器件的开发系统自动完成的,而设计 者可以根据设计需要用一些约束来进行干预,也可以使用编辑 功能直接修改设计布局、布线结构。 (4)时序仿真 时序仿真是在完成布局、布线之后进行的,这时仿真工具会根 据设计实现结果,给出设计中各个信号之间的逻辑功能和时序 关系,以便设计者对设计的可靠性和稳定性进行评价。一

7、般情 况下通过时序仿真可以发现在功能仿真过程中不能发现的问题, 例如竞争-冒险等问题。 (5)器件下载 器件下载是将设计实现所给出的最终设计结果文件,即编程和 配置数据文件,写入或加载到设计目标芯片的过程。目前主要 下载方式是边界扫描方式,即通过专用的下载电缆,将设计结 果的数据文件写入到目标芯片。 (6)器件测试 器件测试阶段主要任务是确定设计的目标芯片是否符合设计要 求,能否满足系统的工作需要。如果发现问题,则需要重新回 到设计输入修改设计,直到满足系统要求。 8.1.3 PLD的逻辑表示 1.逻辑阵列交叉点的逻辑表示 (a) 实体连接 (b) 可编程连接 (c)编程后熔丝烧断 图8-2

8、阵列交叉点的PLD表示法 实体连接,即行线与列线相互连接在一起,是不可以编程的, 用实点表示。图8-2(b)的行线与列线在交叉点处采用或连接, 表示该交叉点是个可编程点。若PLD器件是采用熔丝工艺的, 则器件出厂时,可编程点处的熔丝都处于接通状态,因此在可 编程点上处处都打或。图8-2(c)表示可编程点被用户编程后, 熔丝被烧断的情况。此时熔丝烧断的可编程点上的消失,行线 和列线不相接。 2.逻辑阵列的PLD表示 (a) 可编程的与阵列PLD表示 ABCABC F(A,B,C)=0 (b) 可编程的或阵列可编程的或阵列PLD表示表示 图图8-3 可编程的与阵列和或阵列可编程的与阵列和或阵列PL

9、D表示表示 P1P2P3 F(P1,P2,P3)=P1+P2+P3 PLD的逻辑阵列中通常包含与阵列和或阵列。图8-3(a)是一个 可编程与阵列的一般表示形式。与阵列的所有输入变量都称为 输入项,并画成与行线垂直的列线以表示与阵列的输入,与阵 列的输出称为乘积项。图8-3(b)是一个可编程或阵列的一般表 示形式,同与阵列表示方法相似。或阵列的输入常常是与阵列 的乘积项输出,或阵列的输出是编程后保留熔丝各支路输入乘 积项的逻辑或。 3.缓冲器的PLD表示 图8-4 缓冲器的PLD表示 A A A 输入缓冲器和反馈缓冲器的输入缓冲器和反馈缓冲器的PLD表示如图表示如图8-4所所示。输入缓冲器和反馈

10、示。输入缓冲器和反馈 缓冲器具有相同的电路构成,都采用了互补输出结构。它们是单输入、缓冲器具有相同的电路构成,都采用了互补输出结构。它们是单输入、 双输出的缓冲器单元,一个是同极性输出,另一个是反极性输出。双输出的缓冲器单元,一个是同极性输出,另一个是反极性输出。 8.2 通用阵列逻辑GAL 8.2.1 GAL的结构及其工作原理 1.GAL的基本阵列结构 通用阵列逻辑(General Array Logic,GAL)是Lattice公司于1985年首先推出的可编程逻辑器件。 它采用了电擦除、电可编程的E2CMOS工艺制作,保证了GAL的高速度和低功耗,存取速度为1240 ns,可以用电信号擦除

11、并反复编程上百次。 GAL器件是由可编程的与阵列、不可编程的或阵列、可编程的 输出逻辑宏单元(OLMC)3部分主要电路构成。GAL器件可以实 现老一代器件所有的各种输出电路工作模式,因此称为通用可 编程逻辑器件。 常用的GAL器件有多种型号,这些器件的基本结构是相同的, 只是内部可编程逻辑资源的多少不同而已,下面以GAL16V8为 例对其结构加以介绍。 图8-5 GAL16V8内部结构 图 (1) GAL16V8的电路结构 GAL16V8是一个20引脚的双列直插 式(Double In-line Package, DIP)大规模集成电路,它属于简单 的可编程逻辑器件。其内部结构如 图8-5所示

12、,引脚排列图如图8-6所 示。 图8-6 GAL16V8引脚图 GAL16V8的结构特点 包含 8个输入缓冲器,8个反馈缓冲器,8个输出三态缓冲器。 包含8个输出逻辑宏单元(OLMC12OLMC19)。 由88 个与门构成的与阵列,共形成64 个乘积项,与阵列 共分8个阵列块。每个阵列块有8条行线,每条行线各接一个与门。 与门的输出称为乘积项(与项)。每一个阵列块中最上面一个与门 的输出称为第一与项。每个与门有32个输入项,由8个输入的原 变量、反变量和8个反馈信号的原变量、反变量组成,故可编程 与阵列共有3288=2048 个可编程单元。 GAL16V8的结构特点 1号引脚(I/CLK)经一

13、级缓冲器引至OLMC的CLK端。 8个OLMC的内部电路结构完全相同,外部引线稍有不同,2, 3,4,5,6,7,8,9各引脚是专用输入引脚,1,11,12, 13,14,17,18,19各引脚可通过编程组态为输入引脚。也 就是说共有16个引脚可设置为输入。而12,13,14,15,16, 17,18,19共有8个引脚可做输出引脚。这也是GAL16V8命 名的由来。 GAL16V8的结构特点 GAL16V8具有82位的控制字,可以通过编程控制OLMC的各 种模式及输出组态,满足用户对各种输出电路形式的需要。这 82位控制字分别是: SYN:1位的同步控制字; AC0:1位的结构控制字; AC1

14、(n):8位的结构控制字; XOR(n):8位的极性控制字; PTD:64位的乘积项禁止控制字。 (2) OLMC的内部电路构成 OLMC内部含有1个或门、1个异或门、1个D触发器、2个控制 门、4个多路开关。4个多路开关(MUX)在结构控制字段作用下 设定输出逻辑宏单元的组态。 OLMC的内部电路构成 图8-7 OLMC内部结构 OLMC的内部电路构成 OLMC的或门有8个输入端,和来自与阵列的8个乘积项相对应, 其中7个直接相连,第一乘积项经PTMUX相连或门,输出为有 关乘积项之和。 异或门的作用是选择输出信号的极性。当XOR(n)为1时,异或 门起反相器作用,否则起同相器作用。XOR(

15、n)是控制字中的一 位,n为引脚号。 D触发器(寄存器)对异或门的输出状态起记忆(存储)作用,使 GAL适用于时序逻辑电路。 OLMC的内部电路构成 PTMUX是乘积项多路开关,在(AC1(n)AC0)控制下选择 第一乘积项或地送至或门输入端;OMUX是输出多路开关, 在(AC1(n)+(AC0)控制下选择组合型(异或门输出)或寄存 型(经D触发器存储后输出)逻辑运算结果送到输出缓冲器; TSMUX是三态多路开关,在AC1(n)和AC0控制下从VCC、地、 OE或第一乘积项中选择一个作为输出缓冲器的使能信号; FMUX是反馈多路开关,在AC1(n)、AC0控制下选择D触发 器的Q、本级OLMC

16、输出、邻级OLMC的输出或地电平作为 反馈源,送回与阵列作为输入信号。 OLMC的内部电路构成 由此可见,这些多路开关是由AC0、AC1等结构控制字来控 制的,而这些结构控制字的取值是由GAL器件的设计开发软 件自动配置的,GAL器件被编程后,就会根据设计结果确定 这些多路开关的数据选择端的状态。 2.GAL的工作模式和逻辑组态 GAL器件由于采用了OLMC,所以使用更加灵活,只要写入不 同的结构控制字,就可以得到不同类型的输出电路结构。通过 编程软件所设置的4个结构控制字SYN、AC0、AC1(n)、 XOR(n),可使OLMC定义成多种工作模式和逻辑组态。 2.GAL的工作模式和逻辑组态

17、GAL16V8系列器件的OLMC一共有3种工作模式,分为7种组态。 三种工作模式是寄存器模式、复杂模式、简单模式。寄存器模 式根据不同需求可以配置为寄存器输出组态和组合输出组态; 复杂模式可以配置为有反馈组合输出和无反馈组合输出;简单 模式可以配置为无反馈组合输出组态、本级组合输出邻级输入 组态以及相邻输入组态。 表8-1 OLMC的工作模式和逻辑组态 OLMC的工作模式的工作模式逻辑组态逻辑组态 寄存器模式寄存器模式 寄存器输出组态寄存器输出组态 组合输出组态组合输出组态 复杂模式复杂模式 有反馈组合输出有反馈组合输出 无反馈组合输出无反馈组合输出 简单模式简单模式 无反馈组合输出组态无反馈

18、组合输出组态 本级组合输出邻级输入组态本级组合输出邻级输入组态 相邻输入组态相邻输入组态 表8-2 OLMC逻辑组态和有关控制位的关系 SYNAC0AC1(n)XOR(n)输出方式输出极性备注 010 0 寄存输出低电平有效 1脚接CLK,11脚接OE。 1 高电平有效 011 0 组合和寄存器 混合输出 低电平有效 1脚接CLK , 11脚接 OE ,至少另 有一个OLMC为寄存器输出模式。 1高电平有效 111 0 复杂模式有、 无反馈组合 输出 低电平有效 1和11脚为数据输入,三态门选通 信号是第一乘积项,反馈信号取自 I/O端。 1高电平有效 100 0 简单模式专用 组合输出 低电

19、平有效 1和11脚为数据输入,三态门被选 通。 1高电平有效 101 简单模式专用 输入方式 输出三态门 不通 1和11脚为数据输入,三态门禁止 8.2.2 GAL的编程 厂家出厂的GAL芯片不具任何逻辑功能,必须借助GAL的开发 软件和硬件设备对其进行编程写入,才能使空白的GAL芯片具 有预期的逻辑功能。对GAL器件进行编程时,硬件环境需要有 一台计算机,另外还要配置GAL编程写入器,通常称为编程器。 利用GAL器件进行逻辑设计时,一般要经过以下几步: 按逻辑要求选择器件类型,主要考虑输入输出管脚数量。 选择一种合适的编程软件编制相应的源文件。 经过相应的编译程序生成.JED文件(熔丝图文件

20、)。 利用相应的编程方式对GAL进行编程,并且可以进行检验及对 GAL进行加密。 目前比较流行的GAL的设计工具有DATA I/O 公司开发的 ABEL4.0系统和Lattice公司开发的ispDesign EXPERT 系统。 设计输入通常采用ABEL-HDL 和VHDL这两种语言进行描述。 GAL器件的编程方式 GAL器件的编程主要有两种方式。一种是使用第三方提供的通 用编程器及相应的编程工具软件对器件进行编程。通过此种方 法在完成对器件的编程操作的同时,还可以完成对器件的擦除、 读回、加密等辅助操作。GAL器件被加密后,如果对其进行读 出操作,器件将进行自我保护。 GAL器件的编程方式

21、另一种编程方式是在系统编程(In System Programmable, ISP)。所谓在系统编程就是可以将器件先焊接到目标系统中, 只要提供四条专用的编程引脚(MODE、SCLK、DIN、DOUT) 就可以对器件进行编程了,这种编程方式不再需要编程器,仅 需要一条下载电缆就可以对器件进行编程,而且同样具有擦除、 读回、加密等辅助功能。但是这种编程方式仅支持具有在系统 编程功能的GAL器件,例如ispGAL20V8,ispGAL22V10等器 件。 8.3 复杂可编程逻辑器件CPLD 在可编程逻辑器件的分类中,GAL器件通常被称为简单可编程 器件SPLD,复杂可编程逻辑器件可以简单理解为规模

22、更大、集 成度更高的可编程逻辑器件。但是CPLD并不是简单地把多个 GAL器件集成到一个芯片当中,而是根据芯片设计的实际应用 需要和器件制造工艺的要求,不但增加了宏单元的数量和输入 乘积项的位数,还增加了可编程内部连线资源。 8.3.1 Altera MAX7000系列CPLD简介 Altera公司的CPLD器件系列主要有FLASHlogic系列、Classic 系列和MAX、MAX系列等。MAX系列包括 MAX3000/5000/7000/9000等品种,集成度在几百门至数万 门之间,采用EPROM和EEPROM工艺。MAX7000系列具有相 似的结构,但是外部输入输出引脚和内部逻辑宏单元数

23、目不同。 这样丰富的器件型号可使用户更容易选择到最合适的器件。 表8-3 常用MAX7000系列器件特性 特性特性EPM7032EPM7064EPM7096EPM7128EPM7160EPM7192EPM7256 可用门可用门600125018002500320037505000 宏单元宏单元326496128160192256 逻辑矩阵逻辑矩阵 块块 2468101216 I/O引脚引脚366876100104124164 延时延时 tpd/ns 657.5667.57.5 工作频率工作频率 /MHz 151.5178.6125151.5151.5125125 MAX7000系列器件的技术特

24、点: (1) 高密度、高速度。MAX7000系列器件的系统工作速度达 180MHz,可用逻辑门最大为5000门,宏单元可达256个。 (2) 在系统编程。MAX7000系列器件具有在系统可编程能力。 (3) 边界扫描测试功能。MAX7000系列器件支持IEEE.1149.1 边界扫描测试标准。 表8-4 MAX7000系列部分器件的封装形式和I/O数目 封装形式封装形式EPM7032EPM7032SEPM7064SEPM7096EPM7128SEPM7160S 44引脚引脚TQFP363636 44引脚引脚PLCC363636 68引脚引脚PLCC52 84引脚引脚PLCC68646864 1

25、00引脚引脚TQFP688484 100引脚引脚PQFP7684 160引脚引脚PQFP100104 MAX7000系列器件的内部结构 图8-8 在MAX7000中主要的结构是逻辑阵列块(LAB)和可编程连线阵列 (PIA)。一个LAB包含16个宏单元,并且看起来很像一个SPLD器件。 每个宏单元由一个可编程的与/或电路和一个可编程的寄存器(触发器) 组成。 8.3.2 EPM7128S EMP7128S有128个宏单元被安排在8个LAB中。逻辑信号经由PIA在 LAB之间传输。PIA是一个能连接任何信号源和在设备中的任何目标全局 总线。所有的到MAX7000设备的输入和所有的宏单元输出提供给

26、PIA。 多达36个信号能从PIA提供给每个LAB。 MAX7000系列的I/O引脚被连接到特定的宏单元。给用户提供的可利用的I/O引脚 量依赖于器件封装形式。对于一个具有160引脚的PQFP封装的EPM7128S器件, 每个LAB有12个I/O引脚及4个专用输入引脚,I/O引脚的总数为100个。对于84引 脚的PLCC封装的EPM7128S器件来说,它有64个I/O引脚和4个专用输入引脚,总 数为68个I/O引脚。EPM7128S是一个系统可编程器件(ISP)装置。由于要利用 JTAG(Joint Test Action Group)接口对EPM7128S进行编程,因此有4个在线编 程端口不

27、能作为用户I/O端口使用。 图8-9 JTAG接口电路图 对于EPM7128SLC84芯片来说,JTAG信号含有TDI(测试数据输入)、 RDO(测试数据输出)、TMS(测试方式选择)及TCK(测试时钟)管 脚。因此提供给用户的I/O端口总数降到64个端口。但如果是使用PLD编 程器编程,则68个引脚都可以为用户使用。 1宏单元 宏单元是MAX7000系列器件的具体逻辑单元,用来实现各种具体的逻辑 功能。宏单元 是由逻辑阵列、乘积项选择矩阵和可编程触发器构成,其结 构如图8-10所示。 宏单元结构图 图8-10 逻辑阵列用来实现组合逻辑函数,每个宏单元提供5个乘积项。通过乘积 项选择矩阵实现这

28、5个乘积项的逻辑函数,或者使这5个乘积项作为宏单元 中触发器的辅助输入。每个宏单元的一个乘积项还可以反馈到逻辑阵列。 宏单元中的可编程触发器可以被单独编程为D、T、JK或SR触发器,可编 程触发器还可以被旁路掉,用以实现纯组合逻辑工作方式。 可编程触发器的控制方式 全局时钟(Global Clock)。这种方式能够实现最快的时钟控制。 带高电平使能的全局时钟。这种方式能够实现具有使能控制的触发器, 并能够实现最快的时钟控制。 来自乘积项的时钟。这种方式下,触发器由来自隐含宏单元或I/O引脚 的信号进行时钟控制,一般具有较慢的时钟控制。 2扩展乘积项 尽管大多数逻辑函数能够用每个宏单元中的5个乘

29、积项实现,但某些逻辑 函数更为复杂,需要附加乘积项。为提供所需的逻辑资源,可以利用另一 个宏单元内部的逻辑单元的逻辑资源,结构上也允许利用共享和并联扩展 乘积项(扩展项)作为附加的乘积项,直接送到同一逻辑阵列块的任意宏单 元中。利用扩展项可保证在实现逻辑综合时,用尽可能少的资源,实现尽 可能快的工作速度。 (1)共享扩展项 每个逻辑阵列块(LAB)有多达16个共享扩展项。共享扩展项就是由每个宏 单元提供一个未投入使用的乘积项,并将它们反相后反馈到逻辑阵列块, 便于集中使用。每个共享扩展乘积项可被逻辑阵列块LAB内任何一个宏单 元或全部宏单元使用和共享,以实现更为复杂的逻辑函数。采用共享扩展 项

30、后会增加一个短的延时。 (1)共享扩展项 图8-11共享扩 展项 (2)并联扩展项 并联扩展项是宏单元中没有使用的乘积项,并且这些乘积项可分配到邻近 的宏单元,去实现快速复杂的逻辑函数。并联扩展项允许多达20个乘积项 直接馈送到宏单元的“或”逻辑,其中5个乘积项由宏单元本身提供,15 个并联扩展项由逻辑阵列块LAB中邻近宏单元提供。 (2)并联扩展项 每个逻辑阵列块LAB中有两组宏单元,每组含有8个宏单元。在逻辑阵列 块LAB中形成2个借出或借入并联扩展项的链。一个宏单元可以从较小编 号的宏单元中借用并联扩展项。在有8个宏单元的每个组,最小编号的宏 单元仅能借出并联扩展项,而最大编号的宏单元仅

31、能借入并联扩展项。宏 单元中不用的乘积项可以分配给邻近的宏单元。 (2)并联扩展项 图8-12 并联扩展项 3可编程连线阵列PIA 通过可编程连线阵列把各逻辑阵列块LAB相互连接,构成用户所需要的逻 辑功能。这个全局总线是可编程的通道,它把器件中任何信号源连到其目 的地上。所有专用输入、I/O引脚和宏单元输出均馈送到PIA,PIA再把这 些信号送到整个器件内的各个地方。只有每个逻辑阵列块LAB所需的信号, 才会被提供从PIA到该逻辑阵列块LAB的连线。 图8-13 PIA与逻辑阵列块LAB的连接方式 4 I/O控制块 I/O控制块允许每个I/O引脚单独地配置成输入/输出或双向工作方式。 所有的

32、I/O引脚都有一个三态输出缓冲器,有3种方式: 永久有效或无效; 受两个全局输出使能信号中的一个控制; 受其他的输入或被其他宏单元产生的功能控制。 I/O控制结构 图8-14 I/O控制结构 8.4 现场可编程门阵列FPGA FPGA(Field Programmable Gate Array, 现场可编程门阵列)与SPLD 和CPLD相比,具有更高的密度、更快的工作速度和更大的编程灵活性, 被广泛应用于各种电子类产品中。现在应用较为广泛的现场可编程门阵列 器件主要有Xilinx公司生产的FPGA芯片和Altera公司生产的FPGA芯片。 市场对电子产品的更新速度需求越来越快,这为FPGA的飞

33、速发展提供了 市场需求基础,各个厂家每年都会推出许多新型的FPGA器件,不断提高 单片芯片的资源容量、工作速度,相对功耗也不断降低。但是,这些器件 的基本结构还是没有变化。 FPGA是采用查找表(LUT)结构的可编程逻辑器件的统称,大部分 FPGA采用基于SRAM的查找表逻辑结构形式,但不同公司的产品结构也 有差异。下面以Altera公司的FLEX10K系列为例介绍FPGA的体系结构。 8.4.1 Altera公司的FLEX10K系列器件的 技术性能简介 Altera公司的FPGA都采用基于SRAM的查找表逻辑结构形式,主要由嵌 入式阵列块(Embedded Array Logic,EAB)、

34、逻辑阵列块(LAB)、 快速通道互连(FastTrack,FT)和I/O单元(Input/Output cell,IOC) 4部分组成。 Altera公司的FLEX10K系列是一种嵌入式可编程逻辑器件,具有密度高、 成本低、功耗小等特点。该系列包括FLEX10K,FLEX10KA,FLEX10KB, FLEX10KV,FLEX10KE等5个子系列,如表8-5所示。FLEX10K系列器 件采用连续的快速通道和分段式布线结构,同时每个FLEXl0K器件还包括 一个嵌入式阵列和一个逻辑阵列,使得设计者能够较容易地开发出集存储 器、数字信号处理器及特殊逻辑等功能于一身的芯片。 FLEX10K的技术特点

35、如下: 具有较高的集成度和较快的速度,FLEX10K器件的可用门最多可达 250000个,同时可提供高达40960位内置RAM,最大工作速度可达 90MHz。 支持多电压I/O接口,支持PCI总线接口。 支持多种配置方式,并满足IEEE 1149.1边界扫描测试。 具有实现宏函数的嵌入式阵列和实现普通功能的逻辑阵列。 表8-5 常用的FLEX10K系列器件特性 特性特性EPF10K10 EPF10K10A EPF10K20EPF10K30 EPF10K30A EPF10K40EPF10K50 EPF10K50V EPF10K70EPF10K100 EPF10K100A EPF10K250A 典

36、型门数典型门数100002000030000400005000070000100000250000 最大门数最大门数31000630006900093000116000118000158000310000 逻辑单元逻辑单元57611521728230428803744499212160 逻辑阵列逻辑阵列 块数块数 721442162883604686241520 嵌入式阵嵌入式阵 列块数列块数 36681091220 总总RAM 位数位数 614412288122881638420480184322457640960 最大用户最大用户 I/O引脚引脚 数数 150189246189310358

37、406470 8.4.2 FLEX10K系列器件的内部结构 图8-15 1嵌入式阵列块EAB 嵌入式阵列是由一系列嵌入式阵列块EAB构成。嵌入式阵列块EAB是在输 入输出口上的RAM块,其结构如图8-16所示。从图中可以看出,存储器 的输入、输出端口有触发器,触发器与存储器之间还有一个可编程的数据 选择器,用来选择存储器的输入和输出的地址以及数据线是否经过触发器, 还有专用的全局输出用来控制存储器的写入端。 图8-16 每个FLEX10K的EAB含有2048位的RAM,其数据线最大宽度为8位,地 址线最多可达11条。其写入可以采用同步方式,也可以采用异步方式。输 出可以是寄存器输出也可以是组合

38、输出。嵌入式阵列块可以用来构造片内 RAM、ROM、FIFO或双端口RAM等功能,同时还可以创建查找表、快 速乘法器、状态机、微处理器等。嵌入式阵列块可以单独使用,也可以多 个组合起来使用,以提供更强大的功能。 嵌入式阵列块EAB在实现逻辑功能时可以利用查找表的方式。所谓查找表,实 际上是由静态存储器SRAM组成的存储器阵列。1个81的SRAM阵列可以实 现3输入的查找表,1个161的SRAM阵列可以实现1个4输入或2个3输入的查 找表。查找表中的数即SRAM阵列中所存逻辑函数的真值。查找表的输入就是 SRAM的地址输入。 用查找表实现逻辑函数的过程是将逻辑函数的真值表事先存储在查找表的 存储

39、单元中,当逻辑函数的输入变量取不同组态时,相应组态的二进制的 取值构成了SRAM的地址,选中相应的组态对应的SRAM单元,也就得到 输入变量组合对应的逻辑值。这种查找表方式所实现逻辑函数,输出的延 时与逻辑函数的复杂程度无关,而只与存储器的速度有关的。 2逻辑阵列块LAB 图8-17 每个逻辑阵列块是由8个逻辑单元(LE)以及与LE相连的进位链和级联链、 LAB控制信号以及LAB局部互连线组成。LAB可帮助器件有效地布线,从 而提高设计性能和器件资源的利用率。 逻辑单元是FLEX10K器件结构中的最小单元。每个逻辑单元LE含有1个4 输入的查找表LUT、1个带有同步使能并可异步置位和复位的可编

40、程触发 器、1个进位链(Carry Chain)和1个级联链(Cascade chain)。查找表 LUT是1个函数发生器,可以实现4个变量的任意逻辑函数。 查找表LUT用于组合逻辑,其输出可直接作为逻辑单元的输出。可编程触 发器用于时序逻辑,可配置成D,T,JK或SR触发器。该触发器的时钟、 清除和置位信号可由专用的输入引脚、通用I/O引脚或任何内部逻辑输出 所驱动。逻辑单元还包含2个驱动互连输出,它们可以驱动局域互连和快 速通道互连,也可单独进行驱动。 FLEX10K的逻辑单元有4种工作模式:通用模式、算术模式、加减计数器 模式和可清除计数器模式。 LAB局部互连实现LAB的LE与行互连之

41、间的连接及LE输出的反馈等。 LAB时钟能够用专用时钟的输入引脚、全局信号、I/O信号或借助LAB 局部互连的任何内部信号直接驱动。LAB的置位和清除控制信号也能 够由全局信号、I/O信号或借助LAB局部互连的任何内部信号驱动。全 局信号主要用于公共时钟、清除或置位信号。如果控制信号上需要某 种逻辑,全局控制信号能够由任何LAB中的一个或多个LE形成,并直 接驱动目标LAB的局部互连线。另外,全局控制信号也能够利用LE的 输出产生。 进位链是用来实现逻辑单元之间快速进位功能的。来自低位的进位信号经 过进位链向前送到高位,同时送到查找表 LUT和进位链的下一段。由于有 这种结构,FLEX10K器

42、件可用来实现任意位数的加法器和高速计数器。超 过8个逻辑单元的进位链是将LAB连在一起自动实现的。 级联链是用来实现大于4输入变量逻辑函数的结构。级联链通过逻辑与和 逻辑或将相邻的逻辑单元的输出连接起来。超过8位的级联链可通过连接 几个LAB来自动实现。 3快速互连通道FT 快速互连通道FT用于LE和器件I/O引脚间的连接,快速互连通道与CPLD 的PIA相似,是一系列水平(行互连)和垂直(列互连)走向的连续式布 线通道。行互连可以驱动I/O引脚,或馈送到其它LAB;列互连连接各行, 也能驱动I/O引脚。 快速互连通道的结构图 图8-18 4I/O单元IOE(或IOC) FPGA的I/O引脚由

43、I/O单元驱动,I/O单元位于快速通道的行或列的末端, 相当于CPLD中的I/O控制单元,由一个双向三态缓冲器和一个寄存器组 成,可编程配置成输入、输出或输入输出双向口。 I/O单元的清0、时钟、时钟使能和输出使能控制均由I/O控制信号网络采 用高速驱动。 FPGA的I/O单元支持JTAG编程、摆率控制、三态缓冲和漏极开路输出。 专用输入引脚用于驱动I/O单元寄存器的控制端,其中4个还可用于驱动全 局信号(内部逻辑也可驱动),为了能实现高速驱动,使用了专用布线通 道。 8.4.3 FLEX10K系列器件的配置模式 FLEX10K器件的配置分为两大类:主动配置方式和被动配置方式。 主动配置方式由

44、FLEX10K器件引导配置操作过程,它控制着外部存储器和 初始化过程;被动配置由计算机或控制器控制配置过程。 FLEX10K器件的配置方式 MSEL1 MSEL0配置方式配置方式典型应用典型应用 0 0主动串行主动串行(AS)利用利用EPC1或或EPC2芯片芯片 0 0被动串行被动串行(PS)BitBlaster,ByteBlaster下载电缆下载电缆 0 1被动并行同步被动并行同步(PPS)并行同步并行同步CPU接口接口 1 1被动并行异步被动并行异步(PPA)并行异步并行异步CPU接口接口 1主动串行配置 主动串行配置是一种较为常 用的配置方式,其电路接口 简单。 nCONFIG引脚接到

45、电源VCC。在加电过程中, FLEX10K芯片检测到 nCONFIG由低到高的跳变时, 就开始准备配置。 图8-19 主动串行配置 FLEX10K芯片将CONF_DONE引脚输出置低,使串行PROM芯片 EPC1的片选引 脚nCS为低,而nSTATUS引脚输出高电平,使串行PROM芯片EPC1的输出使能。 然后EPC1通过内部晶振产生串行时钟,并同步输出串行数据,当FLEX10K芯片接 收全部数据被正确配置后,FLEX10K芯片使CONF_DONE拉高,EPC1芯片被置成 无效状态。如果在配置过程发生错误,FLEX10K芯片将nSTATUS拉低,复位EPC1 芯片和FLEX10K芯片。这种配置

46、模式也允许多个FLEX10K芯片和多个串行PROM 芯片EPC1或EPC2进行级联,以满足不同工作情况。 2被动配置 被动配置是把FLEX10K芯片作为一个微处理器或编程设备的一个外设,配 置所需要的时钟、数据都是由微处理器或编程设备提供的。被动配置模式 按照数据传输的方式可化分为被动串行、被动同步并行、被动异步并行3 种方式。 在被动串行配置方式中,通常可以由微处理器或Altera公司提供的编程电 缆(BitBlaster或ByteBlaster下载电缆)产生配置FLEX10K器件所需的配 置控制信号和相应的配置时序。 被动串行配置电路 图8-20 被动串行配置电路 【例8-1】试用FPGA

47、实现D/A转换器DAC0832接口电路的设计,并 产生锯齿波。 解: DAC0832是采用CMOS工艺实现的8位D/A转换器,器内部包含 有8位输入寄存器、8位DAC寄存器、8位D/A转换器。 图8-21 FPGA与DAC0832接口电路 DAC0832数字量输入端 DI0DI7分别对应FPGA_IO1FPGA_IO8; DAC 0832数据锁存允许控制信号ILE接FPGA_IO9,高电平有效; DAC0832控制信号(CS:片选信号;Xfer:数据传输控制信号;WRl、 WR2:DAC寄存器写选通信号)接FPGA_IO10,低电平有效;Ioutl、 Iout2、Rfb与运算放大器LM324构

48、成转换电压的输出。 DAC0832的控制时序图 图8-22 DAC0832的控制时序图 通过改变DAC0832输入的数据,可以实现一个锯齿波发生器,锯齿波形 数据可以由256个点构成。DAC0832的转换周期约为1s。设FPGA的系 统时钟为50MHz,必须对其进行分频处理,这里进行64分频。得到的锯 齿波的频率约为762.9Hz。 DAC0832接口电路输出控制VHDL程序如下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY DAC0832 IS PORT(clk:IN STD_LOGIC; -系统时钟 rst:IN STD_LOGIC: -复位信号 ile:OUT STD_LOGIC: -数据锁存信号 cont:OUT STD_LOGIC: -控制信号(WRl、WR2、CS、Xfer) data_out:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; -波形数据输出 END DAC0832; ARCHITECTURE behave OF D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论