第7章高密度可编程器件_第1页
第7章高密度可编程器件_第2页
第7章高密度可编程器件_第3页
第7章高密度可编程器件_第4页
第7章高密度可编程器件_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

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

文档简介

第7章

高密度可编程器件

可编程逻辑器件按器件的集成度划分,可分成低密度可编程逻辑器件(LDPLD)和高密度可编程器件(HDPLD)低密度可编程逻辑器件:PROM、PLA、PAL、GAL等,通常称作PLD器件(前一章已经介绍)高密度可编程器件:CPLD(复杂的PLD)

FPGA(现场可编程门阵列)CPLD:集成规模大于1000门(等效门)以上。其结构与GAL无本质区别,依然是由与阵列、或阵列、输入缓冲、输入缓冲电路、输出宏单元组成。其与阵列比GAL大得多:这不是靠简单的增大阵列的输入、输出口达到(这样会增大芯片成本并影响运行速度)。在CPLD中,通常将整个逻辑分为几个区。每个区相当于一个大的GAL或数个GAL的组合,再用总线实现各区之间的逻辑互连,如美国Lattice公司的ISP器件。FPGA:现场可编程门阵列现场可编程:用户在自己的工作室内编程由于门阵列中的基本器件是门,用门来组成触发器进而构成电路和系统,其互连远比PLD的与、或加触发器的结构复杂,所以在构造FPGA时改用了单元结构,即在阵列的各个节点上放的不再是一个单独的门,而是门、触发器等做成的逻辑单元,并在各个单元之间预先制作了许多连线关系依靠连接点的合适配置,实现各逻辑单元之间的互连。

严格地说,FPGA不是门阵列,而是逻辑单元阵列,它与门阵列只是在阵列结构上相似而已。7.1在系统可编程技术

7.2

ISP器件的结构与原理7.3

在系统编程原理7.4FPGA器件7.5基于可编程器件的电路设计实例分析7.1.在系统可编程技术ISP技术:是Lattice半导体公司首先提出来的一种能设计电路和系统的最新技术。在系统编程:是指对器件、电路板、整个电子系统进行逻逻辑重构和修改功能的能力。常规PLD在使用中通常是先编程后装配;而采用ISP技术的PLD,则是先装配后编程,且成为产品之后还可反复编程。

ISP技术为用户提供了传统的PLD技术无法达到的灵活性,带来了巨大的时间效益和经济效益,使硬件设计变得像软软件一样易于修改。现从数字系统设计和数字系统生产两方面叙述其特点。7.2

