数字逻辑第七章2009课件_第1页
数字逻辑第七章2009课件_第2页
数字逻辑第七章2009课件_第3页
数字逻辑第七章2009课件_第4页
数字逻辑第七章2009课件_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

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

文档简介

第七章可编程逻辑器件PLD由逻辑单元、互连线单元、输入/输出单元组成,各单元的功能及相互连接关系都可经编程设置。借助EDA(ElectronicDesignAutomation)工具软件,PLD可为数字系统设计者提供灵活而强大的处理能力。PLD从早期的小规模PLD(PROM、PLA、PAL、GAL)发展起,现已发展成复杂的PLD(CPLD/FPGA),其逻辑单元可达数百个、等效逻辑门数十万个、片内信号传输延时在ns数量级。PLD的目前发展方向之一是将CPU、存储器、逻辑单元乃至模拟部件集成在一块芯片以构成系统级PLD(SoPC),使用户通过编程可实现更综合、更大规模的系统。7.1 ROM (ReadOnlyMemory:只读存储器)7.1.1 ROM可作为一种PLD器件ROM是计算机中的重要部件,通常用于存储固定信息。ROM中的存储信息在芯片掉电后一般能继续保存。ROM存储的信息在其工作时只能被读出,不能被改写。ROM由若干存储单元(字)组成,每一单元存储了m个二进制位(例如8位)。输入给ROM的为n条地址线(例如10条),地址线经地址译码器给出2n条字线,每条字线(Wi)寻址一个存储单元。被寻址的存储单元通过m条位线(Dj)将存储的0、1信息送出ROM。图表达了一个n=2、m=4的CMOS-ROM的结构。图中可见2n=4个存储单元中存储的1、0信息和MOS管的有、无的对应关系。ROM中存储的信息可由制造厂家一次性制作进去,也可由用户写入,后者称为PROM

(ProgrammableROM)

图CMOS-ROM的结构示例ROM中的地址译码器用2n条输出字线表达n位地址线上变量的编码,译码的规则是每条字线(Wi)对应n位地址变量的一个最小项(n位地址变量的与运算乘积项)。ROM的地址译码器是一个与运算阵列,它给出n位地址变量的全部最小项(Wi

,i=0~2n-1)。在任何时刻,各Wi中必有一个、只有一个有效。这个与运算阵列在ROM中是固定制备的。由图可见,各存储单元中具有相同位权的存储MOS管的漏极输出连接在同一条输出数据线(位线Dj)上。由于同一时刻只可能有一条字线(Wi)有效,因而同一位线上的各存储位呈或运算关系。由于ROM存储的0、1信息可根据需要制作进入或由用户写入,因而说ROM中的存储矩阵是一个可编程的或运算阵列。D0=W0﹒1+W1﹒0+W2﹒0+W3﹒1D1=W0﹒1+W1﹒1+W2﹒0+W3﹒1D2=W0﹒1+W1﹒0+W2﹒1+W3﹒0D3=W0﹒0+W1﹒1+W2﹒1+W3﹒0(7.1.2)[例7.1.1]用ROM实现四位自然二进制码到循环码的转换电路。解:四位二进制码A3A2A1A0与循环码D3D2D1D0的转换真值表如表7.1.1。

二进制码循环码A3A2A1A0D1D2D1D0000

0000

0000

1000

1001

0001

1001

1001

0010

0011

0010

1011

1011

0010

1011

1010

0100

0110

0100

1110

1101

0111

1101

1111

0110

0101

0110

1101

1111

0100

1111

1100

0二进制码A

B

C

D循环码W

X

Y

Z0000000100100011010001010110011110001001101010111100110111101111000000010011001001100111010101001100110111111110101010111001100001326754ChDhFhEhAhBh98A3A2

