微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 一款32位嵌入式CPU的定点加法器设计

一款32位嵌入式CPU的定点加法器设计

时间:11-05 来源:互联网 点击:
2.2 传递逻辑电路实现

完成上述基本4位加法器的电路设计后,要构造一个完整的32位加法器还需借助于传递逻辑电路。传递逻辑电路可以对4位加法器模块的进位进行传递,也可以对由两个4位加法器模块组成的8位加法器模块的进位进行传递。对于8位加法器模块,由于低4位的进位可以表示为C4=C0Ggroup+Pgroup,则8位加法器模块的进位为:



由此可以设计出如图5和图6所示的两种进位传递逻辑电路。



2.3 溢出逻辑电路实现

设计中还采用了判断溢出的方法。当两个有符号数进行加减法运算时,若最高的数值位向符号位的进位(本设计中的C30)值与符号位产生的进位(本设计中的C31)输出值不同,则表明加减运算产生了溢出。

由上述可知,加法器时延的关键路径在进位链上,而进行溢出判断所需要的信息C30与C31都在这条路径上。于是采用类似于进位跳位加法器(Carry-Skip Adder)的办法,使得低位的进位快速跳位到高位,使C30与C31快速产生。具体实现如下:

①溢出的逻辑表达式推导

由于Overflow=(C30⊕C31)·Overflag(Overflag表示当前ALU加法器进行有符号运算),需要进行溢出判断(它是ALU控制模块在译码阶段产生的,在指令执行阶段起始段就输出到数据通道,所以它不在关键路径上)。



显然,分式(1)是和进位链无关的一部分,可以在每一个流水线的指令执行阶段起始段很快得到,而分式(2)则是和进位链有关的部分,其具体逻辑值将取决于进位C27的值。分式(1)中高位的Gi和Pi都可以在进位C27到来之前预先得到,只要C27一到就可以进行逻辑判断,得到相应的逻辑。



②溢出逻辑电路实现

根据式(3)的逻辑表达式,可设计出加法器溢出逻辑产生电路,如图7所示。



设计得到的32位加法器在SMIC流片后,经测试,运算速度在400MHz以上,满足设计要求,为后续浮点加法器的设计提供了很好的铺垫。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top