电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 嵌入式系统/ARM技术 > 详细信息
嵌入式系统/ARM技术:一款32位嵌入式CPU的定点加法器设
来源:   时间: 2007-6-2 12:33:49    
从CPU的指令执行频率上看,算术逻辑单元、程序计数器、协处理器是CPU中使用频率最多的模块,而加法器正是这些模块的核心部件,几乎所有的关键路径都与之有关,因而设计一种通用于这些模块的加法器是整个CPU设计中关键的一步。为此,笔者根据32位CPU的400MHz主频的要求,结合CPU流水线结构,借鉴各种算法成熟的加法器,提出一种电路设计简单、速度快、功耗低、版图面积小的32位改进定点加法器的设计方案。

       1 设计思想

      
对于高性能CPU中使用的加法器,速度显然是第一位的,所以考虑采用并行计算的方法,并且在电路的设计上采用少量的器件来获得速度上的巨大提升。从面积有度出发,链式进位加法器(Ripple-Carry Adder)的器件最少,面积最小,版图工作量也最小,可是由于加法器的高位进位要等待低位的运算结束后才能得到,所以没有办法在速度上达到要求。鉴于此,采用类似于链式加法器的

 

结构。    省先从进位选择加法器(Carry-Select Adder)得到提示,将32位加法器一分为二,分为低16位加法器和高16位加法器,再将低16位加法器的进位输出作为选择信号,用于选择高16位加法器的和及第27位的进位输出(这个进位输出要在溢出逻辑判断中使用,而普通的加法器则不用产生进位)。通过这样的处理,将一个32位的加法器简化就成了两上16位的加法器,如图1所示。


 

进位选择加法器

       另外,从超前进位加法器(Carry-Look-Ahead Adder)获得提示,在超前进位加法器中引入中间变量G和P用于加速进位链的速度。而G和P在逻辑表达式上与前一级的进位无关,只与每一级的操作数输入有关,而且它们又是构成本级进位的必要部分。在微处理器的数据通道上,数据传输是并行进行的,即两个32位操作数几乎同一时间到达时加法器。所以,G和P不论是加法器的最低位还是加法器的最高位,几乎都可以在相同的时间内得到,因而进位链上就可以借鉴这个特点加速进位的传递。以一个四位加法器为例,有如下的逻辑推导过程:

       C4=C3P4+G4=(C2P3+G3)·P4=G4=C2P3P4+G3P4+G4=(C1P2+G2) ·P3·P4+G3P4+G4=C1P2P3P4+G2P3P4+G3P4=(C0P1+G1) ·(P2P3P4)+(G2P3P4+G3P4+G4)=C0·(P1P2P3P4)+(G1P2P3P4+G2P3P4+G3P4+G4)

       令上式中P1P2P3P4为Pgroup,G1P2P3P4+G2P3P4+G3P4+G4为Ggroup,如果将32位加法器划分为若干的小块,则每一个小块都可以有自己相对应的Ggroup和Pgroup。由此可知对于整个加法器的时延来说,关键路径的时延总值可以由三部分组成:①产生Ggroup和Pgroup的时延;②进位传递逻辑上的器件时延;③加法器进位链上的导线时延。对于这三类时延,时延①与时延(②+③)存在重叠的部分,于是使这两类时延合理衔接,可以使得进位链上的逻辑级数最小,从而使得电路上的传输时延达到最小上。

       2 具体实现

       2.1 4位加法器模块的实现

       在具体的电路设计中,先将32位数据通道划分成了高低两部分,然后以4位为单位划分成更小的模块。这些模块在结构上是基本一致的,但在功能上要完成本模块四组操作数(A[k:k+3]和B[k:k+3])与进位Ck的加法运算,并要产生模块的中间变量Ggroup和Pgroup的运算。

       对于单一的每一位,定义它的G和P分别为:Gi=AiBi,Pi=Ai+Bi,加法器的和SUMi=Ai+Bi+Ci-1=Pi+Ci-1,考虑到器件的实际驱动能力,结合加法器的另一个功能——减法运算,设计出如图2所示的带减法功能的一位加法器电路。

带减法功能的一位加法器电路

点击看原图 设计的4位加法器进位链如图3所示,除C0外,输入(Pi和Gi)都是由图2的一位加法器产生的,所有4位进位链Ci都按超前进位加法器连接方式直接接入相应位置。由此可以看出,进位信号到达各位的逻辑级数是相当的,只要在进位信号到达之间使所有的中间信号Gi和Pi都能及时产生,就能及时得到每一位的和(SUM)。  

4位加法器进位链

点击看原图


       图4是产生4位加法器块进位及块的Ggroup和Pgroup信号的电路。借鉴于超前进位加法器的传递逻辑电路,可知并不是所有的4位加法器都需要向它的下一个模块传送进位信号,而只要产生传递进位所需的Ggroup和Pgroup信号即可。而有些位置,由于进位链设计的实际需要,要需要利用4位加法器模块产生的进位信号,而不必采用传递逻辑产生的进位信号,而不必采用传递逻辑产生的进位信号,具体的情况还是有区别的。为了充分利用图3中产生的相关信号的复位,在进位信号C4的产生电路部分,进位链方向上的逻辑级数只有两组,可以说还是比较简单了。可是,综合前面所谈到的4位加法器的电路,可以发现有一些中间信号(Pi和Gi)的负载是不均衡的,如P2的负载比P3或P4要重

 