A1A0ROM的地址线D3D2D1D0ROM的数据线ROM存储单元的内容由表7.1.1可得由A3~A0的最小项序号表达的D3~D0的逻辑关系式(7.3)。可用4位地址、4位数据的ROM实现此转换的电路。将二进制码A3A2A1A0连接ROM的地址线,由ROM的输出数据线得到循环码D3D2D1D0。由表7.1可得到ROM各存储单元的存储信息,再结合式(7.1.3)可得到类似图7.1.1的CMOS-ROM的结构。D0=∑m(1,2,5,6,9,10,13,14)D1=∑m(2,3,4,5,10,11,12,13)D2=∑m(4,5,6,7,8,9,10,11)D3=∑m(8,9,10,11,12,13,14,15)7.1.2 ROM的种类(1)熔丝型和反熔丝型PROM熔丝型和反熔丝型PROM是一次编程性ROM,数据一经写入便不能更改。图7.1.4为双极型晶体管熔丝PROM的结构示意。在PROM出厂时,多发射极晶体管的各发射极所连的熔丝呈连接状态,相当于各存储位存储数据“1”。在写入信息时,对需要写“0”的位控制其晶体管发射极使其流过较大的电流,使与发射极连接的熔断丝烧断。图7.1.5为反熔丝的结构示意。反熔丝相当于生长在n+扩散层和多晶硅(两个导电材料层)之间的介质层,这一介质层在器件出厂时呈现很高的电阻,使两个导电层间绝缘。当编程需要连接两个导电层时,在介质层施加高脉冲电压(18V)使其被击穿,使两个导电层连通。连通电阻小于1KΩ。反熔丝占用的硅片面积较小,适宜做高集成度可编程器件中的编程单元。图7.1.5 反熔丝的结构示意

(2)EPROM(ErasablePROM可改写PROM)EPROM可经紫外线照射擦除所存储的数据,擦除后可再次写入,因而又称为UV-EPROM(UltraVioletEPROM)。EPROM中的关键器件是浮栅MOS晶体管,图7.1.6为叠栅式浮栅MOS管示意图。浮栅MOS管中的栅极G1埋在SiO2绝缘层中没有引出线,称之为浮栅。第二栅极G2有引出线。图7.1.6 EPROM中的浮栅MOS管图7.1.7为EPROM中的位存储位单元。当读取该存储位时,字线x、y由地址译码器置高电平。当需要改写EPROM中的存储内容时,需要先擦除原存储内容。用紫外线透过芯片表面的透明窗照射浮栅G1(照射需数分钟),使浮栅上的负电荷获得足够的能量穿过绝缘层回到衬底,使EPROM中所有存储位回到存“1”状态。此后就可对EPROM再次写入。图7.1.7 EPROM中的位存储单元(3)EEPROM(ElectricalErasablePROM可电擦除PROM)EEPROM使用电信号完成擦改工作,无需紫外线照射。这给使用者带来了方便,也给ISP(InSystemProgrammability在系统编程)建立了基础。EEPROM的结构可类比EPROM。EEPROM的浮栅MOS晶体管如图7.1.8所示。

图7.1.8 EEPROM中的浮栅MOS管管中的浮栅G1有一区域与衬底间的氧化层极薄(10~15nm),可产生隧道效应。当在G2栅极加脉冲正电压时,隧道效应使电子由衬底注入浮栅G1。脉冲正电压结束后,注入G1的负电荷由于没有放电通路而保留在浮栅上,使MOS管的开启电压变高。

(4)FlashMemory(闪速存储器)闪速存储器的结构与EPROM、EEPROM相似,也为双栅极MOS管结构。两个栅极为控制栅和浮置栅。闪速存储器的隧道氧化物层较EEPROM的更薄。闪速存储器的擦除方法与EEPROM类似,利用“隧道效应”(FN隧道效应)。而编程方法有FN隧道效应法和CHE法两类,后者与EPROM类似,为一种“沟道热电子注入技术”。闪速存储器的结构和制作工艺可使它的集成度更高。在编程和擦除时,闪速存储器可一次对多个存储单元同时完成,因而闪速存储器的存取速率比EPROM、EEPROM快。闪速存储器的这些优点使它获得了快速的发展。(5)FRAM(铁电存储器)FRAM是近年新发展起来的存储器件。它的核心技术是铁电晶体材料。当铁电晶体材料置于电场中,晶阵中的每个自由浮动的中心原子会沿着电场方向运动,从一种稳定状态到达另一种稳定状态。在电场作用下的这种稳定状态只有两个。可用一个来记忆逻辑0,另一个记忆逻辑1。中心原子的稳定状态在电场撤消后可长期保留,常温中可达一百年以上。铁电晶体材料的这一特性特别适用于ROM。由于铁电晶体单元在存储状态改变时的物理过程中没有任何原子碰撞,FRAM的写入速率可比EPROM类(EPROM、EEPROM、FlashMemery)快得多,在μs数量级。而后者通常在ms数量级。另一方面,FRAM写入功耗也比EPROM类的低得多,典型值上是EEPROM的2,500分之一。FRAM的写入次数寿命也比EPROM类的高得多,一般EEPROM类的写入次数寿命在十万到一百万次之间,而FRAM已见有一亿个亿次的写入寿命的报道。图7.2.1为2×2PLA的阵列图。与阵列和或阵列中每条线的交点均可由编程决定连接或不连接。可见PLA的与阵列并不固定产生输入变量的全部最小项,其芯片面积使用效率高于PROM。图7.2.1 2×2PLA由于PLA的与阵列、或阵列的连接需要编程,在用PLA实现组合逻辑函数时,需要将函数表达式化简为最简与或式,多输出情况时,也要尽量利用公共的乘积项。这些优化设计使得EDA综合器中的软件算法较为复杂。另外,由于在结构上需保证与阵列或阵列均可被编程,PLA器件的运行速度也受到了一定的限制。GAL16V8器件的结构图。

