Gpdsp中基于三级超前进位加法器的64位定点alu电路的制作方法_2

文档序号:9579030阅读:来源:国知局
加而增长,总保持三 个逻辑级的深度,因此形成进位的延时与位数无关。但是直接使用(3)式形成的电路不规 贝1J,而且驱动信号过大。由于64位加法器级联数较大,底层模块进位延时太长,超前进位链 导致较大的面积,电路结构也会越来越复杂,因此把4个底层的四位超前进位加法器模块 与组进位为4的超前进位单元组成第二层的超前进位模块LAC,由LAC给下一组底层模块提 供进位输入,提高进位速度。
[0043] 如图4所示,为在具体应用实例中二级分组的16位超前进位加法器逻辑图。第 二层的LAC模块的输入是由第一组加法器产生的 gl,Pl,Q,C2, C3,第二组加法器产生的 g2, p2, C5, C6, C7,第三组加法器产生的g3, p3, C9, C1Q,Cn,第四组加法器产生的g4, p4, C13, C14, C15 组成,并通过LAC模块产生送往底层16位加法器的进位输入信号C4, Cs,C12, C16,表达式如 下:
[0044] Gi= g3+P3g2+P3P2gi+P3P2Pig〇^
[0045] Pi= P 3P2PiPo^
[0046] C4= G 式(5)
[0047] G2= g7+p7g6+p7p6g 5+p7p6p5g4,
[0048] P2= p 7p6p5p4,
[0049] C8= G^PA+PzPiCo;式(6)
[0050] G3= g ll+Pllgl〇+PllPl〇g9+PllPl〇P9g8,
[0051] p3= PiiPioPgPs^
[0052] QfGfPA+PfA+PAPiG。;式(7)
[0053] G4 - g ?5+Ρ?5§?4+Ρ?5Ρ?4§?3+Ρ?5Ρ?4Ρ?3§?2,
[0054] P4= p 15p14p13p12,
[0055] C16=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1G0 式(8)
[0056] 如图5所示,基于LAC模块构建64位加法器,采用4个二级LAC模块组成三级超 前进位模块LAC。
[0057] 本发明中的64位三级先行进位加法器,不仅能进行加减运算,还能完成与、或、 非、异或,MOVE,取最大值,取最小值,取绝对值,取相反数及比较类指令操作。
[0058] 通过研究加法器的进位产生信号g和进位传播信号p发现,对于ALU这种两输入 逻辑模块可以通过添加4位控制信号Valid_Logic[3:0]实现两输入逻辑的所有可能,从而 通过加法器实现逻辑指令和MOV指令。如在Valid_Logic[3:0] =4'b0011时,可以推出 Dst=A|B,因此得出表3。当进行减法运算时,需要对源操作数B取反。
[0059] 表3控制逻辑真值表
[0060]
[0061] 表3中Valid_Logic[3:0]决定了指令类型。4位控制信号可产生16种不同情况, 本加法器选择4种情况实现7条指令。其中加减法类与X0R类指令的Valid_Logic[3:0] 控制信号相同,因此加减法类指令还必须通过Valid_add控制信号控制进位C[1]<3MOVE指 令和OR指令Valid_Logic[3:0]控制信号相同,然而MOVE为单原操作数类型指令,通过控 制原操作数Bfl]为零实现。
[0062] 首先,加、减运算都能通过加法实现。如一般情况B-A=B+(~A)+l,但这种方法 虽然看起来直观但是实际电路却不是最优,需要补充一个加1器,对时序有一定的影响。因 此对减法操作做了进一步优化:B-A=~((~B) +A),用取反代替一个加1器不仅结构更规 整,使结构更加简洁,在最后减法结果选择的时候,只需要对结果取反。~A可以在译码站 源操作数处理时实现,减小执行站时序压力。如当进行减法运算时,Valid_add信号置高, 控制逻辑Valid_Logic[3:0] = 3'b0010,并控制C1,实现减法操作。
[0063] 其次,与或非和MOV指令在译码站先通过指令选择信号对源操作数进行处理,并 在进行加法操作时通过4位控制信号控制加法器的进位产生(G)和进位传播(P),从而实现 与或非及MOV指令。
[0064] 最后,嫩乂,1預』〇,1^,483,呢6指令都通过减法指令实现。如嫩乂与1預指令通 过判断减法结果的最高位,即通过判断Dst[31]是否为1选择最终结果。同理ABS与NEG 指令,通过Srcl-Ο判断结果的最高位是否位1,选择最终结果为Srcl或~Srcl,并通过结 果的最高位和次高位判断溢出值。
[0065] 由于饱和指令与加减法对控制寄存器的置位信息有关,表4是三种常用的补码饱 和判断方法以及优缺点总结:
[0066] 表4三种补码判断方法比较
[0067]
[0068] 本发明饱和操作采用最高位和次高位进位联合判断法。该方法的判断条件容易满 足而且不需要额外的逻辑,源的最高位可以直接得到,结果次高位的进位在加法计算中也 可以直接输出。SIGN表不符号位,若为1表不有符号数,若为0表不无符号数。0P为操作 数类型,1表示减法,0表示加法。C1为计算结果的进位位,MSB1为计算结果的最高位,主要 通过C1和MSB1这两位来判断32位操作数运算结果是否溢出。对于有符号数若[C1:MSB1] = 2'b01,发生上溢,结果取有符号数上限值。若[C1:MSB1] =2'bl0发生下溢,结果取有 符号数下限值。当执行的是无符号加法(Cin= 0,SIGN= 0)时,根据符号扩展算法应该在 高位扩展符号位〇,如果符号位结果为1,则结果上溢取无符号最大值OxfTfT…????。当执 行的是无符号减法(Cin= 1,SIGN= 0)时,被减数符号扩展后再取反,就变成"1"了,如果 最高有效位没有进位,此时符号位结果为1,这样结果就是负数,发生下溢取无符号最小值 0x000…0000,具体判断方法如表5。
[0069] 表5溢出判断方法
[0070]
[0071] 以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例, 凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的 普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护 范围。
【主权项】
1. 一种GPDSP中基于三级超前进位加法器的64位定点ALU电路,其特征在于,包括ALU 译码站、站间寄存器、通用寄存器RF和执行站,所述ALU译码站接收派发模块的指令信号, 经过译码逻辑向通用寄存器RF发出读信号和读地址,读取原操作数;所述执行站接收到原 操作数经过预处理逻辑,发送到IALU的运算核心与译码生成的指令选择信号、控制信号结 合进行计算,计算完成后向通用寄存器RF或其他寄存器发出写信号、写地址和写数据;所 述执行站把除饱和指令和LZD指令外的所有指令通过由64位三级先行进位加法器实现,并 通过控制信号进行区分控制。2. 根据权利要求1所述的GPDSP中基于三级超前进位加法器的64位定点ALU电路,其 特征在于,所述除饱和指令和LZD指令外的所有指令包括加减法指令、比较类指令、取绝对 值/相反数指令、取最大值/最小值指令、数据搬移MOV类指令、逻辑指令。3. 根据权利要求1所述的GPDSP中基于三级超前进位加法器的64位定点ALU电路,其 特征在于,所述通用寄存器RF的读写都是时钟上升沿有效。4. 根据权利要求1或2或3所述的GPDSP中基于三级超前进位加法器的64位定点ALU 电路,其特征在于,所述64位三级先行进位加法器是由2个串行的32位加法器组成,所述 32位加法器是使用三级超前进位链的2个16位加法器串行组成,所述16位加法器是使用 二级先行进位链的4个4位加法器串行组成,各组4位加法器采用完全相同的结构。
【专利摘要】一种GPDSP中基于三级超前进位加法器的64位定点ALU电路,其包括ALU译码站、站间寄存器、通用寄存器RF和执行站,所述ALU译码站接收派发模块的指令信号,经过译码逻辑向通用寄存器RF发出读信号和读地址,读取原操作数;所述执行站接收到原操作数经过预处理逻辑,发送到IALU的运算核心与译码生成的指令选择信号、控制信号结合进行计算,计算完成后向通用寄存器RF或其他寄存器发出写信号、写地址和写数据;所述执行站把除饱和指令和LZD指令外的所有指令通过由64位三级先行进位加法器实现,并通过控制信号进行区分控制。本发明具有能降低面积开销、减少选择器、降低时序等优点。
【IPC分类】G06F7/57, G06F9/30
【公开号】CN105335128
【申请号】CN201510727804
【发明人】彭元喜, 雷元武, 汪峰, 万江华, 刘宗林, 彭浩, 徐恩, 李振涛, 扈啸, 陈跃跃, 孙海燕, 马胜, 陈胜刚, 罗恒, 吴家铸
【申请人】中国人民解放军国防科学技术大学
【公开日】2016年2月17日
【申请日】2015年10月29日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1