ISPLSI器件的结构与原理Lattice公司的CPLD产品,有ispLSI、ispMACH™和GAL等多种系列和型号,目前市场上以ispMACH4000V/B/C系列器件为主要产品,有3.3V、2.5V和1.8V三种供电电压,器件的宏单元个数从32到512不等。引脚从44到256不等、具有多种密度和I/O组合及TQFP、fpBGA和caBGA等封装。但基本结构和功能相似,都具有在系统可编程能力,只是各个系列的侧重点不一样,结构规模、性能强弱略有区别,速度和密度也各有差异。下面就以ispLSI的基本系列ispLSI1000为例,讨论它的结构及工作原理。1016)(器件系列PLSIISPLSI器件型号速度110=110MHzfmax90=90MHzfmax80=80MHzfmax60=60MHzfmax级别空=商业级I=工业级/883=军级封装形式J=PLCCT=TQFPH=HLCC

功耗L=低功耗ispLSI1016是ispLSI1000系列中的一个型号器件。1016的主要性能指标有速度、功耗等。1016按其速度可分为许多档级,这些都明白地表示在其型号说明上,规则如下:例如ispLSI1016-60LJ指最高工作频率fmax为60MHz、低功耗、PLCC封装的在系统编程1016器件

ispLSI1016是电可擦CMOS(E2-CMOS)器件,其芯片有44个引脚,其中32个是I/O引脚,4个是专用输入引脚,集成密度为2000等效门,每片含64个触发器和32个锁存器,pin-to-pin延迟为10ns系统工作频率可达110

MHz。ispLSI1016的引脚图

全局布线区万能逻辑块输入输出单元输出布线区大块输出结构时钟分配网络

全局布线区:

全局布线区GRP位于芯片的中央。以固定的方式将所有片内逻辑联系在一起,供设计者使用。它和通用总线的功能一致,其特点是其输入/输出之间的延迟是恒定的和可预知的。例如:110MHz档级的芯片在带有4个GLB负载时其延迟时间为0.8

ns,和输入、输出的位置无关。这个特点使片内互连性非常完善,使用者可以很方便地实现各种复杂的设计。万能逻辑块GLB(Generic

Logic

Block):万能逻辑块GLB是ispLSI器件的最基本逻辑单元,是图中GRP两边的小方块,标为A0,A1,…,A7和B0,B1,…,B7,每边8块,共16块。GLB的结构图,它由与阵列、乘积项共享阵列,四输出逻辑宏单元和控制逻辑组成。与阵列乘积项共享阵列四输出逻辑宏单元控制逻辑乘积项20输出至GRP,ORP或I/044复位时钟专用输入来自GRP的输入162GLB结构GLB的组态功能很强,可有五种组态模式:(1)标准组态(2)高速直通组态(3)异或逻辑组态(4)单乘积项组态

(5)多模式组态GLB是ispLSI芯片中最关键的部件,它是一种标准逻辑块,1000,2000系列的GLB都与此相同,3000和6000系列的GLB则采用了:

孪生GLB(twin

GLB)即一个GLB中有两个这样的逻辑块,共有24个输入,每个逻辑块各自产生20个乘积项,最终可以获得两套四端口输出(a)标准组态:(b)高速直通组态(c)异或逻辑组态(d)单乘积项组态(e)多模式组态孪生GLB:MUX选择端00输出组态01,10双向I/O11输入组态两个MUX用来选择输出极性和选择信号输出途径选择输入组态方式直接输入锁存(latch)方式寄存器(register)方式选择和调整时钟的极性输入输出单元阵列有16个输出端分别与该侧的16个IOC相连在ORP旁边还有16条通向GRP的总线,I/O单元可以使用,GLB的输出也可通过ORP使用它从而方便地实现了I/O端复用的功能和GLB之间的互连。输出布线区阵列的输入是8个GLB的32个输入端它是介于GLB和IOC之间的可编程互联阵列,通过对ORP的编程可以将任一个GLB输出灵活地送到16个I/O端的某一个。可见1016的一大特点是IOC与GLB之间没有一一对应的关系,每个GLB输出对应4个I/O端在布线时可以接到任意一个外部管脚上。修改设计方案会动到硬件引脚分配。输出布线区ORP逻辑图为进一步提高器件的灵活性,ispLSI器件还可使GLB的输出跨过ORP直接与I/O单元相连.跨越OPR连接方式

时钟分配网络还可以利用器件中的某一个GLB分频产生系统时钟,如ispLSI1032中的GLB“C0”和ispLSI1016中的GLB“B0”,它们的4个输出可以接到CLK1,CLK2,IOCLK0和IOCLK1系统时钟上。ispLSI

1000系列器件中共有4个专用的系统时钟管脚(Y0,Y1,Y2,Y3),ispLSI1016比较特殊,只有其中的3个(Y0,Y1,Y2)。通过时钟分配网络,这3个管脚上的时钟可以分配给GLB或IOC。

时钟分配网络产生5个全局时钟信号CLK0,CLK1,CLK2,IOCLKO和IOCLK1。CLK0,CLK1和CLK2用作器件GLB的时钟,IOCLKO和IOCLK1用作器件IOC的时钟。时钟分配网络(CDN)逻辑图大块方框图大块的输出使能控制ispLSI1032引脚图全局布线区万能逻辑块大块输出结构时钟分配网络输入输出单元输出布线区全局布线区万能逻辑块时钟分配网络大块输出结构输入输出单元输出布线区全局布线区GRP(GlobolRoutingpool)位于芯片的中央,与ispLSI1016类似,只是规模更大。全局布线区万能逻辑块时钟分配网络大块输出结构输入输出单元输出布线区万能逻辑块GLB(Genericlogicblock)与ispLSI1016类似,ispLSI1032有32个GLB:(A0,A1……A7;B0,B1……..B7)(C0,C1…….C7;D0,D1……..D7)全局布线区万能逻辑块时钟分配网络大块输出结构输入输出单元输出布线区I/O单元:ispLSI有64个I/O单元全局布线区万能逻辑块时钟分配网络大块输出结构输入输出单元输出布线区IspLSI1032有4个大块全局布线区万能逻辑块时钟分配网络大块输出结构输入输出单元输出布线区与ispLSI1016一样7.3

在系统编程原理在系统可编程技术解决可编程逻辑器件的编程问题。传传统可编程逻辑器件在用于生产时,是先编程后装配,在系统可编程器件则可以先装配后编程,并且成为产品后还可反复编程。7.3.1

ISP器件编程元件的物理布局

7.3.2

ISP编程接口

7.3.3

ISP器件的编程方式

器件的逻辑组态和其它编程信息的数据用E2CMOS元件存储,E2CMOS元件按行和列排成阵列。每个E2CMOS元件为一个存储单元,单元置“0”表示这个单元已经编程,或者有一个逻辑连接;

单元置“1”表示这个单元被擦除,相当于开路连接。在编程时,通过行地址和数据位对E2CMOS元件寻址。有两个串行移位寄存器:水平移位寄存器(要写入的位数据)垂直移位寄存器(阵列的行地址)在变成脉冲的作用下将编程数据写入E2CMOS阵列E2CMOS

单元阵列95地址移位寄存器

0SD1SD0SD179…高端移位寄存器...0159...低端移位寄存器...80SD0数据数据将要写入的编程单元地址(L0000)移入地址移位寄存器

000000.1L0000将要写入的编程单元地址(L0000)移入地址移位寄存器将要写入该行的数据移入水平移位寄存器010101001010101010101010100010101001010101010101010100在编程脉冲的作用下将水平移位寄存器内容写入该行

100000.0将地址移位寄存器移动一位,指向下一行(L0001)L000179…高端移位寄存器...0010101001010101010101010100010101001010101010101010100

将水平移位寄存器的内容置入下行的编程数据

在编程脉冲作用下将数据写入下行(L0001)

对于不同的型号器件,其编程单元数、数据移位寄存器和地址移位寄存器的长度是不一样的,下表列出了几种不同型号的ispLSI器件的编程参数。

地址SR长度

数据SR长度

编程单元数

ispLSI1016/E

ispLSI1024/E

ispLSI1032/E

ispLSI1048/C

ispLSI2032

ispLSI3256

96/110

102/122

108/134

120/155

102

180

160

240

320

480/480

80

676

15360/17600

24480/29280

34560/42880

57600/74400

8160

121680

ispLSI器件的编程参数

在ispLSI器件中,存储单元除了存放和逻辑功能有关的数据外,还有一部分存储单元用来标记制造商和用户的信息,这就是识别码和用户电子标签。每种ispLSI(包括isp的其它系列,如ispGAL、ispGDS)器件都有一个唯一的8位器件识别码(ID码),它代表器件的型号,这些ID码可以在编程时读出。1)识别码2)