(1)逻辑阵列图7.2.3中画出了与阵列,或阵列(或门)。与阵列中的每个与门可实现一个乘积项,送入每个OLMC中或门的各有8个乘积项。每个乘积项中的变量可选自32个信号(8+8个输入原变量、反变量、8+8个反馈原变量、反变量)。由7.2.3可见每个OLMC向与阵列反馈回一个信号,这个反馈信号可来自三个信号:OLMC的输出信号、相邻OLMC的输出信号、I/O引脚来的外输入信号。反馈信号可以增加一个OLMC实现组合函数中的乘积项的个数,也可以增加一个乘积项中变量的个数。在OLMC构成时序逻辑电路时反馈也是必要的。引脚I/CLK、I/OE经编程可以作为一般输入端引脚,也可为各OLMC提供全局时钟(CLK)和输出使能(OE)信号。(2)OLMC(OutputLogicMacroCell)图7.2.4为GAL16V8中的输出逻辑宏单元(OLMC)的逻辑图。其中,8输入或门完成或运算,异或门起着可编程控非门的作用。D触发器使GAL有了时序逻辑功能,其时钟用全局时钟(CLK)。图7.2.4 GAL16V8的OLMC的逻辑图对OLMC的编程配置主要是通过四个选择器进行的。其中,选择器TSMUX为输出缓冲门选取控制信号;PTMUX决定由与阵列来的第8个乘积项是否可作为输出缓冲器的控制信号;OMUX决定是否使用D触发器,当选择组合逻辑电路的结果直送输出时不使用D触发器,但D触发器也不能另作它用。这一缺点在后发展的EPLD、CPLD、FPGA中有了改进。选择器FMUX选取反馈信号,反馈信号可来自本OLMC(序号为n),也可来自相邻OLMC(序号为m,由图7.2.4,m=n+1或n-1)的输出,也可来自I/O引脚的输入信号或选择无反馈。AC0、AC1(n)、AC1(m)决定着各选择器的选通连向。AC0、AC1(n)、AC1(m)为GAL控制字中的信息位(还有其它信息位)。使用者通过编译工具(如ABEL3.0)将编程信息写入GAL的控制字。OLMC有5种工作模式。图7.2.5(a)、(b)分别为其中的时序输出模式和组合I/O模式。图7.2.57.3EPLD(ErasablePLD:可擦除的可编程逻辑器件)7.3.1 MAX7000系列的系统结构MAX7000系列PLD采用0.8μmCMOSEEPROM技术制造,有600~5000个可用门。引脚到引脚的信号延时为6ns,计数器最高工作速度为151.5MHz。图7.3.1为MAX7000E/S器件的结构框图。图7.3.1MAX7000的结构框图MAX7000系列器件由以下几个基本部分组成:逻辑阵列块(LAB)、宏单元(MC)、输入/输出控制块(I/O控制块)、可编程连线阵列(PIA)、扩展乘积项、专用输入线(4个)。4个专用输入端可作为全局时钟(CLK)、清除(CLR)、输出使能(OE)信号,它们是为MC和I/O控制块提供的高速控制信号。各LAB之间通过PIA(ProgrammableInterconnectionArray)互连。信号经PIA传输后增加一个传输延时tPIA

