大规模集成电路的算术/逻辑运算部件的制作方法

文档序号:7531121阅读:553来源:国知局
专利名称:大规模集成电路的算术/逻辑运算部件的制作方法
技术领域
本发明属于大规模集成电路和高速计算机设计领域。
集成电路的速度是限制计算机速度的关键因素。为了提高速度,高速计算机多采用流水线技术。在传统的流水线计算机中时钟周期Tclk=T+tr,其中T为站间集成电路和连线所造成的链路最大延迟时间,tr为站寄存器所需的时间,一般T>>tr,故时钟周期受链路的绝对延时的限制。为了进一步提高计算机的速度计算机界不得不采用速度快但功耗大、集成度低的ECL电路,而半导体厂家则千方百计采用新工艺以降低电路的延迟时间。尽管这些努力曾有效地提高了计算机的速度,但在器件速度已近极限的今天,进一步的提高就很困难了。
1969年L.W.Cotton提出了最大速率计算机的设想,其基本原理是将流水线各站寄存器间的组合逻辑网络设计成均质的,即各位数据/控制信号在组合逻辑网络中的传送是齐头并进的,输出信号在时间上是一致的。这样在同一组合逻辑网络中可有多组数据/控制信号依次传送,以达到提高时钟频率的目的。但是到目前为止尚无据此原理设计的计算机和相应的大规模集成电路出现。1981年P.M.Kogge著文称Cotton的设想是很难实现的,参见文献1和2。
文献1L.W.Cotton,“Maximum-ratePipelineSystems”,AFIPSProc.SJCC,1969581-586文献2P.M.Kogge,“TheArchitec-tureofPipelinedComputers”,McGraw-Hill1981本发明目的是设计一种适用于最大速率计算机的关键集成电路,算术逻辑运算部件ALU(Arithmetic-LogicUnit)。该器件的设计不是着眼于降低逻辑链路的绝对延迟时间,而是追求尽可能小的输出信号相对延迟时间,即输出信号的一致性,其最大时间差等于、小于5ns,使用该器件的计算机可以在200MHZ或稍低的时钟频率下工作。
本发明ALU16是一个16位的算术/逻辑运算部件,它对两个16位的操作数A,B进行32种操作,产生16位的结果F。ALU16的总框图和各模块的逻辑图分别示于