很多。所以在设计的时候,如果考虑到尽量降低版图的复杂程度,就要在面积上做出适当的牺牲,尽量以最大负载进行考虑,使得器件的设计符合时延上的要求;同时还要充分考虑到在深亚微米工艺条件下导线的时延问题,即设计的电路不但要考虑到所承受的器件的负载,而且还要结合版图设计中实现的导线负载,定出上述电路的合理尺寸。

 


 

4位加法器块进位及块的Ggroup和Pgroup信号的电路

点击看原图


       2.2 传递逻辑电路实现

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

       C8=C4Ggroup'+Pgroup'=Pgroup'(C0Ggroup+Pgroup)+Ggroup

       =Pgroup'PgroupC0+Pgroup'Ggroup+Ggroup'

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

点击看原图


       2.3 溢出逻辑电路实现

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

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

       ①溢出的逻辑表达式推导

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

       对于C31与C30,有C31=C30P31+G31,所以

       C30+C31=C30C31+C30C31

       =(C27G28G29G30G31+C27P28P29P30P31G31) (1)

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

       所以令P1=G28G29G30G31+C27P28P29P30P31G31

       P2=P28P29P30P31G31

       Gtotal="式"(2)

       则 Overflow=(C30+C31)·O
 

verflag=(C27P1+C27P2+Gtotal) ·Overflag (3)   

       ②溢出逻辑电路实现

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

 

 


 

加法器溢出逻辑产生电路


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

+P29G29G30G31+P30G30G31+G29P30P31G31+G30P31G31 (2)

相关信息
发表评论
打印本页 关闭本页
工业仪表用声光报警器 (二)
    本例介绍的工业仪表用声光报警器,具有电路简单、容易制作、灵敏度高、无需调试等特点,可与各种有电接点的工业测量仪表配合使用。  电路工作原理  该工业仪表用声光报警器电路由检测控制电路、双稳态触发器、LED闪光电路、声音报警电路和+12V稳压电路组成,如图6-147所示。   检测控制电路由工业仪表的控制触头 (受控电接点)Kx、电阻器Rl、R2、稳压二极管VS3和电容器CI组成。...
>>详细内容
车载操作系统的调度算法分析与改进
    摘要 当前没有专门为车栽设备设计的实时操作系统,一般都是对通用嵌入式实时操作系统进行裁剪来完成的,需要很大的工作量。本文介绍一种在嵌入式实时系统中调度所面临的限制以及克服这些限制的调度技术;根据uC/OS-II实时嵌入式系统内核的特殊性,在原有优先级调度算法的基础和某车载设备设计的基础上,提出一种车栽实时操作系统内核的改进方法,其特点是实时性强、稳定性高、面向车...
>>详细内容
工业仪表用声光报警器 (一)
    本例介绍的工业仪表用声光报警器,可与各种使用电接点控制的工业自动化测量仪表配合组成多路报警器,在测量仪表的电接点接通时,声光报警器发出声光报警信号。  电路工作原理  该工业仪表用声光报警器电路由+l2V稳压电路、开关控制电路、振荡器、双稳态触发器和声光报警电路组成,如图6-146所示。   +l2V稳压电路由电阻器R2、R3、滤波电容器Cl、C5、C6和稳压二极管VS组成。...
>>详细内容
μC/OS-II在LPC213X上的多种移植方案
    μC/OS-II是可移植、适用于对安全性要求苛刻的剥夺型实时多任务嵌入式系统,简单易学,在工程应用和嵌入式系统教学中很受欢迎。LPC213X是Philips公司推出的基于ARM7TDMI-S核的32位RISC微处理器,也适合于ARM学习开发平台和工程应用。 1 与μC/OS-II移植工作相关的主要特性  ARM体系结构分为7种运行模式,ARM和Thumb两种工作状态。LPC213X的编程模型就是标准的ARM7体系结构;同时...
>>详细内容
基于DSP的磁存储设备抗冲击技术控制系统的设计与实现
  1 引 言   对数据存储业来说,磁盘驱动器生产商通过增加磁道密度(以每英寸的磁道数为单位)和磁盘转速(以每分钟转数为单位)来扩大计算机硬盘驱动器的容量和改善其性能。随着磁密度的增加,两相邻磁道间的距离变小了。因此,所允许的读/写头和磁道的偏离误差,即磁盘驱动器业内所说的误定位,也相应的降低了,这样硬盘很容易受到伤害。他的工作原理决定其必须使用抗恶劣环境加固技术,...
>>详细内容
异种单片机共享片外存储器及其与微机通信的方法
    摘 要: 介绍了通用单片机(MCU)AT89C51与信号处理单片机(DSP)TMS320C32通过共享片外随机存储器实现板间通信的方法,并给出了总线隔离硬件电路与软件控制流程。文中还简要分析了AT89C51与微机进行串行通信的软硬件设计,通过扩展AT89C51间接实现了TMS320C32与通用单片机或微机之间的通信。  关键词: 单片机 DSP 数字信号处理器 共享存储器 串口通信  TMS320系列数字信号处理单片...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com