用户电子标签(UES)用户电子标签由一些附加在可编程阵列中的额外的行组成,用来分配存储用户信息。例如制造商的识别码、编程日期、编程者、方式码、校验位、PCB位置、版权号和产品流程等,

这些信息有助于用户文档的管理。器件加密后,仍能够读出UES。当器件被擦除或重新编程时,UES数据行会被自动地擦除掉,防止老的与新用户电子标签相混。器

8位ID码

ispLSI1016

8位ID码

ispLSI1032

ispLSI032E

ispGAL22V10

ispLSI2032

ispGDS22

ispLSI3256

ispLSI1048E

00001000

00010101

00001101

ispLSI1048

00000011

ispLSI1024

00000001

00000010

00001110

00100010

01110010

00000100

ispLSI器件中还有一个16位的编程次数计数器,用来记录器件被编写的次数,防止器件编程超过允许的次数而引起的不可靠。ISP编程的接口只有5个信号:

MODE:

模式控制输入,为编程状态机控制线;

SDI:

串行数据输入,同时也是编程状态机的控制线;

SDO:

串行数据输出;

SCLK:

串行时钟输入;

ispEN

在系统编程使能输入,控制器件的操作模式,并切换SDI,SD0,SCLK,MODE信号线的功能,一旦被拉低,器件即进入编程模式。*对于MODE

,SDI,

SDO,

SCLK这4个引脚,只有当引脚ispEN为低电平时才能接受编程电缆送来的编程信息;当ispEN为高电平(正常状态)时,它们都可作为输入端(直通输入端)使用。

对某一行的编程过程包括:①