。对一确定型号的EPLD,tPIA是一个固定值,不因信号在PIA中的路径不同而改变。这是EPLD/CPLD类PLD器件的优点。7.3.2 MAX7000系列的LAB和MCMAX7000系列中的各个型号可分别提供2~16个逻辑阵列块(LAB),每个LAB中有16个宏单元(MC),分为两组,每组8个。MC主要由逻辑阵列、乘积项选择矩阵和可编程触发器组成。图7.3.2为MC的结构图。图7.3.2MAX7000系列中宏单元(MC)的结构框图逻辑阵列和乘积项选择矩阵逻辑阵列实现“与运算”,图7.3.2中每个与门实现一个乘积项,每个乘积项的变量可选自从PIA来的36个信号以及从本LAB来的16个共享扩展项信号。由逻辑阵列本身可实现5个乘积项,但使用扩展乘积项后可使一个MC实现多至20个的乘积项。乘积项选择矩阵选取乘积项送入或门及异或门以构成组合逻辑函数。后接的可编程触发器的置位(PRN)、清除(CLRN)、时钟(CLK)、时钟使能(ENA)信号也可由乘积项选择矩阵从乘积项中选取。2、可编程触发器可编程触发器可被设置实现D、JK、T、RS触发器的功能。触发器的时钟工作方式可有三种:①选自全局时钟(GCLK1、GCLK2)。这种方式的工作速度最快。②带有时钟使能控制的全局时钟。时钟使能信号来自乘积项。③时钟来自某一乘积项。触发器的置位(PRN)、清除(CLRN)均为异步方式。它们可选自乘积项,清除信号也可选自全局清除信号。触发器的输入信号可来自组合逻辑部分(由乘积项选择矩阵决定),也可直接来自I/O引脚。来自I/O引脚时,可使器件的输入建立时间很短(3ns)。此时的可编程触发器可作为寄存器快速捕获输入信号。触发器也可根据需要被旁路掉,由组合逻辑部分直送MC的输出。3、扩展乘积项使用扩展乘积项可增加MC的逻辑功能。有两种扩展乘积项:(1)共享扩展项由每个MC提供一个未使用的乘积项反馈回本LAB的逻辑阵列(见图7.3.2)。这个乘积项称为共享扩展项。这样,一个LAB的逻辑阵列中可有16个共享扩展项,它们可被本LAB中的任何MC使用。使用共享扩展项后,信号的传输延时会增加一个tsexp量。共享扩展项可增加乘积项中变量的个数。(2)并联扩展项一个MC未使用的乘积项可通过并联扩展项的方式提供给相邻的MC使用。图7.3.3给出一个并联扩展项的使用例图7.3.3并联扩展项使用例一个LAB中的MC分为两组,每组8个。在每组MC中,排序号高的可向序号低的借用并联扩展项。一个MC可最多实现20个乘积项,其中的5个来自本MC的逻辑阵列,另15个来自相邻的MC。每使用一个并联扩展项,信号的传输延时会增加一个tpexp量。7.3.3 MAX7000系列的I/O控制块I/O控制块主要由多路选择器和输出缓冲门组成。图7.3.4为MAX7000E/S器件的I/O控制块的逻辑框图。I/O控制块可使对应的I/O引脚工作于输入、输出、双向三种方式之一。图7.3.4MAX7000E/S的I/O控制块多路选择器为输出缓冲门选取控制信号,使缓冲门呈导通或高阻状态。经PIA来的控制信号来自全局输出使能信号、I/O引脚信号和宏单元输出信号。输出缓冲门可被设置为漏极开路输出形式(仅MAX7000S),增加了输出引脚的驱动功能。输出缓冲门的输出电路摆动速率也可被编程设置为高速或低速,高速输出时,输出电压信号的摆动速率大,但输出信号的边沿毛刺噪声也较大,器件的功耗也较大。低速输出时,输出噪声低、功耗小,但输出信号会增加一个附加延时量。7.4 CPLD/FPGA

