可编程逻辑阵列的节省能耗方法.pdf

上传人:00062****4422 文档编号:1041250 上传时间:2018-03-27 格式:PDF 页数:34 大小:1.80MB
返回 下载 相关 举报
摘要
申请专利号:

CN02128914.X

申请日:

2002.08.21

公开号:

CN1423177A

公开日:

2003.06.11

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G06F 1/32申请日:20020821授权公告日:20060329终止日期:20090921|||授权|||实质审查的生效|||公开

IPC分类号:

G06F1/32; G06F17/50; H03K19/00

主分类号:

G06F1/32; G06F17/50; H03K19/00

申请人:

萧正杰;

发明人:

萧正杰

地址:

台湾省台北市忠孝东路6段311号12楼

优先权:

2001.09.27 US 09/966,141

专利代理机构:

北京维澳专利代理有限公司

代理人:

张应

PDF下载: PDF下载
内容摘要

本发明为可编程逻辑阵列PLA电路提供新颖的节省能耗的方法。一种方法是存储先前PLA运算的结果,如果一个新运算的输入与以前的运算一样,则忽略这个新运算。另一个方法是复位PLA输出,如果通过复位输出锁存器,能得到正确结果。把一个大的PLA分区成小的子PLA,这些子PLA相互独立地接受控制。忽略不相关的子PLA,就有可能节省能耗。本发明的PLA比同等性能的先前工艺的PLA消耗更少的能量,达到几个数量级。对于大多数情况,本发明的PLA也具有更好的性能价格比。设计过程全部由具有友好用户界面的计算机辅助设计工具进行控制。PLA的规则结构和连接简单使我们可以避免导线的RC效应。随着IC工艺不断进展到越来越小的临界尺寸,我们能够获得完美的性能改进。

权利要求书