按地址和命令将JED文件中的数据自SDI端串行装入数据寄存器;②

将编程数据写进E2CMOS逻辑单元;③

将写入的数据自SDO移出校验等三个操作。

ispLSI中安排了一个编程状态机来控制编程操作的执行编程状态机实际上是有三个状态的时序机,如图所示。三个状态分别为闲置状态、移位状态和执行状态。控制编程状态机状态转换的信号有两个:

MODE和SDI

闲置状态(正常工作)装载识别码10识别码移位0d11移位状态(装载命令)执行状态(执行命令)(1)

闲置状态。即正常工作的状态,也是时序机的初始状态。读器件的标识码就处于这个状态,在MODE,SDI控制下,用SCLK定时,将器件的标识码装入移位寄存器。同样在上述信号控制下,可将标识码从移位寄存器中移出。闲置状态(正常工作)闲置状态(正常工作)识别码移位装载识别码100d11移位状态(装载命令)装载命令0d11执行状态(执行命令)移位状态(装载命令)102)

移位状态。这个状态主要用于把命令装入状态机。MODE,SDI为0d时,SCLK将指令移进状态机中。一旦指令装进状态机,

MODE,SDI为11,状态机转移到执行状态以执行命令。10闲置状态(正常工作)识别码移位装载识别码100d11移位状态(装载命令)装载命令0d1111执行状态(执行命令)执行命令0d10执行状态(执行命令)(3)

执行状态。在执行状态下,状态机执行在移位状态装入器件的命令。对于某些命令,状态机需要多个时钟周期去执行。例如地址移位命令和数据移位命令,这些命令所需要的时钟脉冲数目同器件的移位寄存器大小有关。ISP技术实质上是一种串行编程技术,利用ISP技术可以完全摆脱编程器,并解决传统可编程器件较难解决的问题。1)

利用PC机的I/O口编程

2)

利用用户目标板上微处理器编程

3)

多个ISP器件的编程

菊花链结构(Daisy

Chain)

ISP编程接口非常简单,只需要一个简单的编程电缆和一台PC机就可以完成器件编程,共有5根信号线:模式控制输入MODE、串行数据输入SDI、串行数据输出SDO、串行时钟输入SCLK和在系统编程输入ispEN,PC机可以通过这5根信号线完成编程数据传递和编程操作。为了保证信号的完整性和驱动能力,在电缆的一端还装有一片74HC367,如图,目标板上必须有相应的接插件,将编程信号引入到ISP器件。

PC机并口缓冲器及RJ45接插件定义

可以利用目标板直接对ISP器件编程。编程的关键在于提供准确定时的ISP编程信号。至于ISP编程硬件的构置,完全取决于存储器件的类型和ISP器件的编程方法。图中列出了用户系统编程的结构示例。

用户微机板编程结构

如用单片机构成编程系统,则有下面所示的结构:

8031单片机在系统编程原理框图

如果一块线路板上装有多块Lattice

ISP器件,不必对每块器件都安排一个编程接口,只要总的安排一个接口就行了。Lattice

ISP器件有一种特殊的串行编程方式,称称为菊花链结构(Daisy

Chain),其硬件接口简单,编程效率高,并且容易实现。其特点是多片合用一套ISP编程接口,每片的SDI输入端与前面一片的SDO输出端相连,最前面一片的SDI端和最最后一片的SDO端与ISP编程接口相连,构成一类似移位寄存器的链形结构。链中的器件数可以很多,只要不超出接口的驱动能力即可。

各ISP器件的内部状态机是受MODE信号和SDI信号控制的。在MODE为高电平时,器件内的移位寄存器被短路,SDI端直通SDO端,各LSI内部状态一样。当MODE为低电平时,各器件中的移位寄存器都嵌入菊花链中,相互串联在一起。闲置状态(正常工作)闲置状态(正常工作)ispEN=0,MODE,SDI=10,编程状态机处于闲置状态,并进行装载识别码。在SCLK作用下,将各自内部硬件决定的识别码装入移位寄存器。编程状态机状态图识别码移位寄存器结构然后将MODE,

SDI改为01,它对应于识别码移位状态,在SCLK作用下,逐位从SDO移出,就得到了器件排列信息(计算机以连续收到8个0作为移位结束)。