FLEX10K系列是一种高密度、高性能的可编程器件。它可提供10000~250000个等效门。内带的嵌入式阵列增强了其运算处理能力。内带的JTAG边界扫描测试电路方便了对其工作状态的检测。FLEX10K的内部连接具有高速、延时固定并可预测的特点。FLEX10K采用CMOS-SRAM(CMOS静态随机存储器)的制作工艺,与EEPROM制作工艺的器件不同,用CMOS-SRAM工艺的PLD的编程配置信息在芯片断电后不能自己保存数据,需另加ROM类(如EPROM、EEPROM、FLASHROM等)器件保存编程配置信息并完成上电自动加载。虽然这增加了应用系统的复杂度,但可实现芯片的在线动态配置,这增强了器件的处理能力和应用灵活性。7.4.1 FLEX10K的系统结构FLEX10K主要由嵌入式阵列块(EAB)、逻辑阵列块(LAB)、快速连线带(FastTrack)、输入/输出单元(IOE)四个部分组成。图7.4.1给出了它们的结构关系。图7.4.1FLEX10K的结构框图FLEX10K是在业界最先将嵌入式阵列结合进PLD的。借助嵌入式阵列,PLD可更有效地实现复杂逻辑处理,如乘法器、微处理器、DSP等。嵌入式阵列由多个EAB组成,每个EAB基本为一个带有寄存器的RAM(2048位)。LAB呈行列排序,每行嵌入一个EAB。每个LAB内包含有局部连线和8个逻辑单元(LE),每个LAB自身可构成一个低密度PLD,相当于96个可用逻辑门。多个LAB互连结合可构成更大的逻辑块,因而也将LAB称为构成CPLD的“粗颗粒(coarsegrain)”。行、列快速连线带贯穿于整个器件的长、宽,分布于LAB的行列之间,连线带内有多条等长度的连续金属连接线,毎条称为一个互连通道,统称为互连资源。LAB、EAB、IOE之间的互连主要是通过快速连线带连接的。IOE起着引脚接口的作用,其内部主要有一个双向缓冲器和一个寄存器。每个IOE可经编程选择与多个互连通道连接。FLEX10K还有6个专用输入引脚,其连接线遍布整个器件,传送信号的延时偏移较小。它们可用作全局时钟、清除、置位。7.4.2 FLEX10K的嵌入式阵列块(EAB)EAB为一个有2048bit的RAM块,其输入、输出带有寄存器,如图7.4.2所示。图7.4.2 FLEX10K的嵌入式阵列块(EAB)利用EAB可直接构成规模不很大的存储器,如ROM、RAM、FIFO(先入显出存储器)。实现存储器时,可将一个EAB配置为256×8(256单元,每个单元8位)或512×4、1024×2、2048×1。较大规模的存储器可由多个EAB连接实现,如两个512×4的EAB连接可得512×8的存储器。EDA工具软件会根据用户的设计自动配置各EAB。EAB中的RAM的入出端均带有寄存器,输入/输出寄存器可用不同的时钟,这给EAB实现FIFO、双端RAM带来方便。EAB也可用于实现乘法器、数字滤波器、微处理器等。例如将EAB配置为256×8只读存储器存入两个4位数相乘的积,将两个4位数据作为地址,这样用一个EAB就可实现4×4乘法器。这种查找表(LUT)法实现的乘法器的工作速度快于由门电路构成的乘法器。EAB中的内容可在FLEX10K其他部分工作时动态改变,这给PLD器件的应用带来了方便。7.4.3 FLEX10K的逻辑阵列块(LAB)一个LAB中包括8个逻辑单元(LE)、进位链与级联链、控制信号以及LAB局部互连带,结构关系如图7.4.3所示。图7.4.3 FLEX10K的逻辑阵列块(LAB)每个LAB中为8个LE提供4个控制信号,其中的两个可作为时钟,另两个作为置位/清除信号。这4个控制信号可选择来自器件的专用与全局输入信号或来自LAB的局部互连,专用与全局输入信号通过器件时的时延附加偏移很小,适于作为同步控制信号。进位链与级联链是各LE间的快速连接线,信号通过它们传输时的附加时延小于经行、列连线带的时延。进位链与级联链也在同一行的LAB间连接,由图7.4.1并结合图7.4.3可见,某一LAB中第8个LE输出的进位链、级联链送到同一LAB行间隔列LAB的第1个LE的进位链、级联链的输入。但进位链、级联链不能穿过LAB行中间的EAB。各LE的输出可编程选择送入行、列快速连线带,也可反馈回本LAB的局部互连带。7.4.4 FLEX10K的逻辑单元(LE)LE是FLEX10K结构中的基本处理单元。图7.4.4为LE的结构。每个LE包含一个四输入LUT(查找表:LookUpTable),一个带有使能和异步清除、置位的可编程触发器,一个进位链和一个级联链。LE的输出可选送到行、列快速连线带,也可反馈回本LAB的局部互连线带。LE有4种工作模式。图7.4.4 FLEX10K的逻辑单元(LE)1. 查找表(LUT)LUT为一种存储结构,可作为编程实现组合逻辑函数的一种方法。与基于乘积项的组合逻辑函数实现方法(GAL、MAX7000中)不同,LUT只需改变存储器的内容即可实现给定变量的任何组合函数,因而也称LUT为函数发生器。图7.4.5为用SRAM和选择器构成的四变量LUT的框图。