1: 一种用于减少可编程逻辑方法阵列(PLA)能量消耗的方法,其特征在于包含: (a)提供PLA输入方法用于接收PLA输入的多个信号; (b)提供PLA输出方法用于提供PLA输出的多个信号; (c)使用可编程的逻辑关系确定每个该PLA输入信号与每个该PLA输出信号 之间的逻辑关系; (d)提供PLA输出信号存储方法以存储上述PLA输出信号;和 (d)提供一种PLA活动控制方法,以比较每一个该PLA的多路输入信号与该 PLA输入信号相对应的每一个已存在的PLA输入信号,用于在仅当该多路输入信 号中至少有一个不与每一个现存的PLA输入信号相同时,打开该PLA的一个电源 输入。
2: 如权利要求1中所述的步骤(e)中提供的PLA活动控制方法,其特征在于更 进一步包含下列步骤: (e1)给PLA输入信号提供存储方法,用来存储每个该现存的输入信号一种之 前的PLA逻辑运算操作;和 (e2)给PLA提供输入比较方法,用来比较每个该多路输入信号和其相应的 现存的PLA输入信号。
3: 如权利要求1中所述的步骤(d)中提供的PLA输出信号存储方法,其特征在 于更进一步包含下列步骤: (d1)为PLA输出信号提供多个记忆体设备;和 (d2)为PLA输出信号提供复位方法,用来将该记忆设体备复位成预设值。
4: 如权利要求1中所述的步骤(e)中提供的PLA活动控制方法,其特征在于包 含下列步骤: (e3)向该PLA输出信号提供一个复位控制信号,用来将该PLA的输出信号储 存方法的输出复位成预设值;和 (e4)定义和监控PLA输入信号的一个子集之间的逻辑关系;这个逻辑关系 是对应于在该PLA输出信号与该预设值完全一致,而仅当在该PLA输入信号子集 间的逻辑关系不为真才打开该子PLA时的条件下的。
5: 一种用于减少可编程的逻辑阵列(PLA)能量消耗的方法,其特征在于包含以 下步骤: (a)把原始的PLA分区成多个子PLA; (b)提供给每个子PLA输入方法用来接收多个的子PLA输入信号; (c)提供子PLA输出方法用来为子PLA输出多个信号; (e)在每一个子PLA中,用可编程的逻辑关系定义该子PLA每一个输入信号 和该子PLA每一个输出信号之间的逻辑关系; (f)提供给子PLA输入信号存储方法和输出信号存储方法,用来分别地存储现 存的子PLA输入和输出信号;和 (f)提供子PLA活动控制方法,以比较每一个该PLA的多路输入信号与该PLA 输入信号相对应的每一个已存在的PLA输入信号,用于在当该多个输入信号中至 少有一个不与每一个现存的PLA输入信号相同时,打开该PLA的一个电源输入。
6: 如权利要求5中所述的步骤(f)中提供的子PLA活动控制方法,其特征在于 包含下列步骤: (f1)提供一个子PLA输入的比较方法,用来比较引入的子PLA输入信号和 存储在该子PLA存储装置中已有的子PLA输入信号。
7: 如权利要求5中所述的步骤(e)中提供的该子PLA输出信号的存储方法,其 特征在于包含以下步骤: (e1)提供多个记忆体设备用来存储子PLA输出信号;和 (e2)提供一个子PLA输出信号的复位方法,用来将该记忆体设备复位成预设 值。
8: 如权利要求1中所述的步骤(f)中提供的子PLA活动控制方法,其特征在于 包含下列步骤: (f1)向该子PLA输出信号的存储方法提供一个复位控制信号,用来将该子PLA 输出信号存储方法的输出复位成预设值;和 (f2)定义和监控PLA输入信号的一个子集之间的逻辑关系;这个逻辑关系 是对应于在该PLA输出信号与该预设值完全一致,而仅当在该PLA输入信号子集 间的逻辑关系不为真时才打开该子PLA时的条件下的。
9: 一个用于简化从一个PLA划分而成的子PLA的方法。其中每个子PLA有多 个输入线以接收输入数据,执行逻辑阵列的操作,在多个输出线上生成多路输出信 号。该方法其特征在于包含以下步骤: (a)对于每条该输入线,在该子PLA中比较该逻辑阵列,寻找一个与共享 minterm逻辑(SML)一致的子PLA输入的子集,以将该输入线路识别成具有一致的 逻辑阵列的“共享minterm输入”(SMI);和 (b)通过断开该子PLA的每条输入线使之成为SMI,而后提供一个逻辑电路在 子PLA活动控制方法中来计算该SML的值,以在该子PLA中代替该断开的输入 线的方法来简化该子PLA。
10: 如权利要求9中所述其特征在于进一步还包含以下步骤: (c)在该子PLA中按每条输入线进行逻辑阵列的比较,寻找该子PLA线路的 一个子集,使在该逻辑阵列中当在该输入数据上操作时对该子PLA的的输出没有 影响;和 (d)通过断开该子PLA的每条该输入线简化该子PLA。
11: 如权利要求9中所述的方法其特征在于进一步包含: (d)对于每条该输出线,在该子PLA中比较该逻辑阵列,寻找一个与共享 minterm逻辑(SML)一致的子PLA输出的子集,以将该输入线路识别成具有一致的 逻辑阵列的“共享minterm输入”(SMO);和 (b)通过将从逻辑阵列到该SMO的多个连接代换成为一条连接每个该minterm 的输出线来简化该子PLA。
12: 如权利要求9中所述的方法其特征在于进一步包含: (g)在该逻辑阵列中确定至少一个实现的逻辑运算,以在每条该输出线上生成 一个输出信号; (h)当在步骤(g)中该输出线的一个逻辑运算没有找到时,通过移去这些输出线 简化该子PLA;和 (e)通过将从逻辑阵列到该SMO的多个连接代换成为一条连接每个该minterm 的输出线来简化该子PLA。
13: 一个从一个分成多个简化的子PLA的可编程逻辑阵列(PLA),其特征在 于每个子PLA有多个输入线以接收输入数据,执行逻辑阵列的操作,在多个输出 线上生成多路输出信号。其中每个该简化的子PLA包含: 多条该输入线,每条输入线按以下原则连接到一个不同的逻辑阵列上:在该 PLA中给每个该输入线提供一个逻辑阵列,使该逻辑阵列通过移去一些带有共享的 minterm逻辑功能的共享minterm输入线得到简化。
14: 如权利要求13中所述简化的子PLA,其特征在于:每条该输入线与该PLA 提供的逻辑阵列的至少一个逻辑电路连接。
15: 如权利要求13中所述简化的子PLA,其特征在于:多条该输出线,每条 输入线按以下原则连接到一个不同的逻辑阵列上:在该PLA中给每个该输出线提 供一个逻辑阵列,使该逻辑阵列通过移去一些带有共享的minterm逻辑功能的共享 minterm输出线得到简化。 16如权利要求13中所述简化的子PLA,其特征在于:每条该输入线与该PLA 提供的逻辑阵列的至少一个逻辑电路连接。 17.多个由一个可编程逻辑阵列分成的子PLA包含多个PLA逻辑电路,其中 每个子PLA有多个输入线以接收输入数据,执行逻辑阵列的操作,在多个输出线 上生成多路输出信号,其特征在于:该子PLA中该输入线和该输出线的数量总和 少于该PLA的输入线和输出线的数量总和。 18.一个可编程逻辑阵列(PLA),其特征在于包含:多个子可编程逻辑阵列(子 PLA),其中至少一个该子PLA包含一个共享minterm输入(SMI)逻辑旁路电 路用于计算一个普通的真伪表以有条件地提供一个预设的子PLA向量,而不激活 该子PLA。 19.一个可编程逻辑阵列(PLA),其特征在于包含:多个子可编程逻辑阵列(子 PLA),其中至少一个该子PLA包含一个输入比较器用于比较到该子PLA的一组 新输入信号和该子PLA一组最新近的输入信号,仅当这两组信号不同时激活该子 PLA。 20.一个可编程逻辑阵列(PLA),其特征在于包含:多个子可编程逻辑阵列(子 PLA),其中每个该子PLA包含一个逻辑运算电路阵列和多个输入和输出线;和 每一条该输入和输出线连接到其中至少一个该逻辑运算电路上。 21.一个可编程逻辑阵列(PLA),其特征在于包含:多个子可编程逻辑阵列(子 PLA),其中每个该子PLA包含一个逻辑运算电路阵列和多个输入和输出线;和 每一条该输入线连接到一组独特的该逻辑运算电路上,使得每条该输入线都从 相隔的输入线上连接到一组不同的逻辑运算电路上。 22.一个可编程逻辑阵列(PLA),其特征在于包含:多个子可编程逻辑阵列(子 PLA),其中每个该子PLA包含一个逻辑运算电路阵列和多个输入和输出线;和 每一条该输出线连接到一组独特的该逻辑运算电路上,使得每条该输出线都从 相隔的输入线上连接到一组不同的逻辑运算电路上。 23.一个具有多个输入和输出线路并连接到多个逻辑运算电路的可编程逻辑 阵列(PLA)设计方法,其特征在于包含:分类和重新整理该PLA的一些与该多个逻 辑运算电路具有相似连接模式的该输入和输出线到一个邻近的区域,以将该PLA 分成多个子PLA而使每个该子PLA按j即可简化的连接模式安排在一起。 24.一个具有多个输入和输出线路并连接到多个逻辑运算电路的可编程逻辑 阵列(PLA)设计方法,其特征在于包含:将该PLA再分成多个子可编程的逻辑阵列 (子PLA),其中每个子PLA包含一组与该多个逻辑运算电路连接的该输入和输 出线;和 在一些该输入和输出线里识别出那些与相同的一组逻辑运算电路相连的,将该 组相同的逻辑运算电路替换成一个外部的逻辑电路,而从该子PLA中将该相同的 该组逻辑运算电路去掉进而简化该子PLA。 25.一个具有多个输入和输出线路并连接到多个逻辑运算电路的可编程逻辑 阵列(PLA)设计方法,其特征在于包含:将该PLA再分成多个子可编程的逻辑阵列 (子PLA),其中每个子PLA包含一组与该多个逻辑运算电路连接的该输入和输 出线;和 在一些该输入和输出线里识别出那些与任何该逻辑运算电路没有关系的,在该 子PLA中去掉这些输入和输出线,简化该子PLA。 26.一个具有多个输入和输出线路并连接到多个逻辑运算电路的可编程逻辑 阵列(PLA)设计方法,其特征在于包含:将该PLA再分成多个子可编程的逻辑阵列 (子PLA),其中每个子PLA包含一组与该多个逻辑运算电路连接的该输入和输 出线;和 对每一个该子PLA,在一些该输入和输出线里识别出它们与该多个逻辑运算电 路的连接模式,进而通过将该子PLA替换成相当的简化的子PLA来简化该子PLA。 27.一个具有多个输入和输出线路并连接到多个逻辑运算电路的可编程逻辑 阵列(PLA)设计方法,其特征在于包含:分类和重新整理该PLA的一些与该多个逻 辑运算电路具有相似连接模式的该输入和输出线到一个邻近的区域,以使该PLA 即可分成多个子PLA而使每个该子PLA按即可简化的连接模式安排在一起。 28.如权利要求27中所述的方法,其特征在于进一步还包含:将该PLA再分 成多个子可编程的逻辑阵列(子PLA),其中每个子PLA包含一组与该多个逻辑 运算电路连接的该输入和输出线。 29.如权利要求28中所述的方法,其特征在于进一步还包含:对每一个该子 PLA,在一些该输入和输出线里识别出那些与任何该逻辑运算电路都没有关系的, 从该子PLA中去掉这些输入和输出电路,而简化该子PLA。 30.如权利要求29中所述的方法,其特征在于进一步还包含:对每一个该子 PLA,在一些该输入和输出线里识别它们与该多个逻辑运算电路的连接模式,进而 通过将该子PLA替换成与之相当的简化的子PLA来简化该子PLA。 31.如权利要求29中所述方法,其特征在于进一步还包含:构成一个PLA活 动控制电路而选择性地激活子PLA的一个子集。 32.如权利要求31中所述的方法,其特征在于:该选择性地激活子PLA一个 子集的方法进一步还包含一个利用共享minterm输入的逻辑旁路电路来计算一个普 通的逻辑真伪表而有条件地提供一个预设的子PLA向量而不激活该子PLA的步 骤。 33.一个具有多个输入和输出线路并连接到多个逻辑运算电路的可编程逻辑 阵列(PLA)设计方法,其特征在于包含:分类和重新整理该PLA的一些与该多个逻 辑运算电路具有相似连接模式的该输入和输出线到一个邻近的区域;和 将该PLA分成多个该子PLA,并且通过去掉至少一条该输入或输出线,而使 所有该子PLA的输入线或输出线数量之和分别少于该PLA的输入线或输出线的数 量,达到简化该每个该子PLA的目的。