闲置状态(正常工作)装载识别码10识别码移位0d00000000000000000000000000000000闲置状态(正常工作)装载识别码10识别码移位0d闲置状态(正常工作)闲置状态(正常工作)11先令MODE,SDI=11,使各芯片的编程状态机进入移位状态;然后令MODE=0,指令流串行移位送入,经过20个SCLK周期,指令码全部到位。

装载命令0d闲置状态(正常工作)编程状态机状态图FLOWTHRU[01110]SHIFT_DATA[00010]SD0SD1ISPLSI1032ISPGAL22V10ISPGDS22ISPLSI2032FLOWTHRU[01110]FLOWTHRU[01110]10FLOWTHRU(01110)是数据流直通指令,在执行这条指令时,SDI与SD0直通,现对对22V10要执行的是SHIFT-DATA(00010)操作,数据移位。 识别码移位寄存器结构闲置状态(正常工作)装载识别码10识别码移位0d闲置状态(正常工作)装载命令0d1110闲置状态(正常工作)装载命令0d闲置状态(正常工作)11编程状态机状态图再次令MODE,SDI=11,进入执行状态;再将MODE=0,从SDI送入数据,因22V10的地址/数据寄存器共138位,应送入138位数据,而此时前后芯片皆工作于数据直通状态,故送入的数据经138个SCLK周期全部进入22V10的移位寄存器。

SD0SD1ISPLSI1032ISPGAL22V10ISPGDS22ISPLSI20320bitSR138bitSR0bitSR0bitSR至此对22V10的这一步操作算完成了,接着使MODE,

SDI=11,状态机回到移位状态,送入新的命令……如MODE,

SDI=10,则进入闲置状态。11107.4FPGA器件FPGA与CPLD的辨别和分类主要是根据其结结构特点和工作原理。CPLD:以乘积项结构方式构成逻辑行为的器件称为CPLD,具有一定的限制,缺乏编辑灵活性,但是却有可以预计的延迟时间,如Lattice的ispLSI系列、Xilinx的XC9500系列、Altera的MAX7000S系列和Lattice(原Vantis)的Mach系列等。FPGA:以查表法结构方式构成逻辑行为的器件称为FPGA,大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。编辑灵活,结构复杂。7.4.1FPGA的基本结构7.4.5XC4000系列FPGA的配置模式7.4.2FPGA开发流程7.4.4XC4000系列FPGA7.4.3Altera低成本FPGA7.4.1FPGA的基本结构1.可编程输入输出单元

I/O单元即输入输出单元,是芯片与外界电路的接口部分,完成不同电器特性下对输入/输出信号的驱动与匹配需求。为了使FPGA的应用更灵活,目前大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可以适配不同的电气标准与IO物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。可编程I/O单元支持的电气标准因工艺而异,不同器件商不同器件族的FPGA支持的标准也不同。值得一提的是,随着ASIC工艺的飞速发展,目前可编程I/O支持的最高频率越来越高。一些高端的FPGA通过DDR寄存器技术,甚至可以支持高达2Gbit/s的数据速率。2.基本可编程逻辑单元

基本可编程逻辑单元是可编程逻辑的主体,可以根据设计灵活的改变其内部连接与配置,完成不同的逻辑功能。FPGA一般基于SRAM工艺,其基本可编程逻辑单元几乎都是由查找表(LUT)和寄存器组成的。LUT结构3.嵌入式RAM块FPGA内部嵌入可编程RAM块,大大拓展了FPGA的应用范围和使用灵活性。FPGA内嵌的RAM块一般可以灵活的配置为单端口RAM、双端口RAM、伪双端口RAM、CAM(ContentAddressableMemory)、FIFO(FirstInFirstOut)等常用存储结构。不同器件商或器件族的内嵌RAM块的结构是不同的。Xilinx常见的RAM块大小是4kbit和18kbit两种结构,Lattice常用的RAM块大小是9kbit,Altera的RAM块最为灵活,一些高端的FPGA内部同时含有3种RAM块结构,即M512RAM(512bit)、M4KRAM(4kbit)、M-RAM(512kbit)。根据设计需求,RAM块的数量和配置方式也是器件选型的一个重要标准。4.丰富的布线资源