图7.4.5 4变量查找表(LUT)的结构例如,实现函数,基于乘积项方法需4个与门,一个或门。LUT法根据函数F的真值表(表7.4.2)将F的取值存入SRAM。而将输入变量作为四组二选一选择器的控制信号,低位控制前组、高位控制后组。图7.4.5的可实现4变量的任一组合逻辑函数,其复杂度和传输延时不随乘积项的多少而改变。SRAM查找表被认为是FPGA类PLD的特点之一,因而也将FLEX10K归入FPGA类。由于SRAM的内容在芯片掉电后不能保存,因而FPGA类芯片在应用时需加设非易失性存储器保存配置信息。2.

可编程触发器可编程触发器可被设置成D、T、JK或SR触发器。触发器的时钟(CLK)、清除(CLR、异步)、置位(PRN、异步)及使能(ENA)可选自专用输入引脚或通用I/O引脚,也可由内部逻辑电路产生。由图7.4.4,可编程触发器和LUT的输出可以各自独立工作、分别输出。这提高了LE的利用率。3、进位链进位链提供了LE之间的快速(0.2ns)进位功能。低位LE的进位信号可经进位链送到高位LE。这一特点有助FLEX10K实现任意位的高速加法器、计数器和比较器。图7.4.6为借助进位链由n+1个LE实现的n位全加器。LUT的一部分组成三变量查找表产生两位输入信号及低进位的“和”Si,而另一部分也构成一个三变量查找表产生高进位通过进位链送到高位LE。图7.4.6 借助进位链实现的n位全加器4、级联链利用级联链,LE可实现多变量(多于4个)的组合逻辑函数。图7.4.7表示了用n个LE借助“或”级联链实现4n个变量组合逻辑函数F的结构图。可见各查找表呈并联工作,但级联链中每加入一级LE,输出信号的传输时延会附加一个量(约0.7ns)

。图7.4.7中的或门也可被设置成与门形成“与”级联链。图7.4.7 “或”级联链进位链和级联链为LAB中的各LE之间提供了快速通道,信号经由它们连接的传输时延小于经由行、列连线带的。各LAB之间的进位链和级联链的连接关系可由图7.4.1见。进位链和级联链连接同一LAB行中的间隔LAB之间,但它们不穿过LAB行中间位置处的EAB。EDA编译器软件会根据要求自动建立进位链和级联链,用户也可用手动方式建立。但过多使用进位链和级联链会限制其它逻辑布线的灵活性。5、LE的工作模式根据对LE中的LUT和可编程触发器的设置的不同,可把LE的工作模式分为四种。在这几种模式中,来自LAB局部互连的信号DATA1~DATA4作为输入信号并有着不同的作用,输入信号还有进位链、级联链信号及来自LE输出的反馈信号。可编程触发器的时钟选择和异步进位、复位仍可均如图7.4.4所示。(1)正常模式如图7.4.8所示。LUT被设置为4输入查找表,4个输入来自DATA1~DATA4及进位链输入。可编程触发器的输入数据可以是查找表的输出,也可选择直接来自局部互连。触发器和查找表可各自独立工作、分别输出。这种工作模式可接收输入进位链、级联链,产生输出级联链,但没有输出进位链。图7.4.8 LE的正常工作模式(2)运算模式3变量如图7.4.9所示。LUT被设置为两个三输入查找表。第一个查找表的输出可作用触发器。第二个查找表的输出连接到进位链送下级LE。这种工作模式可用于高速加法器、累加器和比较器。图7.4.9 LE的运算工作模式(3)加/减计数模式如图7.4.10所示。设置LUT为两个三输入查找表,但输入的信号与运算模式不同。本LE的输出Q被反馈回送到查找表的输入,DATA2可作为加/减控制信号与Q及进位链来信号运算后再经进位链送到下级LE。本工作模式中,可编程触发器可以被同步加载数据,这是由DATA3、DATA4控制完成的。图7.4.10 LE的加/减计数工作模式(4)可清除的计数模式如图7.4.11所示。类似加/减计数模式,但DATA2经与门作用触发器入端,因而DATA2可作为同步清除信号。这种模式没有级联链的输入,但有级联链输出。图7.4.11 LE的可清除的计数工作模式7.4.5 FLEX10K的快速连线带(FastTrack)行、列快速连线带由遍布于器件长、宽的一系列连续连接线(互连通道)组成,由图7.4.1和图7.4.12可见快速连线带和LAB、EAB在器件中的分布关系。由图7.4.2、7.4.3可见快速连线带与EAB、LAB的互连。

