集成电路设计方法-ch.ppt
第二章 各种设计方法,集成电路的基本知识全定制设计方法半定制设计方法有通道门阵列法门海法 定制设计方法-标准单元法可编程逻辑器件设计方法逻辑单元阵列设计方法,全定制设计方法,首先确定芯片的功能、性能、允许的芯片面积和成本,设计人员要对结构、逻辑、电路等各个层次进行精心的设计,对不同方案进行反复比较,特别要对于影响性能的关键路径做出深入的分析。全定制版图设计的特点是针对每个晶体管进行电路参数和版图优化,以获得最佳的性能(包括速度和功耗)以及最小的芯片面积。利用人机交互式图形编辑系统,由版图设计人员设计版图中各个器件及器件间的连线。对于特殊的元件或连线,版图绘制人员必须需精心设计每一个器件和连线,因而效率很低。,对于具有重复性结构的网络如ROM、RAM、乘法器等,设计人员对这些网络中的不同单元进行精心的人工设计,然后利用人机交互图形系统具有的强有力的重复或形成矩阵的功能得到整个网络的版图,设计相应的外围电路、输入/输出接口,完成整个设计。在版图设计阶段,除了要有人机交互图形编藐辑系统支持外,还要求有完整的检查和验证工具。这些工具包括设计规则检查、电学规则检查、连接性检查、版图参数提取、电路图提取、版图与电路图一致性检查等。,门阵列是一种最典型、应用最早、应用最广泛的半定制设计方法采用门阵列方法时,集成电路制造厂家首先设计制造出由许多相同的、有规则排列且相互间没有连接起来的单元电路组成的半成品芯片,称之为“母片”。然后,IC生产厂家按照用户的要求,进行结构和逻辑设计,通过合适的掩膜确定管芯的金属化层,将母片上的各单元电路连接起来,形成具有指定功能的数字系统。门阵列管芯是有规则排列的晶体管或其它元件,通用的输入输出(I/O)单元以及有关焊接点的集合门阵列的特点是具有大量的潜在内部连接点,保证了设计者能采用不同的元件互连方案来完成电路设计,门阵列定义,门阵列的结构,门阵列具有许多不同的结构主要包括三种基本结构(1)块单元方法每个单元以有规则的间距按二维矩阵排列单元之间的空隙用作单元内部连接的通道,这些通道分为垂直通道和水平通道(2)行单元方法在这种情况下,各个单元背靠背地沿水平方向或垂直方向排列,行与行或列与列之间留有较宽的间隙,用作单元之间的内部连接通道(3)邻接单元法这里,每个单元紧密邻接,相互间不预留布线通道各单元间的相互连接是通过利用单元内部预留的空隙以及芯片上未加以利用的单元来实现的,在设计各单元的结构时应作到这一点,半定制设计方法-有通道门阵列法,定义:门阵列是在一个芯片上把门或单元(含有若干个器件)排列成阵列形式,单元被排列成行,行与行之间留有作为连线用的通道区,通道的高度是固定的。“有通道门阵列”通道门阵列的基片结构,有通道门阵列法,定义:门阵列是在一个芯片上把门或单元(含有若干个器件)排列成阵列形式,单元被排列成行,行与行之间留有作为连线用的通道区,通道的高度是固定的。“有通道门阵列”单元:门阵列中的各个单元是完全相同的。每个单元含有若干器件,通过连接单元内的器件使每个单元实现某类门的功能,再通过各单元之间的连接实现电路的设计要求。布线通道:为了保证单元之间的布线具有100的布通率,希望有较宽的通道,但这会导致无用的走线区域,因而浪费硅面积。连线:如果门阵列允许有双层金属连线,则两层金属之间通过“通孔”(via)相连;如果只允许单层金属连线,当垂直线段为金属时,则水平线段必须采用多晶硅。,I/O或压焊块:门阵列的另一特点是在它的基片四周,布有固定数目的输入/输出单元和压焊块。宏单元:对于一些标准的逻辑单元,如“与非”门、“或非”门、触发器等,可事先将若干个单元用确定的连线构成这些标准单元,即宏单元 由于芯片内的各单元是相同的,通道尺寸是固定的,输入/输出单元和压焊块的形状和数目也是相同的,因此可以采用统一的掩膜版,并可完成连线以外的所有的芯片加工工序(也就是金属化以前的所有工序),这种经加工后的芯片可以储存起来,在需要时,从中取出一部分加以“单独处理”。,所谓“单独处理”就是根据网络的要求,考虑如何进行门的布局和门之间的连线。这时就需要单独设计和制作用于接触孔和连线的掩膜版。对于单层布线工艺,需再设计制作两块掩膜图21 通道门阵列的基片结构门阵列芯片制造商为适应不同规模电路的要求,设计和制造不同尺寸(不同基本单元数目、I/O数目和压焊块数目)的基片供用户选择。对于同一系列内的所有门阵列芯片,其内部栅格结构(grid system)是完全相同的,因此对于同一系列,把一种芯片上的设计转移到另一中芯片上是非常容易的。,不同规模的门阵列芯片(LL7000系列),典型的CMOS单元结构包含两对或三对共栅或不共栅的P型晶体管和N型晶体管,下图为共栅的四管单元结构示意图。,TTL门阵列的单元结构示意图,它是一个4输入端的单元,由3个晶体管(其中一个为多发射极晶体管)和5个电阻组成。通过改变单元内的金属连线,可构成低功耗门、高功耗门、图腾输出门和扩展器等。,每一门阵列的内部结构都对应于一个栅格结构图,单层金属布线的栅格结构图,此结构中的基本单元采用六管单元,其特点为:属于六管单元单元上部和单元之间的宽多晶硅条用作地道(underpass)。黑点表示允许进行布线的布线通道。方块表示接触孔(包括源漏区内的和多晶硅条上的接触孔)。电源端VDD和电源地端VSS在布线时,除了按电路要求某连线需要与某一方块(接触孔)相连外,其它连线必须绕过方块,这时此方块就“障碍”。此结构中,每组单元和多晶硅地道含有21条垂直通道,其中12条在垂直布线时是不受限制,即不会遇到“障碍”的,另外9条则是有限制的。同一系列内各品种的栅格结构是相同的,即点与点之间、方块与方块之间的间隔是相同的。电源线、地线宽度与位置也是相同的;对不同品种,指的是栅格结构图的大小不同。,宏单元:有了栅格结构就很容易设计出各种类型的宏单元。宏单元也就是完成某种功能元件所需的内连图形。宏单元库一般包括标准的SSI,MSI,LSI功能块。宏单元可以小至一个逻辑门,也可以复杂到一整个芯片作为宏单元,3输入“与非”门原理图与宏单元,VSS VDD,3输入“与非”门原理图与宏单元,VSS VDD,3输入“或非”门原理图与宏单元,VSS VDD,单传输门及与传输门对,对于一个6管单元,可以在一个单元内放置一个2输入“与非”门(“或非”和一个反相器,但必须采用“电源连接”技术将这两个器件隔离。图(b)是正确的连接图形,2输入“与非”的输出端E和反相器输出端B从不同处引出;而图(a)中的PTM既是B的输出,也是E的输出,显然是错误的连接。,“电源连接”隔离技术,“虚假”晶体管效应,在门阵列设计中,当单元之间的连线太拥挤而没有多余的连线通道可利用时,有时不得不将单元中的一根栅作为连线。这根栅的作用仅仅用作通路,但如果不作恰当处理,就会产生“虚假”晶体管效应 用作连线的栅和用作“与非”门的晶体管存在共享的源区/漏区,当共享源区/漏区不接Vss和Vdd;这时用作连线的栅就会对共享源/漏区上的电平做出控制,这就是所谓的“虚假”晶体管效应 在两个独立的元件之间采用“电源连接”技术可防止“虚假”晶体管(phanton transistors)效应。如图(b)所示,当A变高时,不管B和C端的状态是什么,M点将变低而,因此这种连接是错误的。如图(c)所示那样的连接,即共享区接Vss,则由A作为栅的N沟晶体管处于截止状态,但由A作为栅的P沟晶体管仍处于不定状态。如图(d)所示那样的连接,即共享区既接Vss,又接Vdd,这时N沟和P沟晶体管都处于截止状态。,“虚假”晶体管效应及消除,4输入端逻辑门,对于4输入端逻辑门,获得第四对晶体管的方法是从另一单元中取得(在同一列中)。对于采用氧化隔离的门阵列,相邻两个单元间是自动被隔离的,因而不必考虑相邻单元栅上电压所带来的影响,但在本单元内仍应采取“电源连接”措施以防止“虚假”晶体管效应的产生,由传输门组成的“异或”门,图为“异或”门的逻辑图及对应的版图结构。它除了占有一个单元外,部分还占有同一列上的上下两个单元。具有输入信号B的反相器和具有控制信号A的反相器分别处于上下两个单元,B和/B分别连到传输门对的源/漏区,而A和/A分别连到晶体管的栅输入,单元数的计算方法,在CMOS和ECL门阵列中,通常用单元数(cell count)来计算,而在TTL门阵列中,则用晶体管数(transistor count)来计算。门阵列芯片的规模通常用有多少个“等效2输入门”表述。这里的2输入门是指“与非”或者“或非”门。通常一个2输入“与非”门和一个2输入“或非”门所需的单元数相同。下表列出了以3输入端CMOS门阵列单元为基础的各类逻辑门和电路所需的单元数。,典型的门阵列设计流程,用户提出逻辑图及一组测试矢量,先验证逻辑功能是否正确。将该逻辑图转换成相应的宏单元,并进行布图前的逻辑模拟。在模拟完成后,选择合适的门阵列基片完成初始的布局,必要时对逻辑图作适当修改,以找到一个可接受的方案。接着进行最终的自动布局和自动布线。然后,进行一次考虑了所有寄生参数后的逻辑模拟,常称为“布图后”模拟。在用户认可后,产生图形发生器或电子束制版设备所需的控制文件。最后加工掩膜版并制造芯片。,门阵列法优缺点分析,门阵列法的优点它采用相同尺寸的基本单元和I/O单元,并完成了连线以外的所有加工工序。需要定制的掩膜版只有两块或四块。设计所要完成的工作是根据电路要求选择相应的宏单元,进行自动布局和自动布线。设计周期大大缩短,成本也大大下降。当工艺改变或单元结构需要变化时,只需作较少的修改,CAD软件不需更换,因而原始投资较低。即使芯片的产量很低,如只需几百或几千块芯片时,其价格也在可接受的范围内。这些优点是门阵列在各个应用领域中得到迅速推广的重要原因。,门阵列法存在的固有弱点:第一,单元内的晶体管可能无用,如采用4管基本单元来实现时,会有明显的面积浪费。第二,当基片上所提供的连线通道已被全部用完,或I/O单元及压焊块全部用完后,即使有多余的门也无法再利用。第三,为了保证布线的布通率,一般在选择门阵基片时总是使基片的晶体管数大于实际电路所需的晶体管数,因而造成基片上有相当一部分晶体管实际无用,晶体管利用率通常低于80。第四,利用自动布局布线程序进行布图时,并不能保证100的布线布通率(单层金属布线),这时需要进行人工干预,常常需要花费大量的时间。第五,基本单元中的晶体管尺寸,由于要适应各种不同的要求,一般设计得较大,因而相对于其它方法,门阵列的面积较大,速率较低,功耗较大。由于晶体管尺寸是固定不变的,没有可能因负载、扇出的具体情况而实现特殊设计,因而难以保证门延迟的均匀性。第六,由于单元之间存在很宽的布线通道,因而无法实现像ROM,RAM等这类规则结构的电路。,半定制设计方法-门海法,为了克服常规门阵的门利用率较低的缺点,1982年有人提出了门海(sea of gates)概念,它标志着第二代门阵技术的开始。门海技术特点:由一对不共栅的P管和N管组成的基本单元铺满整个芯片(除I/O区外),基本单元之间无氧化隔离区,宏单元之间采用栅隔离技术,无事先确定的布线通道区,宏单元之间的连线将在无用的有效器件区上进行。,基本单元与栅隔离,一个基本单元由一对不共栅的P管和N管构成,各晶体管对相互紧挨而形成P型晶体管链和N型晶体管链。栅和源/漏区留有接触孔或通孔的位置,但是否开孔将视具体电路的要求而定,因此连线孔是“可编程”的。宏单元之间是通过正常的晶体管实现隔离的,作隔离用的晶体管的栅分别接Vdd(对P型管)和GND(对N型管),这样隔离管就处于截止状态,使相邻宏单元在电学上隔离。这种隔离只在需要时才采用,因而门海结构中没有无用的基本单元。对于越复杂的功能元件,就可以节约更多的晶体管。如果相邻两个宏单元共有同一个源/漏区,且分别接Vdd和GND,这时甚至可以不用栅隔离.,门海的基本单元链,下表列出栅隔离门海结构与常规氧化隔离门结构(4管单元)所占面积的比较。表中的单元宽度是归一为垂直方向金属连线的间隔。可以看出,栅隔离的门海结构比起氧化隔离的常规门阵结构,在面积上可节约50左右。,栅隔离与氧化隔离的比较,宏单元与栅隔离的实例,左半部为反相器与一个2输入端“或非”门,它们之间不需隔离,因共用源/漏区分别接Vdd和GND。它们的两边分别采用隔离管进行栅隔离。右半部为一时钟式移位寄存器,移位寄存器内部各元件间不需要栅隔离,而只是在外部与其它部件进行隔离。,走线区域的“可编程”,除了连线孔是“可编程”外,走线区域也是“可编程”的,这是门海技术的一大特点。对于门海基片,因无事先确定的布线通道区域,而是根据电路布局布线的需要,把一行或几行基本单元链改为无用器件区。其办法是在工艺上保留介质层,无用器件区内无接触孔及通孔存在。宏单元之间的连线将在该区的顶部进行,连线与无用器件之间由厚介质层隔离。门海设计软件将决定哪些行用于实现逻辑,哪些行用于连线,这种走线灵活性大,大提高了硅面积的利用率,也保证了100的布通率。同时还可在门海基片的局部区域实现ROM/RAM等规则逻辑电路。,假如每个基本单元行可以容纳15根走线道,由于用于连线的走线区域只能是一个单元行或几个单元行,因此在每一走线通道行中的走线道数只能是15的整倍数(15,30,45,)。如果要求某一走线区域需通过16根走线道,则不得不分配两个基本单元行走线,但这时在该走线通道行中会有14根走线道没有被利用。提高走线道利用率的一种途径是缩小晶体管的宽度,这样在走线通道中可以允许的走线道数减小,导致走线道的增量数减小。但是晶体管宽度的减小会给复杂宏单元的内部连接带来困难,甚至无法实现全部的连接。此外,减小晶体管的宽度会影响门的驱动能力,通常,宏单元是沿着基本单元的行方向扩展,直至对该宏单元来说已具有足够的晶体管数目时为止,因而称其为行式宏单元。对于这种行式宏单元结构。在走线区域中并不是所有的走线道都被充分利用了。,“可编程”走线区域,门海设计流程,特点:与常规门阵列设计相比,在全局布线过程前,需进行布线通道分配,即计算所需的布线道数,即确定应取多少行或在什么区域用于走线 优点:门的利用率较高、集成密度较大;布线灵活和保证布线布通率确;能实现存储器这类等规则电路。缺点:它仍有布线通道,而且增加的布线通道只能是基本单元高度内所含通道数的整倍数,使增加的通道数超过实际的需要,造成面积浪费;布线通道下的晶体管不能再用来实现;因此门的利用率仍不很高。,定制设计方法 标准单元法,标准单元法是库单元设计方法中的一种。标准单元法的特点是各个单元具有同一高度(指版图尺寸),但宽度不等;单元本身经过精心设计,并完成了设计规则检查和电学性能验证。设计好的各单元存入设计系统的物理单元库中以便调用,单元的逻辑符号及电学特性则存入逻辑库中;设计时将所需单元从单元库中调出,将其排列成若干行,行间留有布线通道。然后根各要求将各单元用连线联接起来,同时把相应的输入/输出单元和压焊块联结起来,就得到所需要的芯片版图;芯片主要包括3个区域:四周的I/O单元和压焊块;单元部分;布线通道。由于准单元本身的信号端都引到单元的上下两端,因此单元之间的连线都处在布线通道内。,特点:准单元法的布局和布线是自动进行的。设计人员只要输入被设计电路的逻辑图或输入一种电路描述文件,再输入压焊块的排列次序;标准单元法自动设计系统将调用所需的单元和相应的I/O单元及压焊块,进行自动布局和自动布线。在布局和布线过程中,布线通道的高度由设计系统根据需要加以调整,当布线发生困难时,将通道间距适当加大,因而布局布线是在一种不太受约束的条件下进行的,可以保证100的布线布通率。对于标准单元法,虽然每个被调用的单元都是事先设计好的,但制造芯片时的各层掩膜版则需要根据布图结果进行专门的加工定制,即不同的电路需要一套完整的不同层的掩膜版,因而无法事先完成部分加工工序。,准单元的示意图 标准单元法的典型版图布置,单元库,单元库中每个单元都各具有3种描述形式:1)单元的逻辑符号(以L为特征);单元的逻辑符号用以建立逻辑图。(2)单元的拓扑版图(以O为特征);单元的拓扑版图描述单元掩膜版图的外形尺寸、输入输出端口的位置及其宽度。在拓扑版图上除标有单元名外,还有输入输出端口名和控制端口名,其名称与逻辑符号中的名称完全一致。(3)单元的掩膜版图(以A为特征);完整的物理版图,反相器的逻辑符号、拓扑版图和掩膜版图,反相器的逻辑符号、电路图和掩膜版图,在不同的设计阶段,标准单元法自动设计系统将分别调用单元库中的上述3种描述形式。在逻辑图输入时,调用相应的逻辑符号并进行连接。在设计实现阶段,开始只调用单元的拓扑版图,因为它的引入会大大压缩数据的处理量,并有助于设计人员的直观检查。设计人员不需要详细了解单元内部版图的细节,而只掌握单元的主要特征。经自动布局布线得到的是芯片的拓扑版图,在加工制造之前,它需要经过一次转换,将拓扑形式转换成掩膜形式,得到需要的掩膜版图,进行掩膜版的定制,进而加工芯片。,调用不同描述形式的各设计阶段,单元库,单元库一般包括SSI/MSI逻辑单元,从“与非”门、“或非”门到触发器、锁存器和移位寄存器等;规模较大的单元有加法器、乘法器、除法器、算术运算单元、FIFO等。一个典型的单元库除了数字功能块外,还可包括若干模拟功能块。在单元库中,同一功能的单元有几种不同的型号供设计者选择。以反相器为例,有输入级、内部级、缓冲级和输出级之分。其它功能块也是如此,这样在逻辑图转换成标准单元电路图时有较大的灵活性,典型单元库的组成,单元设计,单元在版图上的排列有两种形式。一种是单一单元排列成行,这时I/O 为双边输入/输出,每个I/O端口在单元的上部和下部有两个电学上完全对应的端口;另一种为双单元背靠背排列成行,这时每个I/O端口只能单边输入/输出。在单层布线时,需要一种特殊的单元称为连线单元,其高度与其它标准单元相同,当需要在两个布线通道之间穿过一根连线时,就从库中调用它,并插入标准单元行中,然后把连线接到连线单元的上下两个端口,连线单元就起到了连线的作用。,单元在版图上的排列形式,双边输入/输出 背靠背单边输入/输出 连线单元,电源线与信号端口位置,标准单元的版图设计与通常的版图有所不同。它要求电源线和地线从单元的左右边进出,所有的信号端从上部和下部进出。电源线和地线可以处在单元的最上端和最下端,如图(c)、(d);也可以以等高方式贯穿单元,如图(a)、(b);信号端口可在单元的上下边界处,如图(b)、(d);也可在单元内部,如图(a)、(c)。,将电源线和地线设计在单元内的优点是:当各单元拼接时,一行的电源线和地线可自然形成。但因电源线的宽度是固定的,无法根据单元功率需求的不同而加以适当调整。克服这一缺点的办法是各单元引出电源线和地线端口,而在布线通道中通过连线解决,电源线与信号的连接,电源线采用水平方向的第一层金属线,信号线采用第二层金属线或垂直的多晶硅线,单元内部连线采用第一层金属线和多晶硅。单元之间连线在布线通道内,水平线采用第一层金属线,垂直方向采用多晶硅线或第二层金属线。,阱区的设计方案,由于各单元中P型MOS管和N型MOS管所占面积的比例很不相同,因而无法采用等高的阱区结构。但考虑到单元排列时的拼接,可采用单元边缘处阱区等高方案,或使阱区与单元边缘间留有一定间距。如图(a)和(b)所示单元的高度取决于器件宽度W的设计。在典型的扇出和连线负载情况下,希望既具有最小的延迟和最节省的面积,又具有足够的高度以保证电源线、地线和单元内部的连线都能在单元中通过。,与全定制设计法相结合,在标准单元法中,除等高的标准单元外,还可插入宏单元(宏功能块),这些宏单元可以是PLA、ROM、RAM或ALU,也可以是专门全定制设计的宏单元功能块,典型的标准单元设计流程,与门阵列法的流程相似,不同之处为:在门阵列法中逻辑图是转换成门阵列所具有的单元或宏单元,而标准单元法则转换成标准单元库中所具有的标准单元。门阵列设计时首先要选定某一种门复杂度的基片,因而门阵列的布局和布线是在最大的门数目、最大的压焊块数目、布线通道的间距都确定的前提下进行的。标准单元法则不同,它的单元数、压焊块数取决于具体设计的要求,而且布线通道的间距是可变的,当布线发生困难时,通道间距可以随时加大,因而布局和布线是在一种不太受约束的条件下进行的。门阵列设计时所需定制的掩膜版只有24块,而标准单元设计后需要定制所有的各层掩膜版。,标准单元设计流程,标准单元法与门阵列法的差异:标准单元法中各单元虽然高度相同,但宽度不同,而门阵列各单元全是相同的;两者虽都有布线通道,但常规门阵列中的布线通道是固定的,而标准单元法中布线通道间距是可变的;在门阵列法中,对应于一种基片结构,其I/O管腿数是固定的。设计时可利用其全部或部分I/O管腿,在部分利用时,空余的管腿不予连接。但在标准单元法中,是根据设计需要而设置I/O管腿数,因而没有空余的I/O管腿。门阵列基片已完成了连线以外的所有加工工序,完成逻辑时需要单独设计的掩膜版只有24块;但对标准单元法则不同,由于所调用的单元不同,布局的结果不同,布线结果不同,布线通道间距不同,因而需要设计所有层次的掩膜版。,标准单元法与门阵列法比较有明显的优:芯片面积的利用率比门阵列法要高。芯片中没有无用的单元,也没有无用的晶体管;可以保证100的连线布通率;单元可根据设计要求临时加以特殊设计并加入库内,因而可以得到较佳的电路性能;可与全定制设计法相结合。在芯片内放入经编译得到的宏单元或人工设计的功能块。准单元法存在的缺点:原始投资大。单元库的开发需要投入大量的人力物力;当工艺变化时,单元的修需要付出相当大的代价。成本较高。由于掩膜版需要全部定制,芯片的加工也要经过全过程,因而成本较高,因此只有芯片产量达到某一定额(几万至十几万),其成本才可接受。,通用单元法,通用单元法也是一种库单元设计法。与标准单元不同之处为:它既不要求每个单元(或称积木块,building blocks)等高,也不要求等宽。每个单元可根据最合理的情况单独进行版图设计,因而可获得最佳性能。设计好的单元存入库中备调用。它没有统一的布线通道,而是根据需要加以分配。特点:布线通道不规则,加上各单元的连线端口处于各单元的四周,且端口的位置也不规则,电源线和地线的走向也不规则,目前已有针对这种设计法的自动布图系统,常称积木块布图系统(building block layout system)。,通用单元法设计的过程:首先把所需的单元全部调齐并作合适的平面布置,将那些会影响延迟性能的单元尽可能靠拢安放,然后,通过相应的软件工具预估其性能,如果发现不能达到要求,就对平面布置重新加以调整。预布局确定下来后,再进行详细的布局布线,这时原平面布置会略有变动以适应具体布线的要求。布局布线完成之后,再进行一次“版图后”模拟,以确定该芯片是否符合设计要求。,可编程逻辑器件设计方法,PLD的结构特点:定义:可编程逻辑器件PLD(programmable logic devices)是一种由用户通过编程配置,来完成并实现某种逻辑功能电路;基本结构:由两个基本部分组成:即逻辑阵列和输出单元(或宏单元)。逻辑阵列是用户可编程的部分,它由“与”阵列、“或”阵列和反相器所组成。宏单元的作用是使设计者能改变PLD的输出结构。工作原理:输入信号首先通过“与”阵列,产生一系列输入信号的组合,每组组合称为“乘积项”,然后这些乘积项在“或”阵列中相加,形成“积之和”,再经输出单元或宏单元输出。这种“与阵列或阵列”结构可直接实现任何“积之和”形式表达的逻辑,而任何逻辑功能都可以通过卡诺图(Karnaugh maps)和狄.摩根定理(De Mougans theorem)得到“积之和”的逻辑方程。,PLD的分类(四种基本类型)可编程只读存储器PROM(programmable read-only memories)、可编程逻辑阵列PLA(programmable logic arrays)可编程阵列逻辑PAL(programmable array logic)、通用可编程阵列逻辑GAL(generic-programmable array logic)四种基本类型的区别在于哪个阵列可编程以及输出结构形式:,PROM中包含一个固定连接的“与”矩阵和一个可编程连接的“或”矩阵,如图所示:PROM有4个输入端、16个乘积项、4个输出端。其中“”表示固定连接点,“X”为可编程连接点。PLA中包含一个可编程连接的“与”矩阵和一个可编程连接的“或”矩阵,图中X为可编程连接点。,PAL和GAL则不同,它们的“与”矩阵为可编程,而“或”矩阵是固定连接,GAL与PAL的差异除了表现在输出结构上,还在于GAL是可以重配置的(reeonfiguration)。,PLD的符号,用标准组合逻辑和PLA实现“与或非”电路,带反馈的寄存器输出结构的PAL器件:当系统的时钟的上升沿到来时,每个“积之和”项存入一个D触发器。通过使能低电平有效的输出三态缓冲器,再将D触发器的输出Q送到输出引脚。/Q输出端则反馈到“与”阵列,这样的PAL器件能记忆原先的状态,从而实现状态机中的时序逻辑功能。如向上或向下计数、跳位、移位和分支等。,异或结构的PAL器件:的特点是在输出部分增加了一个“异或门”,阵列的乘积和分割成2个和项,2个和项在在D触发器的输入端“异或”后,在系统时钟的上升沿到来时存入触发器。异或结构的PAL 具有寄存器型PAL器件的所有特性。,算术功能结构PAL器件:特点是在异或结构PAL的基础上增加了反馈选通电路,2个和项在D触发器的输入端执行“异或”操作,可实现上次运算产生的进位与此次运算产生的结果之间的的“异或”。反馈选通电路可以对输入项B和D触发器的输出反馈项/A施行二元逻辑操作,以获得几种可能的逻辑组合,如(A+B)、(A+/B)、(/A+B)、(/A+/B)。,复杂的输出结构(宏单元):如PAL22V10,除了触发器外,还有两个多路器,它可以通过S0端和S1端进行编程,不仅可改变输出的极性,还可使输出结构成为寄存器型或组合型。反馈多路器也可编程,使反馈来自内部寄存器或者使相应的管脚成为输入端。PAL22V10的另一特点称为不同的乘积线分配,即不同的宏单元可以具有不同数目的乘积线,它们可以是8,10,12,14或16,以供设计者作优化使用。,GAL,GAL被称为第二代PLD器件。除了可编程外,它还可以再配置(reconfigurable)或称再编程。这是PLD器件发展史的一个重要飞跃。特点:PAL器件只能实现可编程,在编程后无法加修改;如需修改,便要更换新的PAL器件。但GAL则不然,这时不必更换,只要在原器件上再次编程(即再配置)即可。这种再配置性能是由于在器件制造工艺中采用了电可擦写浮栅CMOS技术(即EECMOS技术),使已经编程的点可以设法擦除,再通过写入操作重新编程,以便对原逻辑功能进行修改或纠正设计错误,达到重新配置的目的。同一器件可以多次反复地擦除写入,以达到多次修改的要求。另一重要特点是EECMOS技术具有不挥发性,在器件掉电后不必对GAL器件重新编程。,此外,它还有一种“安全保护单元”,允许对GAL器件实现安全保护,凡经保护后外界无法从器件中读出二进制的编程编码,达到保密的目的。正是由于以上特性,使GAL器件得到了迅速的推广应用。在输出结构中采用了可编程逻辑宏单元OLMC(output logic macro cell)OLMC有一个触发器、一个“异或”门、一个有三态控制的输出缓冲器、一个8输入“或”以及4个多路器(MUX)。多路器和“异或”门可通过电学编程方法加以控制。异或门可通过XOR(n)信号改变“或”门输出的极性。输出多路器(OMUX)可使输出成为直接输出或是寄存器型输出o三态多路器(TSMUX)有4种选择1)接Vcc时为无控制直接输出;(2)接地时,则阻止OLMC输出;(3)接OE信号时,由OE控制输出;由“与”矩阵的一根乘积线来控制输出。,反馈多路器(FMUX)也有4种选择(1)接地时阻止反馈;(2)接受相邻单元的输出作信号;(3)使IO端作为输入端;(4)通过内部寄存器进行反馈乘机积多路器(PTMUX)控制两种状态,一是将乘积线直接输入“或”门,另一是将乘积线用以控制三态输出缓冲器。OMLC中的AC0和ACl(n)这两个控制端将决定以下4种不同的输出结构形式:普通的组合逻辑输出(AC00,ACl(n)0)非同步组合逻辑输出(AC01,ACl(n)=1)(3)时序逻辑输出(AC01,ACl(n)=0)(4)禁止OLMC输出(AC0=0,ACl(n)1),普通的组合逻辑输出 非同步组合逻辑输出,时序逻辑输出 禁止OLMC输出,高密度PLD,PAL和GAL的器件密度较低,一般只能达到几百门水平,在规模上无法与现场可编程门阵列(FPGA)相抗衡。高密度PLD是一种既保持了PLD在性能和使用上的优点,又具有FPGA那样的高密度的PLD器件。如Lattice的pLSll000,2000和3000系列,最高可达14000门。pLSI在结构上采取了一些措施,其中心是集总布线区GRP(global routing poo1)。GRP使所有的内部逻辑可以互相连接,而且具有固定的和可预测的连线延迟,这对逻辑设计带来极大的方便。GRP的四周分布有通用逻辑块GLB(generic logic blocks)和输出布线区ORP(output routing poo1)及输入总线IB(input bus)。ORP的作用是在GLB的输出与输出管脚之间提供一种灵活的互连。这种灵活性允许在逻辑设计的最后阶段进行局部修改,而不改变外部的管脚位置。,结构示意图,逻辑框图,通用逻辑块GLB与GAL器件相类似。除了“与”矩阵和OLMC外(每一GLB有4个OLMC),增加了一个乘积项共享阵列PTSA(product term sharing array)。标准GLB配置为4,4,5,7个乘积项。利用PTSA,其它输出可以共享这20个乘积项,即某个GLB输出最多可以配置成20个乘积项,以满足宽和窄的这两种逻辑功能的不同需要。来自PTSA的信号再馈入OLMC。OLMC可配置成组合型(AND、OR、XOR),也可配置成寄存器型(D型、T型、JK型触发器)。时钟信号可以是外部的同步时钟信号、内部产生的非同步时钟信号。利用这种高密度PLD可实现高速控制器、总线接口、编码解码器、计数器,甚至可在一个器件中集成一个子系统,例如DSP、数据加密、数据压缩等子系统。,GLB输出可以单独地进行配置“异或”型。由3个乘积项之和及1个乘积项构成“异或”门型,可实现计数器、比较器和ALU等逻辑功能。高速旁路型。由4个乘积项之和直接馈入可配置的寄存器,内部“异或”门被旁路。一些对速度有关键性影响的通路可采用这种配置。单一乘积项型。由1个乘积项直接送入“异或”门。它适用于小的高速逻辑功能.标准的GLB配置型。共有7+4个乘积项,其中4个是通过PTSA,来自第9个至12个乘积项。,GLB的配置,系统内编程的PLD(IS-PLD),在系统内进行编程的逻辑器件IS-PLD(in system-programma ble logic device)的出现是PLD发展史上的一个重要阶段。它不仅具有GAL和高密度PLD的可编程和再配置的性能,而且可使可编程和再配置在系统内或印刷电路版上进行,而不必将PLD器件从系统中或印刷电路版上取下,这为系统设计和开发提供了一种全新的手段。对IS-PLD器件进行编程和再配置的方法很简单,只要求有5V电源电压和一个4线或5线的串行接口,串行接口有串行数据输入SDI、模式选择MODE、串行数据输出SDO和串行时钟SCLK。有的器件另有一isp使能(ispEN)口,用来使上述4个编程控制串口赋能或不赋能,这样这4个管脚在器件正常工作时仍可作为专用的信号输入端,即可共享管脚。,IS-PLD的串行接口,采用IS-PLD器件的优点:不需将器件从印刷电路版上取下,可直接在系统内进行编程和再配置,从而加速了在系统级或印刷电路版上排除故障的过程。消除了管脚的多次弯曲。对采用PQFP和TQFP封装形式的PLD,其管脚薄至只有0.5mm,多次拔出和插入极易造成弯曲和损坏。而现在只需进行一次印刷电路版的安装,大大简化丁生产工序。易于进行产品出厂后的维护和更新。这种更新只要通过软盘将新配置的编码送入器件即可,维修和更新甚至可在远处通过MODEM来实现。便于电路版级的测试。在测试时可重新配置,临时编程一诊断用的测试图案送入器件进行版级测试。一旦完成诊断,IS-PLD器件可以被重新编程为正常工作时的逻辑配置。使同一种印刷电路版具有不同的功能。这是通过对器件进行不同的配置而得到的;这种多功能硬件可大大减少印刷电路版的种类,从而简化制造流程,降低系统级成本。IS-PLD的出现使传统的硬件概念也发生了变化,硬件可以像软件一样通过编程而具有不,PLD器件的设计流程,PLA和GAL的编程是在微机上或在工作站上进行,并由PLD软件开发系统来完成。一种典型的设计流程如图为:在与器件无关的阶段,硬件描述语言经语言处理器和优化后自动选择某一合适的器件,并得到一ABEL-PLA文件。在与具体器件有关的阶段,输入ABEL-PLA文件,并与器件库中的具体器件信息相匹配,确定器件中各熔丝的状态,即加以编程或不作编程,最后得到JEDEC格式的编程文件。将此编程软件再下载(download)到器件中,即完成设计工作。,PLD器件的设计流程,逻辑单元阵列设计方法(LCA),LCA的结构与特点:逻辑单元阵列LCA(10gic cell array)通常又称现场可编程门阵列FPGA(field programmable gate array)。实际上它不是一种门阵列,而只是在形式上类似于门阵列。LCA由可配置的逻辑功能块CLB(configurable logic blocks)排列成阵列形式,其内连采用了布线通道结构。LCA主要由3个主要部分所构成:内核为排列成阵列的可配置逻辑功能块CLB;四周为输入输出功能块IOB(I/Oblock);通道形式的内连区(interconnect area),用宋产生CLB和10B之间所希望的内连。,LCA更类似于PLD,因它具有可编程的特点,对用户来讲,它如同一个PLD,而且与GAL一样,可以再配置。此外,与PLD一样,它提供了互连路径,设计者只需要对可编程连点PIP(programmable interconnect point)和开关矩阵(switch matrix)进行编程就可以实现具体的连接。实现LCA有3种方案:采用SRAM;采用EPROM;采用反熔丝(Anti-fuse)方案。,LCA的结构与特点:,可配置逻辑功能块每一CLB中含有一组合功能块combinatorial function)、2个D触发器以及5个多路器。组合功能块有5个逻辑变量作为输入,其输出为F端和G端。它们被送入触发器,触发器的数据也可直接来自DIN端,触发器可直接作为CLB的输出,也可通过内部反馈RESET通路送入组合功能块。以XILINK的XC3090型FPGA为例,内部有CLB共320个,排成16行20列.LCB的内部逻辑图,输人/输出功能块 IOB的内部有D触发器、输出缓冲器及输入缓冲器等,它有一系列由编码控制的可选项来对IOB进行配置,可选项有OUT INV(可改变输出极性),TSINV(三态控制反相),OUT-PUTSELECT(决定输出为寄存器型输出还是直接输出),SLEWRATE(可改变转换速率)和PASSIVE PULLUP(提供常高电平)。IOB有4个输入可选项:直接 触发器COS或TTL阈值上拉电阻或开路5个输出可选项:直接或寄存器型输出极性反相或不反相有无三态三态由输出使能端控制转换速率是全速或有限,IOB内部逻辑图,可编程的内部连线资源LCA器件有3种内部连线资源提供给用户选择:直接内连线,它使邻近的CLB和IOB之间有最有效的连接,因而具有最小的内部传播延迟;长线,在开关矩阵的上下和右边通过,它主要用于长距离连接,在每一条长线的输入处设计有一隔离缓冲器;一般目的的