布线资源连通了FPGA内部的所有单元。连线的长度和工艺决定着信号的驱动能力和传输速度。FPGA内部有丰富的布线资源,根据其工艺、长度、宽度和分布位置的不同被划分为不同的等级,有一些是全局性的专用布线资源,用以完成器件内部的全局时钟和全局复位/置位的布线;一些叫做长线资源,用以完成器件分区间的一些高速信号和第二全局时钟信号的布线;还有一些叫做短线资源,用以完成基本逻辑单元之间的逻辑互联和布线;另外,在基本逻辑单元内部还有各种布线资源和专用时钟、复位等控制信号线。5.底层嵌入功能单元

通用性比较高的嵌入式功能模块,比如PLL(PhaseLockedLoop)、DLL(DelayLockedLoop)、DSP、CPU等。随着FPGA的发展,这些模块被越来越多的嵌入到FPGA的内部,以满足不同场合的需求。6.内嵌专用硬核

这里的内嵌专用硬核主要指那些通用性相对较弱,不是所有FPGA器件都包含硬核(HardCore),与前面的“底层嵌入单元”是不同的。

7.4.2FPGA开发流程图形输入文本输入混合输入

7.4.3Altera低成本FPGAAltera公司的低成本FPGA继ACEX后,推出了Cyclone(飓风)系列,之后还有基于90nm工艺的CyloneⅡ。低成本FPGA主要定位在大量,且对成本敏感的设计中,如数字终端、手持设备等。另外,在PC、消费类产品和工业控制领域,FPGA还不是特别普及,主要原因就是以前其成本相对较高。目前随着FPGA厂商的工艺改进,制造成本的降低,低端市场竞争也非常激烈,不断有新的产品推向市场。1.Cyclone系列FPGA

特性EP1C3EP1C4EP1C6EP1C12E1C20LE2910400059801206020060M4KRAM块数1317205264总RAM位数599047833692160239616294912锁相环(PLL)12222封装形式TQFPFBGATQFP,PQFP,FBGAPQFP,FBGAFBGA最大用户I/O管脚数1043011852493012.器件结构(1)逻辑阵列块(LAB)(2)多通道互连(3)嵌入式存储器(4)全局时钟和锁相环(PLL)(5)I/O单元(IOE)FPGA器件的工作状态分为三种:一种称之为用户状态(Usermode),指电路中FPGA器件正常工作时的状态;一种则是配置状态(Configuration),指将编程数据装入FPGA器件的过程,也可称之为构造;第三种就是初始化状态(Initialization),FPGA器件复位各类寄存器,让I/O管脚为逻辑器件正常工作做准备。其中后两种状态可统称为命令状态(Commandmode)。AlteraFPGA器件的配置方式主要分为:主动方式、被动方式以及基于JTAG的配置方式。

3.配置与测试XC4000是Xilinx早期的典型产品,其结构对了解新的FPGA器件的结构很有用处。1.XC4000系列FPGA器件的整体结构2.可配置逻辑块CLB7.4.4XilinxXC4000FPGA系列概述3.可编程输入/输出块IOB4.内部可编程互连资源PI

XC4000系列FPGA器件的整体结构XC4000系列的部分FPGA器件的主要特征器件型号主要特征CLB矩阵CLB总数触发器数逻辑门数最大用户I/O数最大RAM位数XC4002XL8×8642561600642048XC4003E10×101003603000803200XC4005E/XL14×1419661650001126272XC4006E16×1625676860001288192XC4008E18×18324936800014410368XC4010E/XL20×2040011201000016012800XC4013E/XL24×2457615361300019218432XC4020E/XL28×2878420162000022425088XC4025E32×32102425602500025632768XC4028EX/XL32×32102425602800025632768XC4036EX/XL36×36129631683600028841472XC4044XL40×40160038404400032051200XC4052XL44×44193645765200035261952XC4062XL48×48230453766200038473728XC4085XL56×563136716885000448100352XC4000系列简化的CLB结构函数发生器触发器输入输出(1)逻辑函数发生器 这里所谓的逻辑函数发生器,在结构上由4或3输入的查找表组成,实际就是一个静态存储器(SRAM)组成的存储器阵列。一个2n位的RAM可以实现任何一个n变量的逻辑函数。 用查找表实现逻辑函数的过程即将逻辑函数的真值表存储在查找表的存储单元中,当逻辑函数的输入变量取不同组态时,由相应组态的二进制取值构成SRAM的地址,选中相应单元,也就得到了与输入变量组合对应的逻辑值。1)实现组合逻辑函数的功能当工作方式字被编程设置成组合逻辑函数发生器时,4个控制信号C1~C4通过可编程控制电路分别将H1、DIN、S/R(异步置位/复位)及EC(使能)信号接入CLB中,作为逻辑函数发生器的可控制输入信号。例7.1用一个CLB实现下列函数功能:a)b)解a)将CLB中F逻辑函数发生器配置成产生输出X,G逻辑函数发生器配置成产生输出Y。F3、F2、F1分别连接变量A、B、C,G2、G1分别连接A和B,F4、G4、G3任意。然后将多路选择器设置成直接输出F和G的输出,实现X和Y两个函数的功能。采用这种方法可以实现任意两个独立的最多4个变量的逻辑函数。b)这个逻辑函数包含了7个变量,因此我们将用F逻辑函数发生器来产生F=JKLM的逻辑功能,G逻辑函数发生器产生G=PQR,然后将H配置成H=FG。最终输出的多路选择器选择H的输出作为Y,实现Y函数的功能。采用这种方法,一个CLB可以实现最多9个变量的部分函数的功能。2)实现RAM功能逻辑函数发生器F和G除了能够实现一般的组合逻辑函数以外,还可以被用作片内RAM。每个CLB都有一种定义方式,使得F和G的逻辑函数发生器中的查找表可以用作16×2位或者32×1位的读写存储器。