图7.4.12 CPLD/EPLD器件中的快速连线带为提高连接布线的效率,行连线带的互连通道分为全长和半长通道,半长通道仅能连接LAB行的一半,距离较近的LAB可通过半长通道互连。连线带内采用连续连接线的布线方式称为连续式互连结构,这是EPLD/CPLD类器件的布线的特点。在这种连线结构中,不同位置处的逻辑阵列块的连接关系是固定的,这使得信号通过器件的延时可以预测,给器件的调测和使用带来了方便。FPGA类器件采用分段式互连结构,布线效率较高,但有着难以预测信号传输延时的缺点。7.4.6 FLEX10K的输入/输出单元(IOE)IOE主要包含一个输出缓冲器和一个寄存器,如图7.4.13。IOE使I/O引脚可输入、输出、双向传送信号。当输入信号能保证的建立时间较短时,可用IOE寄存器快速捕获输入数据。输出信号时,IOE寄存器也可提供快速“时钟-输出”性能。输出三态缓冲器可提供漏极开路输出的选择。输出电压的摆动速率也可由编程设置,这使得用户可调控输出信号的速度和噪声。图7.4.13 FLEX10K的IOE每个IOE的时钟可选自两个专用时钟线。IOE的清除、时钟使能、输出使能及时钟选自周边控制总线。共有12条周边控制总线,其上复用分配的信号有8个输出使能、6个时钟使能、2个时钟、2个清除和4个全局信号。每个周边控制总线的信号可由专用输入引脚驱动,也可由某一LAB特定行中的每个LAB的第一个LE驱动。IOE作为输入单元时可驱动两个行通道或两个列通道。作为输出单元时,IOE可通过多路选择器从m个行通道或k个列通道中选择信号,m和k的数值随器件型号而定,例如EPF10K10的m=18,k=16。7.5 FPGAFPGA是一类PLD的总称。与CPLD类PLD类比,FPGA由可编程逻辑模块(CLB)、可编程输入/输出模块(IOB)、可编程互连资源三个主要部分组成。图7.5.1给出了FPGA的模块结构。图7.5.1 FPGA的模块结构与CPLD类PLD相比较,FPGA有着以下几个主要特点:编程配置技术基于SRAM,便于实现在系统动态重构(ICR:InCircuitReconfigurability)。但芯片掉电后,配置信息丢失,需另设非易失性存储器件保存配置信息并完成上电自动加载。基本逻辑模块的集成规模度与CPLD类的LAB比较相对较小,故称FPGA为“细颗粒结构”的PLD。内部布线采用分段式互连结构,布线效率较高。但信号在内互连的传输延时常难以预测。7.5.1 XC4000系列的可编程逻辑模块(CLB)CLB主要由函数发生器和可编程触发器两部分组成。图7.5.2为CLB的框图。图7.5.2 XC4000系列CLB的结构框图(1)函数发生器一个CLB中包含有两个4输入变量的函数发生器(F、G)和一个3输入的函数发生器(H),它们都是基于SRAM的查找表(LUT)结构。使用函数发生器,CLB可实现的组合逻辑函数有以下几种情况:·两个4(或<4)变量的任意组合逻辑函数·两个4(或<4)变量、一个3(或<3)变量的任意组合逻辑函数·一个5变量的任意组合逻辑函数

·多(<9)变量的某些组合逻辑函数每个CLB的F、G函数发生器设置有产生进位或借位的专用算术逻辑,产生的进位或借位信号可通过进位链(图7.5.2中未画出)快速传送到相邻的CLB。这增大了CLB实现快速加法器、累加器、比较器和计数器的能力。函数发生器也可被设置实现RAM。一个CLB可实现以下几种RAM:

·两个16×1单口RAM,同步或异步触发形式。