图1至图6。
图1ALU16总框2输入模块(101)、(102)、(103)、(104)逻辑3组间先行进位链模块(200)逻辑4输出模块(301)、(302)、(303)、(304)逻辑5延时模块(401)、(402)、(403)逻辑6延时(兼均分负载)模块(404)、(405)逻辑7信号相互关系和时间均衡设计示意中输入、输出端命名和功能说明如下A0-A15 第1操作数(加于电路的实际信号为A0-A15)B0-B15 第2操作数(加于电路的实际信号为B0-B15)F0-F15结果数M算术/逻辑操作选择码S0-S3功能选择码Cin最低位的进位/借位输入端Cout向高位的进位/借位输出端在功能上Cin和Cout只与算术运算有关。它们的电位在加法和减法操作时的含义如表1所示。
表1
ALU16的32种算术/逻辑操作功能见附表。
逻辑说明1.ALU16总框图说明ALU16的逻辑电路由4块相同、4位一组的输入模块(101)、(102)、(103)、(104),组间先行进位链模块(200),4块相同、4位一组的输出模块(301)、(302)、(303)、(304),以及延时模块(401)、(402)、(403)、(404)、(405)组成。
输入模块一方面生成中间数据Pi和Gi,并通过延时模块(401)连至输出模块的输入端Pi和Gi,另一方面生成进位传播函数PGi和进位产生函数GGi,并接至组间先行进位链模块(200)的相应端。另外功能选择码SO-S3经过延时(兼均分负载)模块(404)分别接至(101)、(102)、(103)、(104)的S0-S3端。
组间先行进位链模块(200)接收输入模块产生的PGi和GGi和进位输入信号Cin,输出并行的向第4位、第8位、第12位和第16位的进位信号,分别记为C4、C8、C12和Cout。C4、C8和C12分别接至输出模块(302)、(303)和(304)的进位输入端,Cout用于多个ALU16相连时作为下一级的进位输入信号使用。要指出的是为了达到时间均衡,成组先行进位链模块的Cin是经过延时模块(402)后得到的,而输出模块(301)的输入Cin则是经过延时模块(402)和(403)得到的。
输出模块(301)、(302)、(303)、(304)产生结果数F0-F15。它的输入信号除Pi、Gi和进位信号(Cin,C4,C8,C12)外还有算术/逻辑选择信号M。后者经延时(兼均分负载)模块(405)产生的输出分别接至输出模块(301)、(302)、(303)、(304)的M端。
2.输入模块逻辑说明输入模块(101)、(102)、(103)、(104)由输入门函数(见图2虚线以下部分)和进位传播/产生函数(见图2虚线以上部分)两部分逻辑电路组成。输入门函数逻辑接收两个操作数A,B,并在功能选择码S0-S3的控制下生成不同操作功能所需要的中间函数Pi和Gi,且有Gi=Ai+Bi·S0+Bi·SiPi=Ai·Bi·S2+Ai·Bi·S3式中i为各位的序号(下同)。函数Pi和Gi一方面作为输出模块的输入信号(经过延迟和反相),另一方面又在输入模块内生成成组进位传播函数PGi和成组进位产生函数GGi。对于输入模块(101)有PG0=P3·P2·P1·P0GG0=G3+P3·G2+P3·P2·G1+P3·P2·P1·G0同样对于输入模块(102)、(103)、(104)分别有PG1=P7·P6·P5·P4GG1=G7+P7·G6+P7·P6·G5+P7·P6·P5·G4PG2=P11·P10·P9·P8GG2=G11+P11·G10+P11·P10·G9+P11·P10·P9·G8PG3=P15·P14·P13·P12GG3=G15+P15·G14+P15·P14·G13+P15·P14·P13·G123.组间先行进位键模块(200)逻辑说明组间先行进位链模块生成向第4、8、12和16位的进位信号,且有G4=GG0+PG0·CinC8=GG1+PG1·GG0+PG1·PG0·CinC12=GG2+PG2·GG1+PG2·PG1·GG0+PG2·PG1·PG0·CinC16=Cout=GG3+PG3·GG2+PG3·PG2·GG1+PG3·PG2·PG1·GG0+PG3·PG2·PG1·PG0·Cin4.输出模块(301)、(302)、(303)、(304)逻辑说明。
输出模块由组内先行进位逻辑和两级半加和逻辑组成。组内进位函数Zi满足Z0=M·CinZ1=M·(G0+P0·Cin)Z2=M·(G1+P1·G0+P1·P0·Cin)Z3=M·(G2+P2·G1+P2·P1·G0+P2·P1·P0·Cin)Z4=M·C4Z5=M·(G4+P4·C4)Z6=M·(G5+P5·G4+P5·P4·C4)Z7=M·(G6+P6·G5+P6·P5·G4+P6·P5·P4·C4)Z8=M·C8
Z9=M·(G8+P8·C8)Z10=M·(G9+P9·G8+P9·P8·C8)Z11=M·(G10+P10·G9+P10·P9·G8+P10·P9·P8.C8)Z12=M·C12Z13=M·(G12+P12·C12)Z14=M·(G13+P13·G12+P13·P12·C12)Z15=M·(G14+P14·G13+P14·P13·G12+P14·P13·P12·C12)第一级半加逻辑和第二级半加逻辑分别满足Hi=Pi·GiFi=Hi ZiFi(i=0-15)即结果数。
5.延时模块说明延时模块(401)、(402)、(403)(见图5)为时间补偿而设。(401)有反相作用,其链路延时为7t.(402)、(403)仅起时间补偿作用,其链路延时分别为6t和4t。
6.延时(兼均分负载)模块说明。
延时(兼均分负载)模块(404)、(405)(见图6)一方面起分散负载作用,另一方起时间补偿作用,其链路延时分别为2t和10t。
时间均衡设计上述所有模块和模块间的连接都精心地进行了时间均衡设计,设计规范如下.
1.信号负载个数限制在4个以内.
2.门的输入端个数限制在3个以内.
3.根据工艺所给出的时间参数选用适当的门电路,并根据逻辑链路的最大延时对各平行链路进行时间补偿。
图7是ALU16各信号间的相互关系和时间均衡设计的示意图。图中弧形框中的字母为信号名,带箭头的曲线表示两组信号的因果关系。曲线下边的数字表示信号所通过的链路所在的模块号,曲线上边标出了该链路所需的延迟时间。如果视横轴为时间轴,单位为t,则曲线在横轴上的投影为因果信号所需的延迟时间。图中实曲线表示三个基本模块,即输入模块、组间先行进位链模块和输出模块的时间关系,虚曲线则表示时间均衡设计后相应信号间的时间关系。
时间均衡设计分两步进行,一是模块的所有输入信号应尽可能在时间上取齐,例如输出模块的输入信号Pi、Gi、C4、C8、C12、Cin和M到输出信号Fi的延迟时间均为6t-7t,这是在模块设计时实现的;二是所有原始输入信号Ai、Bi、S0-S3、Cin和M应在时间上取齐,以使它们到输出信号Fi的延迟时间与最长链路(由Ai、Bi至Fi)的延迟时间16t-17t大致相等。这是在模块互连时实现的。
由图7可知,原始输入信号M仅是输出模块的输入信号,但为了与最长链路的延迟时间一致,增设了延时(兼均分负载)模块(405),其延时为10t。又如原始输入信号Cin作为输出模块的输入也应延迟10t,而作为组间先行进位链模块(200)的输入则要求延迟6t,所以原始输入信号Cin首先通过延时模块(402)延迟6t,形成组间先行进位链模块(200)的输入信号Cin,再通过延时模块(403)延迟4t以形成输出模块的输入信号Cin。再者在输入模块(101)、(102)、(103)、(104)中由S0-S3到Pi、Gi的链路延时为2t,较平行的最长链路(Ai,Si至Pi,Gi)延时少1t-2t,故另增设了延时(兼均分负载)模块(404),其延时为2t.又由Pi、Gi至输出模块的输入信号C4、C8、C12的链路延时为7t,故为了由Pi、Gi形成输出模块的另一组输入信号Pi、Gi不能只简单地使用反相器,而是增设了延时(兼反相)模块(401),其延时为7t精心的时间均衡设计使得在原始信号的任何组合下ALU16的输出信号F0-F15达到高度的一致,其最大时间差等于、小于5ns,使用该集成电路的计算机的时钟频率可达当前国际上高速计算机的数倍到十几倍.另外,用ALU16可很容易地构造32位、64位或位数更多的算术/逻辑运算部件.
实施例本发明的时间均衡设计原则,已通过模型机的实验得到了充分的验证.该模型机时钟周期为9.8ns而本发明ALU16则是一个集成化的16位的算术/逻辑运算部件.它对两个16位的操作数A,B进行32种操作,产生16位的结果F.通过计算机对大量数据的功能模拟充分验证了设计的正确性,该电路采用CMOS工艺,沟道长度1.5um,双层铝布线,外壳PLCC封装,68个输入输出引出端.由于精心的设计,集成化和微细化,使用该发明的计算机可有比模型机更高的速度.
附表
表中输出数据F=表达式(F即F0-15)A=A0-15B=B0-1权利要求
1.一种大规模集成电路的算术/逻辑运算部件(ALU16),主要由输入模件(101)、(102)、(103)、(104),组间先行进位链模块(200),输出模块(301)、(302)、(303)、(304)组成,其特征在于输入模块的门函数输出信号(P1-P15,GO-G15)通过32个相同的延时模块(401)再分别连至输出模块(301)、(302)、(303)、(304)的输入端(P0-P15,G0-G15);进位输入信号Cin通过延时模块(402)与组间先行进位链(200)相连,且Cin经过延时模块(402)和(403)再与输出模块(301)的输入端Cin相连;功能选择信号S0-S3通过延时(兼均分负载)模块(404)再与输入模块(101)、(102)、(103)、(104)的S0-S3相连;算术/逻辑选择信号M通过延时(兼均分负载)模块(405)再与输出模块(301)、(302)、(303)、(304)的M端相连;各模块之间的连接与模块内部逻辑均采用时间均衡设计,其设计规范是(1)信号负载个数限制在4个范围以内;(2)门输入端个数限制在3个以内;(3)根据工艺所给出的时间参数选用适当的门电路,并根据逻辑链路的最大延时,对各平行链路进行时间补偿。根据上述规范各基本门电路的延迟时间基本相等,即级延时为t。
2.根据权利要求1所述的部件,其特征在于输入模块(101)、(102)、(103)、(104)由实现输入门函数和进位函数的门电路组成,其输出信号Pi和Gi的链路延时为3t-4t,其输出信号PGi、GGi的链路延时为7t。
3.根据权利要求1所述的部件,其特征在于组间先行进位链模块(200)由实现进位功能的门电路组成,其链路延时为4t。
4.根据权利要求1所述的部件,其特征在于输出模块(301)、(302)、(303)、(304)由实现组内先行进位逻辑和两级半加和的门电路组成,其链路延时为6t-7t。
5.根据权利要求1所述的部件,其特征在于32个相同的延时模块(401)的链路延时为7t,延时模块(402)和(403)的链路延时分别为6t和4t。
6.根据权利要求1所述的部件,其特征在于延时(兼均分负载)模块(404)和(405)的链路延时分别为2t和10t。
全文摘要
大规模集成电路的算术/逻辑运算部件ALU16属于大规模集成电路和高速计算机设计领域。该部件由输入模块,组间先行进位链模块,输出模块和延迟模块组成。该电路采用了时间均衡设计技术,使输出信号最大时间差等于、小于5ns,适于构造最大速率流水线计算机,大大提高计算机的运算速度。
文档编号H03K19/173GK1033722SQ88108339
公开日1989年7月5日 申请日期1988年12月9日 优先权日1988年12月9日
发明者夏培肃, 王玉祥 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1