当工作方式字编程设置成存储器功能有效时,4个控制信号C1~C4通过可编程控制电路分别将控制信号WE、H2(D1/A4)、H0(D0)及EC(不用)作为存储器写控制信号、数据输入信号或地址信号。逻辑函数发生器作为存储器使用的结构例7.2试分别给出用一个CLB构成2个16×1位RAM和用一个CLB构成1个32×1位RAM的实现方案。(假定均用电平触发方式)用1个CLB构成2个16×1位RAM的实现原理用1个CLB构成1个32×1位RAM的实现原理(2)触发器每个CLB中包含两个触发器,它们用于存储函数发生器的输出,也可以独立使用。两个触发器有公共的时钟和时钟使能信号,每个触发器都可以配置成上升沿或下降沿触发,并且可以单独选择时钟使能为EC或1(即时钟使能永久有效)。此外,控制电路送来的R/S信号可以对两个触发器异步置位/复位。触发器的激励信号可以通过多路选择器从DIN/H2、F、G和H的输出中选择,触发器的状态从QX和QY端输出。可编程输入/输出模块(IOB)提供了器件的外部封装引脚和内部逻辑之间的连接,每个IOB控制一个外部封装引脚,可以通过编程配置为输入、输出或双向信号端口。3.可编程输入/输出块IOB