·一个32×1单口RAM,同步或异步触发形式。

·一个16×1双口RAM,同步触发形式。单口RAM的读、写地址口同一,读、写操作不可同时进行。双口RAM有各自独立的读写地址口,因而可以对不同地址或相同地址的存储单元同时执行读、写的操作。同步RAM的写操作时,数据是由CLB的时钟指定边沿写入的,WE信号起到时钟使能的作用。而异步RAM的写操作是由WE的有效电平使能的,写、读操作与时钟无关。图7.5.3为CLB实现16×1双口同步RAM的逻辑框图。这个双口RAM使用CLB中的函数发生器F和G,CLB输入信号F1~F4作为F-RAM(单口)的读、写地址和G-RAM(双口)的写地址,输入信号G1~G4作为G-RAM的读地址。由图7.5.3,数据写入双口RAM时,同时写入两个RAM,双口RAM的读出(DPO)地址DPRA与写地址独立,这使得读、写操作可同时进行。图7.5.3 CLB实现16×1双口RAM的逻辑框图(2)可编程触发器由图7.5.2,一个CLB中包含两个D触发器,触发器的输入信号可以是函数发生器的输出,也可直接连CLB的输入(DIN)。触发沿可选时钟(K)的上升或下降沿。EC信号为触发器提供时钟使能。SR信号通过S/R控制单元为触发器提供异步置位、清除功能。在XC4000EX系列中,触发器也可被设置为锁存器。7.5.2 XC4000系列的可编程互连资源FPGA内CLB之间主要是通过可编程互连资源实现连接的。可编程互连资源由带有开关矩阵(PSM)和可编程开关点的一系列金属线段组成。为增加连接布线的灵活性和效率,XC4000系列有5种长度不同的互连线段:单长度线、双倍长度线、4倍长度线、8倍长度线和长线。这些互连线分布于CLB之间,形成了分层构造的布线资源。表7.5.1列出了XC4000EX中每个CLB周围的布线资源。表7.5.1XC4000EX中每个CLB的布线资源单长度线连接于可编程开关矩阵(PSM)之间,它们通常作为局部区域内的CLB之间的互连线。由于每经一个PSM,信号的延时就要增加一个量,长距离传输信号时不适宜用单长度线连接。双长度线每经2个CLB进入PSM,可作为中等长度传输距离的信号的连接线。4倍、8倍长度线及长线提供了长距离、高扇出、短延时的连接,EDA的布局布线工具软件可根据设计的定时要求自动为它们加入缓冲驱动器。双长度、4倍、8倍及长线之间是通过单长度线连接的。除了以上5种长度的连接线,相邻的CLB之间、IOB和相邻的CLB之间也存在着直接连接线。信号在直接连接线上的传输延时最小。可编程开关矩阵(PSM)实现单长度线、双长度线的编程互连。PSM中的互连点由可编程晶体管实现,每个互连点有6个传输通道。如图7.5.4所示。图7.5.4 可编程开关矩阵(PSM)图7.5.5表示了XC4000系列的可编程互连资源中单长度线、双长度线和PSM、CLB的位置关系。图7.5.5 XC4000系列中单长度、双长度线和PSMFPGA内每个CLB行或列的两端有两个IOB对应。CLB和IOB之间的互连是通过I/O布线环实现的,I/O布线环是围绕CLB阵列外边和IOB之间的布线资源,也称通用环(VersaRing)。I/O布线环也是由单长度、双长度、4倍长度和8倍长度线组成。FPGA的内部互连布线是一种分段式结构。布线资源丰富,资源使用效率较高,布线灵活。但信号通过不等长度的分段互连线后的延时常难以预测。在实现同样的逻辑功能时,不同次的编程配置可能使内部互连的路径不同,导致信号延时也不同。这会给高工作速度的应用带来不便,这是XC4000系列FPGA内部互连的一个缺点。随着FPGA的发展,这一缺点正在改进中。7.5.3 XC4000系列的输入/输出功能块(IOB)图7.5.6为XC4000E的IOB的简化方框图。

图7.5.6 XC4000E的IOB简化框图输出信号(OUT)可选择经或不经过输出触发器。T作为输出缓冲器的控制信号。输出电平可编程配置为TTL或CMOS(3.3v)电平。输出的压摆率和漏极开路模式都可被编程设

温馨提示

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

评论

0/150

提交评论