说明书


可编程逻辑阵列的节省能耗方法

    【技术领域】

    本发明涉及可编程逻辑阵列的电路设计方法,特别是可编程逻辑阵列的节省能耗方法。背景技术

    可编程逻辑阵列(PLA)电路和门阵列(GA)逻辑电路是集成电路(IC)逻辑产品的最基本的构成模块。在IC设计师通过硬件描述语言(HDL)描述逻辑运算之后,计算机辅助设计(CAD)工具把HDL自动地翻译成为PLA或者门阵列电路。这两种方法(PLA或者GA)是可以相互交换的。PLA的CAD工具把大量的输入信号和输出信号之间的所有逻辑关系组合成一组很大的“与”运算(AND)和随后的一组很大的“或”运算(OR),并且通过连接关系地可编程阵列表示这些运算。PLA的物理的结构极有规律,而且其时序易于预测。与之相反,门阵列的CAD工具把复杂的逻辑计算分散成一系列单步逻辑运算,如NAND,NOR,INVERT,并且通过大量逻辑门实现这些逻辑运算。这种过程在工艺上称为“综合”。GA逻辑电路的物理结构几乎是随机的,因此常被称为“随机逻辑电路”。它通常要求逻辑门之间存在十分复杂的关系。当IC建造技术发展到深度次微米时,导线的电阻,导线之间的分布电容变得十分重要。在GA逻辑电路之间的复杂关系使得实时校准和性能优化十分困难,即使借助最高级的CAD工具也无济于事。可以预期,由于导线的电阻和分布电容(RC)的问题,未来的IC技术将不能够通过减少晶体管尺寸改进电路性能。另一方面,因为PLA有规律的结构,能更好适应高级IC技术中的RC问题。PLA的限制来自其能量消耗。PLA的能量消耗远比GA多。能量需求使得完全用PLA实现一个大型逻辑电路几乎成为不可能。

    在陈述本发明之前,首先解释PLA工艺可以利于理解本发明。图1(a)是以前工艺的PLA的功能和几何形状的示意图。此PLA包含两个可编程的二极管阵列(102,103)。第一个二极管阵列(102)称为PLA的“AND阵列”,其功能是对其输入进行逻辑AND运算。这个AND阵列(102)包含(J+1)对输入线(I0,I0#,I1,I1#,…,Ij,Ij#,…,IJ,IJ#)和(K+1)条输出线(A0,…,Ak,…,AK),其中j,J,k和K是整数。二极管(100)在AND阵列的输入线和数出线之间有选择地连接,以控制其逻辑功能。对于图1(a)中的例子,A0通过二极管连接到I0,I1#,和IJ#。如果这些连接着的信号(I0,I1#,IJ#)有任何一个是低电平,A0就是低电平。换言之,A0=I0*I1#*IJ#,其中“*”代表逻辑AND运算。另外一个例子,Ak通过二极管连接到I1和IJ#,这样Ak=[I1*IJ#],依此类推。

    PLA的第二个二极管阵列(103)被称为“OR阵列”,其功能是执行逻辑OR运算。这个OR阵列由(K+1)条输入线(A0’,A1’,…,Ak’,?,AK’),和(M+1)条输出线(R0,R1,…,Rm,…,RM)组成,其中k,K,m和M是整数。二极管(109)在OR阵列的输入线和数出线之间有选择地连接,以控制其逻辑功能。对于图1(a)中的例子,R0通过二极管连接到A0’,A1’,和Ak’。如果这些连接着的信号(A0’,A1’,Ak’)有任何一个是高电平,R0就是高电平。换言之,R0=[A0’+A1’+Ak’],其中“+”代表逻辑OR运算。RM通过二极管连接A1’,Ak’和AK’通过二极管,这样RM=[’A1’+Ak’+AK’],依此类推。AND阵列和OR阵列中的水平线代表中间的逻辑状态,工艺上称为“minterms”(小项)。

    PLA有(J+1)个外部输入信号(IN1,IN2,…,INj,…,INJ),其中j和J是整数。每个输入信号连接到一个PLA输入电路(105),如图1(b)中所示。例如,第j’个PLA输入信号(Inj#)连接到换流器(121),产生的倒转的信号INj#,这个信号还与n-通道晶体管(MN1)的栅极相连。MN1的源极连接到另一个n-通道晶体管(MN3)的漏板上。MN1的漏板连接到一个PLA AND阵列输入信号(Ij)上,这个信号也与p-通道晶体管(MP1)的漏板相连。MP1的源极连接到电源电压Vcc。MP1的栅极与预负载信号PG#相连,这个信号同时也连接到MN3的栅极。MN3的源极接地。在信号INj#连接到n-通道晶体管(MN2)的栅极之前,它被换流器(122)倒转。MN2的源极连接到另一个n-通道晶体管(MN4)的漏板上。MN2的漏板连接到另一个PLA AND阵列输入信号(Ij#)上,这个信号也连接到p-通道晶体管(MP2)的楼板上。MP2的源极连接到Vcc,而MP2的栅极连接到预负载信号PG#上。MN4的栅极也连接到PG#。MN4的源极连接到Vss。当PLA空闲时,PG#的值为低,而Ij和Ij#被拉高到电源电压Vcc。当PLA通过将PG#拉高而被激活时,Ij和Ij#被激活;如果Inj在高位,Ij#则落到地面的电压水平Vss,而Ij处于高的阻抗状态;如果INj是低的,Ij被提升到Vss的水平,而Ij#则处在在高的阻抗状态。参照图1(a),成对的输入信号连接到AND阵列(102)的垂直的输入线(I0,I0#,I1,I1#,…,Ij,Ij#,…,IJ,IJ#)上。这些AND阵列的输入线与AND阵列水平的输出线(A1,A2,…,Ak,…,AK)相交。在空闲的状态下,利用被预充电信号PG#控制的p-通道晶体管,AND阵列的这些水平线(A1,A2,…,Ak,…,AK)被预充电至Vcc的水平。信号PG#也连接到一个延迟电路(108)上而产生OR阵列预充电信号(PG,PG1#)。图1(c)显示延迟电路(108)的结构。一个可编程的延迟电路系统(125)提供适当的延迟时间,而延迟电路的输出连接到换流器(126)上而产生信号PG,这个输出与另一个换流器(127)相连而产生信号PG1#。这些OR阵列的预充电信号(PG,PG1#)控制着AND阵列和OR阵列之间的数据转换器(107)。图1(d)中显示数据转换器(107)的结构。在第k个AND阵列输出信号(Ak)连接到p-通道晶体管(MP5)的栅极之前,它先被换流器(123)倒转。MP5的源极连接到PG1#,而其楼板连接到相应的OR阵列输入线(Ak’)上。信号Ak’也连接到n-通道晶体管(MN5)的漏板上。MN5的栅极与PG相连,而其源极连接到地面电压Vss。在空闲的状态,PG1#值为低而PG为高,所以Ak’总被降至Vss的水平。当OR阵列(103)被激活时,PG处于低位而和PG1#处于高位;如果Ak是高的,Ak’被拉至Vcc的水平。如果Ak处于低位,则AK’此时为高阻抗。

    图1(e)图解说明了PLA关键信号的时域波形图。在时间Tst之前,PLA处于空闲的状态;PG#和PG1#都处于低电平;所有AND阵列输入信号(Ij,Ij#,j=0,1,…,J)和输出信号(Ak,k=0,1,…,K)是高电平;而所有OR阵列输入信号(Ak’,k=0,1,…,K)和所有PLA输出信号(Rm,m=0,1,…,M)是低的。在时间Tst时,AND阵列通过拉高PG#而被激活,而一些AND阵列输出信号值(Ak,k=0,1,…,K)被拉低,视二极管连接和PLA输入信号的值而定。在图1(e)中的时间Tr时,PG1#被拉高而激活PLA OR阵列,而AND的输出(Ak)值一直传到OR阵列中,而产生PLA输出(Rm)。在图1(e)中,PLA输出(Rm)在时间Td已经完成。在终止PLA运算时,PG#需要在时间Trst拉向低电平,而所有信号在时间Te返回各自的空闲状态,如图1(e)所示。

    上述的例子里,在可编程阵列中使用了二极管。在以前的工艺中,还有许多其它类型的PLA结构。例如,许多较早工艺的PLA结构在可编程阵列中使用了n-通道金属氧化物半导体(MOS)晶体管。AND-OR阵列可以被NOR-NAND阵列或者其它类型的逻辑组合所替换。所有那些较早的PLA结构都遵循类似的运算的原理,它们有着同样的问题,而且可以被本发明中同样的方法解决。我们将不再进一步描述其它较早的PLA细节。

    为了简化说明,我们只说明在AND和OR阵列中一小部分的可编程关系,如图1(a)所示。实际情况下,PLA通常有数以百计的minterms。图1(f)中,本发明者以符号化的表示来描述大型可编程阵列中的连接关系。AND阵列(161)中每条垂直的线代表一对输入线,每条水平线代表一条输出线。AND阵列(161)中,一个输入线和输出线之间交叉处开放的点(164)代表在交叉处一个在正输入线和输出线之间的可编程连接。AND阵列(161)中,在一条输入线和一条输出线交叉处的一个实心点(163)代表在负输入线和输出线之间相交处的一个可编程的连接。OR阵列(162)中每条水平线代表OR阵列的一条输入线。OR阵列(162)中每条垂直线代表OR阵列的一条输出线。OR阵列(162)中的输入线和输出线之间的一个开放的点(165)代表一个可编程的连接。外围电路在这个符号化的图示中没有详细显示。图1(f)允许我们以简单的图形符号显示大型的PLA的连接关系。我们将在下列的讨论中使用类似的图形符号。

    PLA电路通常比同样功能的组合逻辑电路使用更小的面积。PLA有规律的结构也使对其的修改变得容易得多。PLA电路的时序和速度更容易控制,特别是对高级的IC技术来说。而功率消耗是其主要的缺点。在图1(a-f)中的上述例子说明了较早的PLA结构比门阵列逻辑电路消耗更多能量的原因。  门阵列逻辑电路将复杂的逻辑计算分解成单步的逻辑运算,而后并且通过一系列的逻辑门执行这些单步逻辑运算。在逻辑计算期间,仅仅那些对输出结果有影响的门才消耗能量。对于大多数情况,一个大GA逻辑电路系统中只有小部分的门才消耗力量。而PLA则把大量输入信号和输出信号之间的所有逻辑关系组合成带有数百minterms的可编程的逻辑阵列。一旦PLA被激活,总是要消耗能量。甚至最简单的逻辑运算也将使PLA消耗如同所有输入和输出都参与计算时的最大能量。因此,PLA通常比相当的GA电路消耗更多电能。

    Engeler等人的美国专利4,782,249提供了一个方法通过使用CMOS静态的电路的PLA而减少PLA能耗。当所有PLA输入不被改变时,一个静态的PLA不消耗力量。然而,因为每个PLA信号连接到大的负载之上,所以静态的PLA仍然消耗许多力量。静态的PLA也比常规的PLA占用大得多面积。这个发明部分解决了能量消耗的问题,但是问题的主要的根源仍未解决。发明内容

    所以本发明的主要的目的是提供一个实际的方法以减少PLA电路的电能消耗。本发明另一目的是改进PLA的性能。本发明还有一个目的是在不增加晶片面积和成本的前提下,节省电能和提高性能。本发明的另一主要目标是利用高级的IC制造技术,提供充分发挥逻辑电路的性能的能力。

    我们利用新颖的PLA优化方法来达到这些目的。一个大的PLA被分区成小的“子PLA”。共享逻辑的Minterms被分在同一个分区。每一个单独的PLA子阵列只有当需要其进行运算时才会被激活。只要子阵列不影响最后输出结果,这个子阵列就没有电能消耗。本发明的PLA有传统PLA规律性的结构,而它又具有现代GA逻辑电路所特有的电能消费特点。这使得PLA的电能消耗与相当功能的GA逻辑电路的一样低。对于大多数情况,本发明中的PLA比原先的PLA结构占用更小的面积,性能也有所提高。

    随着本发明的创新特点在附带的权利要求中的特别阐述,本发明的组织结构和内容,与其它目的和特性一起,也将从随后的详尽描述和图示中得到更好的理解和欣赏。附图说明    

    图1(a)是一已知技术的PLA结构的示意图;

    图1(b)是图1(a)中的PLA的输入电路的示意图;

    图1(c)是图1(a)中的PLA的时控电路的示意图;

    图1(d)是图1(a)中的PLA的minterm传感器的示意图;

    图1(e)显示图1(a)中的PLA的关键信号之间的时序关系;

    图1(f)说明了本发明所使用的PLA符号表示;

    图2(a)是本发明的PLA设计方法的流程图;

    图2(b)是图2(a)中的排序的方法的流程图;

    图2(c)是图2(a)中的分区的方法的流程图;

    图2(d)是图2(a)中的物理设计方法的流程图;

    图3(a)说明了在如图1(f)所示的PLA阵列上完成排序过程之后的PLA阵列连接关系;

    图3(b)说明了在如图3(a)所示的PLA阵列上完成分区过程之后的PLA阵列连接关系;

    图3(c)说明了在图3(b)所示的PLA被分区为子阵列之后,PLA子阵列的结构;

    图3(d)是图3(c)中的PLA的输出电路的示意图;

    图3(e)是在图3(c)中的第一个子PLA的PLA活动控制逻辑的框图;

    图3(f)是图3(e)中的子PLA输入电路的共享minterm逻辑电路的示意图;

    图3(g)是图3(e)中的PLA输入电路的比较器电路的示意图;

    图3(h)为图3(c)中的PLA关键的控制信号之间的时序关系。具体实施方式

    我们从图1(f)中的PLA特定例子开始展示本发明的PLA设计方法。如图2(a)中的流程图所示,本发明的PLA设计方法包含下列步骤:

    步骤1:IC设计者使用硬件描述语言(HDL),为设计中的硬件写出逻辑方程。这个设计过程为IC设计者所熟知。

    步骤2:根据在步骤1中的HDL,IC设计者使用原先的PLA结构优化CAD工具来定义PLA的关系。那些较早的CAD工具能把任何组合逻辑方程转换成为PLA硬件,并且将对minterms的需要量降至最低。图1(f)的符号图形描述了一个结果的PLA关系例子。输入信号(I0,I1,…,If)和输出信号(O0,O1,…,O7)之间的逻辑关系由在一个AND阵列(161)中的连接关系(163,164)和一个OR阵列(162)中的连接关系(165)所定义。例如,图1(f)中的输出信号O2依AND阵列和OR阵列中的连接关系与输入信号相关,如下所示:

    O2=I0*I5*I6*Ic*Id*Ie#*If+I0*I5*I6*Ic*Id*Ie*If#+

    +I0*I1*I2*I3*I4#*I5*I6#*I7#*I8#*I9*Ia*Ib*Ic

    +I0*I1*I2*I3*I4#*I5*I6#*I7#*I8#*I9*Ic#

    +I0*I1#*I5#*I6*Ic*Id*Ie*If#+I0*I1#*I5#*I6*Ic*Id*Ie#*If

    +I0*I1*I2*I3*I4#*I5*I6#*I7#*I8*I9*Ia*Ib#*Ic+I0*I1*I2*I3#*I5*I6#*I9#*Id#*Ie+I0*I1*I2*I3#*I5*I6#*Ia#*Ic#*Id

    +I0*I1*I2*I3#*I5*I6#*Ib#*Ic#*Id

    +I0*I1*I2#*I3#*I5*I6#*Ia#*Ic*Id*Ie#*If                 (1)其中“*”代表逻辑AND运算,“+”代表逻辑OR运算,而信号后面的“#”代表信号的反向逻辑值。所有的逻辑方程的其它输出也如图1(f)中相似地被定义。步骤(1-2)的过程在当前的IC设计中是众所周知的。对于一个原先的PLA结构,设计者需要正确地选择输入和输出,才能使PLA得到高效的设计结果。对于本发明的PLA来说,本发明的创新过程将从步骤3开始自动地优化结果PLA电路,这样IC设计者不需在输入和输出信号的选择上花费精力。在最初的几个步骤中,IC设计者应该为想要的逻辑运算尽可能多地包含进所需要的输入和输出信号。

    步骤3:IC设计者为本发明的CAD工具定义权重因子和其它控制参数。在控制参数曾校准至正确值之前,可以先使用缺省值。权重因子允许IC设计者给每一个PLA输入和输出信号定义不同的“重要性”的水平。例如,我们可以把大的权重因子分配给最经常使用的输入信号,而把小的权重因子分配给很少被使用到的输入信号。控制参数的效果将在随后的讨论中解释。

    步骤4:使用本发明的CAD工具开始minterm排序过程。图2(b)中的流程图显示了一个分类过程的例子,其包含下列过程(S1-S4)。

    过程S1:从步骤2中定义的那些minterms中选择第一个minterm。第一个minterm按任意的标准随意选择。在我们的例子中,我们选择带有最大复杂性因子的minterm作为第一个minterm。复杂性因子(CF)被定义为

    CF=SWj                                       (2)其中,S代表所有连接到minterm的PLA输入值的总和,Wj是连接到minterm的第j’个输入/输出信号的权重因子。在我们的例子中,基于其复杂性因子,我们从图1(f)中的那些minterms中,选择图3(a)中最顶部的minterm作为的第一个minterm。

    过程S2:在余下的minterms中,选择与上一次的选择最相似的minterm作为下一个个minterm。这个选择过程有许多可能的方法。其中一种方法是定义一个相似性因子(SF),如下所示:

    SF=[Same_Connection(Ij)*Wj]             (3)其中Same_Connection(Ij)是一个函数,如果当前的minterm和上次选择的minterm在与第j’个PLA输入(Ij)有同样的连接关系时,则这个函数返回1,否则返回0。有着最高SF值的minterm被定义为上一次选择的minterm的“最相似的”minterm。在这个例子中,我们假定用来定义SF的权重因子(Wj)和用来定义CF的权重因子相同。不过,这些权重因子可以分别地单独地被定义,以得到较好的优化结果。

    过程S3:将在上述的过程中选择出的最相似的minterm放置在紧挨着上一次选择的minterm位置上。

    过程S4:将在过程S3中选择的minterm定义为新的“上一次选择的minterm”,然后回到过程S2,直到完成所有PLA的minterms排序。这些过程在图2(b)中的流程图加以说明。

    图3(a)以图形符号显示了minterm在排序过程之后的状态。图3(a)中PLA除了其minterms按上述的过程被排序之外,它与在图1(f)中的PLA逻辑功能完全相同。

    尽管在这里已经图解并描述了本发明的一些具体实施例,但对那些工艺娴熟的人士来说会意识到其它的修改和变化。还有很多其它方法用来给PLA的minterms排序。比如说根据PLA的输出信号的相似性而不是输入信号的相似性进行排序。另一个例子是根据输入和输出信号两者的相似性进行排序。也可以选择根本就不进行排序。应该理解上面的例子仅仅是为了演示的目的,而不意味着本发明将局限于此。

    步骤5:将通过步骤4排序过的PLA分区成多个子PLA,并且在每一个子PLA中确定共享的minterm输入。图2(c)中的流程图所示的是一个分区过程的例子,它包含下列的过程(P1-P5)。

    过程P1:IC设计者为每一个PLA的输入和输出信号定义控制参数Nlow,Nhigh,和权重因子。控制参数Nlow代表每一个子PLA所允许的最小的minterms数量。参数Nhigh代表每一个子PLA所允许的最大的minterms数量。设计者根据实际中的设计限制来定义这些控制参数。一个带有非常少量的minterm的子PLA是不实际的。使用逻辑门来执行这种小型子PLA的功能效率更高。因此有必要设定一个控制参数Nlow来限制子PLA的最小minterms数量。而带有非常大量minterm的子PLA性能将会十分低劣。因此有必要来设定控制参数Nhigh。为了简化布局,最好使那些子PLA有近似的大小。所以布局简化是另一个定义Nlow和Nhigh的因素。其它控制参数也在这个阶段中被确定。

    过程P2:从余下的排序后的PLA minterms中选择下一个Nlow minterms作为子PLA初始的分区组。

    过程P3:确定分区中子PLA的minterms是否对PLA输入的子集有着相同的连接关系。在下面的讨论中,我们将那些在一个子PLA中对所有minterms有相同连接关系的输入信号称为“共享minterm输入”(SMI)。那些SMI的逻辑运算被称为“共享minterm逻辑”(SML)。例如,图3(a)中的PLA的前8个minterms的SMI是(I0-I7),而那8个minterms的SML是(I0*I1*I2*I3*I4#*I5*I6#*I7#)。再比如,PLA的头16个minterms的SMI是(I0,I1,I5,I6),而他们的SML是(I0*I1*I5*I6#)。

    过程P4:需要判断把更多minterms增加到当前分区组是否有益。如果minterm数已经是所允许的最大值Nhigh了,那么答案明显是否定的。如果加入更多的minterms不会改变当前的分区组的SMI,那么将这些minterms加到这个组很可能是有益的。如果加入更多的minterms将减少共享minterms输入的数量,那我们就需要对此变化进行调整。在我们的例子中,我们将一个分区因子(PF)定义为:

    PF=(WPm)+WPs*(Np-Nlow)Pexp               (4)其中S代表在所有SMI信号上的总和,WPm是当前分区组中第m’个SMI信号的权重因子分区,Np是当前分区组中minterms的全部数量,Pexp是子PLA大小的指数权重因子,WP是大小的线性的权重因子。第一项S(WPm)趋向于减少分区下的子PLA中minterms的数量,而第二项WPs*(Np-Nlow)Pexp趋向于增加minterms的数量。在我们的例子中,我们把更多的minterms增加到当前的分区组,直到PF达到其最大值,或者直到minterm数量达到Nhigh或者,然后回到过程P2将下一个子PLA进行分区。在一个PLA中所有的minterms最终都被分区成子PLA后,我们就前进至过程P5,如图2(c)中的流程图所说明。

    过程P5:以跨越前几个过程中所确定的分区,移动minterms以取得子PLA大小之间的平衡。在邻近子PLA之间移动minterms以平衡所有子PLA的大小是有益的。在整个结构被优化之后,分区过程即告完成,我们也可以进入步骤6了。对于图3(a)中的例子,上述的分区过程(P1-P5)确定了4个子PLA分区(321-324),如图3(b)中的虚线所示。理想状态下,每一个分区的SMI应该包含尽可能多的输入,而每一个子PLA的大小应该尽可能平衡。图3(b)的例子为描述目的被简化。实际的情况中,每一个子PLA分区中minterms的数字通常比我们例子中的要高。

    本发明的具体实施例在这里被说明和描述,但对那些工艺娴熟的人士来说会意识到其它的修改和变化。应该理解上面的例子仅仅是为了演示的目的,而不意味着本发明将局限于此。有许多方法可用于将一个大的PLA分成子PLA。例如,我们可以“共享minterm输出”(SMO)信号而不是SMI信号的最大化为目的进行优化。又比如,我们可以以输入信号和输出信号两者为目标进行优化。再举一个简单的例子,我们可以分区PLA时,使子PLA具有相等的minterm数目或者一个固定的minterm数目。除Nlow和Nhigh外,我们还能定义许多其它的控制参数。我们也能把“假minterms”增加到每一个子PLA上以平衡子PLA的大小。那些假minterms提供了备份布局的空间,以备我们需要修改PLA的逻辑功能。本发明者执行的另一个分区方法是把一大PLA分区成为4的整数倍个PLA。4个子PLA的输出电路能放置在密集的距离之内,这对使用多米诺电路时是很理想的。

    步骤6:将上述步骤确定的所有的子PLA的物理设计结构确定下来。图2(d)中的流程图显示了本发明中PLA版图设计的一个例子,由下列的过程(L1-L4)组成。

    过程L1:简化每一个子PLA的AND阵列。在步骤5我们已经把一个大的PLA分区成小的子PLA。这样分区的一种主要的优点是每个子PLA个体通常能被简化。如果子PLA有SMI和SMO或者未被使用的输入和输出线,那么简化就是可能的。例如,图3(b)中的第一个分区(321)有从I0到I7组成输入信号的SMI。所有那些SMI信号的AND阵列连接关系的逻辑功能(SML=I0*I1*I2*I3*I4#*I5*I6#*I7#)可以被一个逻辑电路所替代。此外,图3(b)中的第一个分区(321)的三个输入信号(Id,Ie,If)没有被使用。因此,我们能通过以下两个步骤简化第一个子PLA(331),(a)移去所有SMI的输入线(本例中的I0-I7),和(b)移去所有未被使用的输入线(本例子中的Id,Ie,If)。图3(c)中显示了第一个子PLA(331)所得到的AND阵列(391)。另一个例子,图3(b)中的第二个分区(322)有由输入信号I0,I1,I3,I5,和I6组成的SML,其逻辑功能为SMI=I0*I1*I3#*I4#*I5*I6#。而两个输入信号(I4,I7)在这个分区(322)里没有被使用。图3(c)显示了第二个子PLA(332)中简化的AND阵列(392)。使用相同的方法,余下子PLA(333,334)的AND阵列(393,394)也能被简化,如图3(c)所示。

    过程L2:简化每一个子PLA的OR的阵列。如果子PLA的OR阵列包含有SMO和或者未被使用的输出线,那么简化就是可能的。一个分区的SMO可以被一条输出线替代。例如,图3(b)中第二个分区(322)的SMO是O5和O6。它们可以由第二个子PLA中OR阵列的一条输出线(O65)所替代,如图3(c)中所示。这条输出线(O65)连接到PLA的输出电路(330)的两条相应的输入线上。另一个例子中,图3(b)的第三个分区(323)有两条未用过的输出线(本例中的O1和O0)。所以在图3(c)中所显示的相应的子PLA(333)的OR阵列(383)则不需要那两条输出线。

    在上面所描述的简化过程,必须在PLA已经被分区成为子PLA后才成为可能。在一个大的PLA中,简化后的子PLA通常占用比它们相应的区域的小得多的空间。

    过程L3:为独立的子PLA建造物理设计结构。除了它们的minterms已在过程L(1,2)中被简化之外,这些独立的子PLA的外围电路(335)与原先的PLA结构相同,如图1(a-d)的例子所示。所以,利用与当前通用的PLA CAD相似的工具即可完成物理结构设计。

    过程L4:把所有子PLA和本发明的输出电路(330)相连接以完成PLA设计,然后放置PLA活动控制电路(336-339)以便控制每一个子PLA。这些输入和输出电路在下列的段落中的将进一步的细节描述。

    图3(d)是图3(c)中的输出电路(330)的一个元素的示意图。在图3(c)中仅仅显示产生一个PLA输出信号的电路。产生其它PLA输出信号的同样电路与此完全相同。第一个子PLA(Oi1)的第i个输出线(本例中i=0,1,…,7)与锁存器(341)数据输入连接。当第一个子PLA(331)的预充电信号(PG#1)是高值时,此锁存器(341)打开,而当PG#1是低的时候,它则关闭。锁存器(341)的输出(Li1)连接到n-通道MOS晶体管(MNi1)的栅极上。这个闭锁的输出信号(Li1)能通过一个复位的信号(DRS1)而进行复位,这个信号由第一个子PLA(331)的PLA活动控制电路(336)提供。第二个子PLA(332)的第i个输出线(Oi2)与锁存器(342)连接。当第二个子PLA(332)的预充电信号(PG#2)是高值时,此锁存器(342)打开,而当PG#2是低的时候,它则关闭。锁存器(342)的输出(Li2)连接到n-通道MOS晶体管(MNi2)的栅极上。这个闭锁的输出信号(Li2)能通过一个复位的信号(DRS2)而进行复位,这个信号由第一个子PLA(332)的PLA活动控制电路(337)提供。与此相似,所有余下的子PLA(333,334)的输出线(本例中为Oi3,Oi4)随相应的时钟信号(PG#3,PG#4)和复位信号(DRS3,DRS4)连接到相应的锁存器(343,344)上。这些锁存器的输出(Li3,Li4)连接到相应的n-通道MOS晶体管(MNi3,MNi4)的栅极上。所有那些MOS晶体管(MNi1-MNi4)的源极一起被连接到一个n-通道MOS晶体管(MN6)的漏板上,如图3(d)所示。MN6的源极接地,而它的栅极连接到PLA输出的允许信号(OEN)上。所有这些MOS晶体管(MNi1-MNi4)的漏板一起被连接两个p-通道MOS晶体管(MP3,MP6)的漏板上和换流器(346)的输入线上。换流器(OUTi)的输出连接到栅极MP3上。MP3的源极连接到电源电压Vcc之上。MP6的源极连接到Vcc,而其栅极连接到PLA输出的允许信号(OEN)上。图3(d)中显示的电路是多米诺OR门。当允许信号(OEN)是高的时,其输出(OUTi)等于所有闭锁的输入信号(Li1-Li4)的逻辑OR结果。为了节省能耗,数据输出锁存器(341-344)允许单独的子PLA存储之前的计算结果。

    图3(e)所示的是图3(c)中的子PLA(331-334)的PLA运行控制电路(336-339)的一个例子。第一个子PLA(331)的输入信号(例中的I8,I9,Ia,Ib,Ic)连接到由子PLA-预充电信号PG#1控制的输入锁存器(351)上。这些输入锁存器在子PLA运算结束时存储输入信号的值,这个子PLA运算是由PG#1的下降边缘所触发的信号激活的。因此,这些锁存器的输出(本例中的I8s,I9s,Ias,Ibs,Ics)是上一个激活的子PLA运算的输入信号。这些闭锁的输入信号被发送到比较器(353)与的新的输入信号(这个例子的I8-Ic)相比较。比较器(353)被SMI逻辑电路系统(352)激活。图3(f)为SMI逻辑电路系统(352)描述较更进一步的细节。子PLA(331)的这些SMI信号(例中的I0-I7)被发送到多米诺逻辑门(361)来为子PLA计算SML。对于这个例子,逻辑门(361)输出是SMIEN=I0*I1*I2*I3*I4#*I5*I6#*I7#。PLA的允许阅读信号(PLARD)和SMIEN连接到一个AND门(362)以产生比较器允许信号(CMPEN)从而使这个比较器(353)能够为子PLA操作。所以比较器(353)只有当SMIEN是高值时才能被允许操作。信号SMIEN也连接到NOR门(365)的输入。NOR门(365)的输出是这个子PLA(331)输出锁存器的复位信号(DRS1),它也连接到复位设定触发器(RSFF)的设置信号之上。在加电之后(被PWRUP触发)或者在子PLA被激活(由PG#1触发)之后RSFF被复位。RSFF的输出(DRSL)连接到NOR门(365)。这个SMI(352)的逻辑功能是当SMI逻辑方程值为低时复位所有子PLA的输出锁存器,而当它是高的时,则打开比较器。在输出锁存器被复位之后,RSFF会防止不必要复位。信号DRSL也被发送到比较器,因为一旦输出复位完成以后,即使当所有子PLA输入信号与之前的输入信号相匹配时,我们也需要激活子PLA。

    图3(g)是图3(e)中的比较器的示意图。成对的子PLA输入信号(I8,I9,…,Ic)和它们的相应的锁存器输入信号(I8s,I9s,…,Ics)被XOR门(371)比较。那些XOR门的输出连接到n-通道MOS晶体管(Mm8,Mm9,…,Mmc)的栅极上。从SMI逻辑电路所发送的信号DRSL连接到一个n-通道晶体管Mm上。这些n-通道晶体管(Mm8,Mm9,…,Mmc,Mm)的源极从被一并连接到n-通道晶体管(MmN)的漏板上。这些漏板被一并连接到两个p-通道晶体管(MmP,MP4)以及一个换流器(373)的输入上。换流器(PG#1)的输出连接到MP4的栅极上。MP4的源极连接到Vcc。MmP的栅极连接到比较器的允许信号(CMPEN)上,这个信号同时也连接到MmN的栅极上。MmN的源极连接到地面。图3(g)的电路是一个多米诺比较器。在比较器被CMPEN允许操作之后,如果闭锁的输入信号和引入的输入信号之间有任何不匹配的话,比较器的输出PG#1就是高的;或者如果子PLA的输出锁存器(341-344)自上次子PLA被激活之后已经被复位。PG#1的上升边缘激活第一个子PLA(331),并且开始进行逻辑评估过程。也就是说,子PLA只有当其闭锁的输出不再正确的时候才被激活。否则,子PLA将不消耗任何电能。余下子PLA的PLA活动控制电路(337-339)以相似的方式设计,如图3(e)中所示。每一个单独子阵列有着被之前的简化过程(L1-L2)确定下来的不同的SMI和不同数量的输入信号。图3(d)中的输出电路保证了所有子PLA的最后输出与图1(f)中的原先的PLA结构的输出完全一致。同时,每一个子PLA可以被个别地激活。在大多数情况下,整个的PLA中仅仅有一小部分被激活。所以没有能源上的浪费。

    图3(h)显示图3(c-g)中的PLA的关键的信号之间的时序关系。在Tst’时间之前,PLA提前处于空闲状态;PLA使信号(PLARD)保持低电平;比较器在所有子PLA中的使信号(CMPEN)低电平,和所有子PLA-前负载信号(PG#1-PG#4和PG1#1-PC#4)是低电平。所有的输出锁存器在子PLA中保持一种以前的PLA运算(Li1-Li4,i=1,2,…,8)的结果。在时间Tst’,PLA使信号PLARD被拉至能够开始逻辑运算的高电平。所有的SMI逻辑电路在子PLA中决定如果必要的话他们的比较器是否应该被能够,和把CMPEN拉高。被能够的比较器为那些子PLA把新的输入信号和以前的输入信号比,并且子PLA有选择地激活相应子PLA-前负载信号(PG#1-PG#4)。在前负载信号被激活之后不久,激活子PLA AND阵列的输出(Ak1)准备完毕。OR的前负载信号(PG1#1-PG1#4)激活的阵列子PLA在图3(h)中在时间Tr’被激活。子PLAOR阵列输出线(Om1-Om4)准备完毕在前负载信号被激活之后不久,而输出锁存器被打开。输出锁存器(Li1-Li4)的输出在时间Td’准备完毕。PLA输出使信号(OEN)能够在时间Tdo’被激活,而PLA(OUTi)的最后输出在之后不久准备完毕。在时间Trst’,PLARD被释放,而所有信号在时间Te返回他们的稳定的状态价值’。所有的输出锁存器子PLA包含最后的PLA运算的正确输出,而输入锁存器住最近的输入数据。PLA和所有其子PLA为对下一个种活动作好准备。

    本发明的具体实施例在这里被说明和描述,但对那些工艺娴熟的人士来说会意识到其它的修改和变化。人们应该理解上面的例子仅仅是为了演示的目的,而不意味着本发明将局限于此。还有很多其它方法来将一个大的PLA分成一些子PLA。例如,我们可以进行优化而取得最多的“共享minterm输出”(SMO)信号而不是共享minterm输入信号。再比如,我们可以为输入和输出两者进行优化。再举个简单的例子,我们可以按每个子PLA具有相同个数的minterm或者一个固定个数的minterm来进行分区。

    举个例子来说,如果在输入线上应用SMI的值,SMI逻辑结果能被作为子PLA的AND阵列中的一条输入线执行。一个子PLA可以被简化到这样的程度,即是余下的逻辑能靠结合逻辑电路执行。有许多其他的设计比较器和子PLA控制电路的方法。类似的过程对拥有NOR-NAND阵列的PLA或是拥有其他类型的逻辑组合的PLA也是适用的。在上述的例子中,最近的PLA运算的输入和输出信号被闭锁。它也许有利于存储前一次PLA运算输入和输出信号,而不是最近的PLA运算的此类信号。

    把较早工艺的PLA结构分区,形成较小的的PLA,对IC设计者而言,是很平常的事情。这个过程需要找到一个输入/输出信号的子集,这些输入和输出信号几乎要独立于其余的输入和输出信号,并且分开那些输入和输出信号而建造另一个PLA。如果恰当地完成,这一过程的结果通常引起较小的区域和较好的的性能。然而,那些先前的技术方法与当前这种发明的方法是完全不同的。当前的发明通过minterms的相似性来对其分区,并且将大多数相似的minterms放置在同一个子PLA中。那些子PLA的结果被结合起来,用以提供最后结果。通过PLA活动控制电路能够有选择地激发单个的子PLA,可以达到节省电能的目的。当前发明中的子PLA的成功分离,并不要求输入/输出信号之间有任何关系。我们不需要找到几乎不依赖于其它输入和输出信号的一个输入/输出信号的子集。单个的子PLA的结构被优化,使之消耗最小的电能。在子PLA的输出部分放置锁存器,这样当逻辑运算不改变其输出时,子PLA不需要消耗电能。本发明的PLA在设计方法和物理结构都不同于原来的PLA。

    步骤7:计算功率,速度和上述PLA设计的面积。用上述方法设计的PLA,其可预测性很高。使用CAD工具,所有参数的计算都可以在很高的精度下进行。物理布局可以通过CAD工具自动地完全确定,这样我们将能够知道PLA的确切面积。PLA的速度是子PLA尺寸的函数。没有必要对单个实例做详尽的仿真。PLA的大小和速度之间的关系能高精度校准。PLA消耗的电能与对子PLA的分区有关。一个子PLA的电能消耗(Pw)为

    Pw=Pws+Pr*Pwr+Pc*Pwc+Pa*Pwa                   (5)Pws是当子PLA没有活动时,其消耗的电能,Pr是当SMI逻辑计算结果为低时的概率,Pwr子PLA复位其输出锁存器时消耗的电能,Pc是当SMI逻辑计算结果为高,但比较器显示没有必要激活子PLA时的概率,Pwc是打开子PLA中比较器所需要的电能,Pa是子PLA被激活的概率,Pwa是为进行逻辑计算而打开PLA时需要的电能。实际上,Pwa比Pws,Pwr和Pwc高几个量级,这样实际的电能消耗取决于最后的一项Pw~Pa*Pwa。只有当SMI计算和输入比较都需要新的运算时,才激活子PLA,而这两者同时发生的概率很小。此外,子PLA的大小也通过简化过程被大大地减小了。因此能量消耗比原先同种工艺的PLA小几个量级。

    一旦PLA的能量、速度和面积被确定,IC设计者就能确定结果是否满足他们的要求。如果不满足,设计者能改变控制参数并且返回到步骤3开始另一次优化,直到所有要求都吻合,如图2(a)中的流程图显示的那样。

    与原先的逻辑电路技术相比,本发明的PLA有下列的优点。

    本发明把一个大的PLA分成许多小的子PLA。每个独立的子PLA都被单独控制,而且只有当其闭锁的输出对所需要的运算不再有效时,它才被激活。当(a)将要进入的输入信号与先前的产生闭锁的输出信号的输入信号相匹配,或当(b)即将进入的输入信号的输出信号可以通过使用输出锁存器的复位信号来产生时,子PLA的运算被绕过。子PLA运算要求充足能量的概率被那些绕过过程极大地减少了。对于大多数情况,在所有PLA电路中,仅仅一小部分电路消耗电能。另一方面,本发明的PLA具有门阵列逻辑电路电能消耗的特点。他们比先前工艺的PLA电能消耗低得多,而且在空闲的状态时不消耗任何电能。

    本发明的PLA需要为PLA输出电路和PLA活动控制逻辑电路提供附加的区域。另一方面,由于本发明中的分区方法,使得minterm的简化成为可能,因而子PLA中的可编程阵列就更小了。对于大多数情况而言,本发明的PLA的全部面积小于同等性能的使用先前技术的PLA。

    由于子PLA更加小巧和简化的结构,本发明在整体上改进了性能。

    本发明减少了可编程逻辑阵列的每一条输入和输出线中连接的数量。因此为减少成本而在可编程阵列中使用二极管而不是晶体管,就成为可能。

    本发明的设计过程,包含优化,校准和物理布局,完全由CAD工具自动执行。这些过程对用户而言极其友好。这些结果比使用当前工艺的逻辑设计方法取得的结果也可靠得多。对于大多数情况,利用本发明的产品的设计时间显著少于同等性能的利用先前的技术所花费的时间。

    本发明的优点,使得支持相当于有数百万门GA逻辑的大规模产品成为可能。PLA有规律的结构和简单的关系允许我们避免RC的影响。随着IC技术的进步而进入越来越小的临界尺寸,我们能够获得完美的性能改进。

    当我们在这里对本发明的一些特殊的细节进行演示和描述的同时,不能将这里的揭示当成是一种限制,在阅读上文后,业界人士就知道可以有许多改变和修正。因此,可将申请案的权利要求解释成涵盖在本发明原始精神和领域下的所有改变和修正。

可编程逻辑阵列的节省能耗方法.pdf_第1页
第1页 / 共34页
可编程逻辑阵列的节省能耗方法.pdf_第2页
第2页 / 共34页
可编程逻辑阵列的节省能耗方法.pdf_第3页
第3页 / 共34页
点击查看更多>>
资源描述

《可编程逻辑阵列的节省能耗方法.pdf》由会员分享,可在线阅读,更多相关《可编程逻辑阵列的节省能耗方法.pdf(34页珍藏版)》请在专利查询网上搜索。

本发明为可编程逻辑阵列PLA电路提供新颖的节省能耗的方法。一种方法是存储先前PLA运算的结果,如果一个新运算的输入与以前的运算一样,则忽略这个新运算。另一个方法是复位PLA输出,如果通过复位输出锁存器,能得到正确结果。把一个大的PLA分区成小的子PLA,这些子PLA相互独立地接受控制。忽略不相关的子PLA,就有可能节省能耗。本发明的PLA比同等性能的先前工艺的PLA消耗更少的能量,达到几个数量级。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1