可编程互连资源遍布于CLB和IOB之间,在XC4000E系列FPGA中,PI除了通用可编程连接线和可编程开关矩阵PSM(ProgrammableSwitchMatrix),还包括可编程开关点和全局信号线。多种不同长度的金属线通过可编程开关点或PSM,可以将器件内部任意两点连接起来,构成所需要的信号通路,从完成各种设计。4.内部可编程互连资源PI(1)通用可编程连接线(2)可编程开关矩阵(3)全局信号线和缓冲器CLB到邻近单长线的典型连接①单长线。(1)通用可编程连接线单长线的长度相当于两个CLB之间的距离。它们通过PSM与其它单长线相连。单长线通常用在局部区域内传输信号,这种连接线可以提供最大的互连灵活性和相邻功能块之间的快速布线。CLB逻辑函数发生器的输入信号F4~F1、G4~G1以及控制信号C4~C1,都可以由相邻的单长度线驱动。时钟能被一半数目的相邻单长线驱动。但是因为信号每通过一个开关矩阵都会增加一次时延,所以单长线不适合需要长距离传输的信号。②双长线。双长线两根为一组,长度是单长线的两倍,要经过两个CLB后才进入PSM。双长线可以实现两个非相邻CLB之间的互连。与单长线相比,双长线减少了经过开关矩阵的数量,更有效的提供了中等距离的信号通道,提高了系统的工作速度。③长线。长线是指贯穿于整个阵列的水平或垂直连接线。长线不经过任何开关矩阵,信号的时延小。每条长线的中点处有一个可编程的分离开关,可将长线分成两条独立的布线通道。长线通常用于高扇出和时间要求苛刻的信号。(2)可编程开关矩阵开关元件有6个选通晶体管,每个进入开关矩阵的信号可以与任何方向的单长线或双长线相连,即除了直通外,信号还可以“拐弯”。例如,从开关矩阵某侧输入的信号,可以被连接到另外三个方向中的任何一个或多个方向输出。正因为如此,器件中的任何一个CLB才能够与不同行或不同列的其他CLB实现互连。全局信号线用于时钟信号和其他高扇出的控制信号进行布线,使信号失真最小。全局时钟线只分布在垂直方向上。专用的全局缓冲器位于CLB每一列的4条垂直长线上。4条全局线可以由这些专用缓冲器驱动,使得信号延迟达到最短,偏移最小,同时增强了布线的灵活性。(3)全局信号线和缓冲器7.4.5XC4000系列FPGA的配置模式XC4000系列FPGA共有3个配置模式引脚(M2、M1、M0),在进行配置之前,需采样这三个引脚来确定器件的配置模式,配置结束后,这三个配置引脚可以用作普通的I/O引脚,其中M2、M0可用作输入引脚,而M1可用作三态输出。模式M2M1M0CCLKDATA主串模式000输出位串从串模式111输入位串主并(up)模式100输出字节主并(down)模式110输出字节外设(同步)模式011输入字节外设(异步)模式101输出字节保留010----保留001----1.主串模式在主串模式中,FPGA的CCLK由内部振荡器产生,输出连接到Xilinx的相应串行PROM的CLK端,用来驱动PROM。串行PROM的DATA信号反馈到FPGA的DIN端。CCLK的每个上升沿使得PROM的内部地址计数器加1,取出的数据位被送到PROM的DATA端,FPGA在下一个CCLK的上升沿到来时接收来自PROM的数据。2.从串模式从串模式中,待配置的新片不再提供时钟,而是由外部提供。在每个CCLK的上升沿到来之前,串行的配置位流必须在DIN引脚上有一定的建立时间。当对多个芯片进行配置时,也可以将多个芯片连接成菊花链形式。3.主并模式在主并模式中,主FPGA器件可以与符合工业标准的8位EPROM直接相连,每个CCLK周期中有一个字节(8比特)的数据被读入FPGA,并且使EPROM的地址加1(或减1),这样当CCLK的频率为1MHz时,相当于用了8MHz的高倍时钟。4.配置流程主要有4步:清除配置存储器、初始化、配置和启动。(1)清除配置存储器当给FPGA加电时,内部电路迫使配置逻辑初始化。当VCC达到操作电平(大于3.5V)且电路发送读写测试后开始延时,一般延时时间为16ms(主模式中延时64ms)。在这段时间中,或只要PROGRAM引脚上出现低电平,配置逻辑始终保持在清除配置存储器状态。(2)初始化在初始化和配置期间,引脚HDC、LDC和INIT上的信号反映了系统接口的状态。FPGA上电初始化时,LDC、INIT和DONE保持低电平,而HDC引脚保持高电平。在初始化结束时,INIT输出高电平。在INIT被识别出来为高电平后的两个内部时钟后,器件采样MODE引脚以确定配置模式。此时相应的接口线路被激活,开始加载引导码和数据。(3)配置配置数据流以0010作为引导码,后面紧跟24位的长度计数值以及4位填充位(1111)。在4位填充位之后是真正的配置数据,以帧为单位。4.启动当配置存储器满,并且在INIT变高后,计数时钟等于计数长度的值时,整个器件配置过程进入启动阶段。Xilinx最新PFGA产品性能比较特性Virtex-6Virtex-5Spartan-6Spartan-3A延伸系列逻辑单元多达760,000个多达330,000个多达150,000个多达53,000个用户I/O多达1200个多达1200个多达570个多达519的I/O支持的I/O标准超过40种超过40种超过40种超过20种时钟管理技术PLLDCM+PLLDCM+PLLDCM嵌入式BlockRAM高达38Mb高达18Mb高达4.8Mb高达1.8Mb用于DSP的嵌入式乘法器有(25x18)有(25x18)有(18x18)有(18x18)千兆位级高速串行6.5Gbps、超过11.18Gbps3.75Gbps、6.5Gbps3.125Gbps无软处理器支持是是是是7.5基于可

温馨提示

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

评论

0/150

提交评论