范文一:计算机组成原理第八讲(除法-补码不恢复余数法)(科大罗克露)
3.补码不恢复余数法(加减交替法) 问题:如何判断是否够减法?如何上商?如何确定商的符号?
1.判断够减:(1)同号相除。用绝对值相减(用1表示够减,用0表示不够减)
够减: 余数r与被除数X,除数Y同号。
不够减: 余数r与被除数X,除数Y异号。
(2)异号相除。用绝对值相减(用1表示够减,用0表示不够减)
够减:余数 r与被除数X同号,与除数Y异号。
不够减:余数r与被除数X异号,与除数Y同号
2.判断规则:
X补/Y补-------->1.同号:作X补 - Y补----->够减:余补r与除数补Y同号。
不够减:余补r与除数补Y异号。
X补/Y补-------->2.异号:作X补?+ Y补----->够减:余补r与除数补Y异号。
不够减:余补r与除数补Y同号。
3.求商值:
X补/Y补-------->1.同号:商为正;---->够减商为1 (余数r与除数R同号)
不够减商为0(余数r与除数R异号)
X补/Y补-------->2.异号:商为负;----->够减商为0 (余数r与除数R异号)
不够减商为1(余数r与除数R同号)
上商规则:商Qi= !(Sr ^ Sy)?? 余数与除数同号商为1,异号商为0。
4.算法表达式:(ri + 1)补=2ri补 + (1-2Qi补)Y补
ri 补与Y补同号,则Qi补为1,第i + 1步作2ri补 - Y补;
ri 补与Y补异号,则Qi补为0,第i + 1步作2ri补 +Y补;
5.求商符:
令X补 = r0补???? r0补?与 Y补 ------->同号? 商符号Q0补 = 1? 与实际商符相反。
异号? 商符号Q0补 = 0
6.商的校正:
n-1
X补/Y补? = (-1 + 2-n + ∑ 2-iQi补) +? 2-nr补/Y补? //加号前面是商,后面是余数。
i=0
(1)作补码运算求n-1位商时(是假商)
(2)第n位商(末位商)恒置1.
(3)商符号变反。
(4)余数求到rn步。
7.实例
X=0.10110?????? Y=-0.11111???? 求X/Y,给出商Q和余数Q。
设置初值:? A=X补=00.10110????? B=Y补=11.00001??? -B=00.11111? C=Q补=0.00000
步数 判断条件????? 操作???????? ?A?=00.10110 r0??????? C=0.00000(Cn-1=0,Q0=0)
r,Y的符号??? 求商符号????? 00.10110??r0??????????????0.00000
1???????异号?????????? <--------????????>--------????????>
+B???????????????+? 11.00001??????????????? 0.0000?????Q1
异号????????????????????????????? ? 00.01101?? r1
2????????????????????????<----------???????? 00.11010??="">----------????????>
+B????????????????+? 11.00001
同号????????????????????????????????11.11011????r2??????????? 0.0001?????Q2
3??????????????????????? <-----------????????11.10110??>-----------????????11.10110??>
-B??????????????????+00.11111
异号?????????????????????????????????00.10101?? ?r3????????????? 0.0010?????Q3
4?????????????????????? <-----------????????? 01.01010??="">-----------?????????>
+B?????????????? +? 11.00001
异号????????????????????????????????? 00.01011???r4??????????????? 0.0100????Q4
5??????????????????????????<------------??????>------------??????>
+B????????????????+? 11.00001
11.10111????r5
假商=0.0100 进行假商较正
真商=0.0100 + 1.00001 =1.01001
Q= -0.10111????? R= -0.1001 x 2-5
X/Y= -0.10111 + -0.01001 x 2-5/-0.11111
范文二:不恢复余数阵列除法器的FPGA实现
吉雪芸,朱有产
(华北电力大学 信息与网络管理中心, 河北 保定 07100)3
摘 要:在研究不恢复余数法的算法基础上,阐述以可控加/减法器(CAS)为基本组成单元的阵
列除法器的构造原理,并给出一个完整的定点小数补码除法逻辑图,最后提出一种基于现场可编程
门阵列(Field-Programmable Gate Array,简称FPGA)的除法器的硬件实现方法.
关键词:CAS;不恢复余数法;并行除法;阵列除法器;FPGA
中图分类号:TP391.41文献标识码:A
现代计算机的硬件除法器已经淘汰了早期的串行除法器,而采用了同阵列乘法器相似的并行运算部[1] 件 . 阵列除法器的形式有不恢复余数阵列除法器、补码阵列除法器等. 其中不恢复余数阵列除法器的设计 方案建立在串行的不恢复余数法(又称加减交替法)的基础上,其逻辑组成原理则以可控加/减法单元为基础.
图1 是4 +1 位阵列除
法器逻辑结构图,图2 是 0 0 y x y x y x y x 1 1 2 2 3 3 4 5
CAS的符号化示意图.1 CAS CAS CAS CAS CAS 0 FPGA 作为一种半定 0
制电路,既解决了定制电
CAS CAS CAS CAS CAS 路的不足,又克服了原有 0 可编程器件门电路数有限
[2] 的缺点 . 利用FPGA的除 CAS CAS CAS CAS CAS 0 法器具有可移植性强、系
统成本低以及集成度高的 CAS CAS CAS CAS CAS 0 优点,在电路设计产品设 、
计以及系统级应用中有良 CAS CAS CAS CAS CAS 好的前景. 本文提出了一
种阵列除法器的FPGA 的 图1 4+1位阵列除法器逻辑结构 实现方法.
X iY i1 单符号位的n+1位可控补码加法/减法器
CAS的逻辑结构图如图3所示,可看出CAS是在一位全加器(FA)的 P P 基础上构造而来. CAS 在图3中,输入端Y须经过输入端P控制的的异或门电路,才能和输 iCC ii+1 入端X作为FA的2个加数,连同输入端C(前一位进位)一起成为FA的3个 ii 输入,FA的2个输出,本位和S以及本位进位C直接作为CAS的输出,除 ii+1Y
的名称也由此而来,当输入线P=0时,Y经过异或门其值不变,CAS即为 iP P FA;当输入线P=1时,Y经过异或门其值取反,CAS即为对XC以及取反 、iii
后的Y进行全加. 设2个加数X和Y均为大于0的定点小数,[X]和[Y]均为 i补补
n+1位时,可用n+1个CAS以行波进位的形式组成图4所示的结构,可看出
CC i+1i输入端P起到决定进行补码加法还是减法的作用. 当P=0时,对0. xx…xFA 12n 和0. yy…y进行补码加法;当P=1时,对0. xx…x和0. yy…y进行补码 12n12n12n
减法.也就是说,图4可作为1个单符号位的n+1位补码加法/减法器,若考
Y 虑n+1个CAS的所有输出端,则其符号化示意图如图5所示. i S i
CAS的逻辑结构 2 不恢复余数算法 图3
0 xxx 以定点小数为例,已知[X]和[Y],为保 12n补补0 y y y 1 2 n 证商也是定点小数,故规定|Y|>|X|. 为了分
P 析算法,因此只考虑X和Y均为正数的情况, CAS CAS CAS CAS
0 则有[X]=0. xx…x,[Y]=0. yy…y,[-Y]=补12n补12n补
' ' ' 1. yy…y,设部分余数为R,商为Q,则执行下 1 2 n 符号位f f f 1 2 n 列操作: 图4 单符号位的n+1位补码加/减法器
R=0.xx…x(求部分余数R,先做减法), 012n 1
R= 0 . xx… x 0 . yy… y= 0 . xx… x+ -1 12 n 12 n 12 n 0 xxx 12nyyy 12n0 ' ' ' 1.yy…y=1.rr…r符号位为1,则q=0(R的 11121n011 2 nP 符号位为1,说明不够减,下一步求R时要做 n+1位串行补码加法/减法器 20 加法),
R= 2R(部分余数左移)+ 0 . yy… y= 2 1 12 n 0 y y y 1 2 n 符号位fff 12n r.r…r0+0.yy…y=r.rr…r,此时判断 11121n12n1121222n图5 单符号位串行补码加/减法器 部分余数R的符号位r,若r=0,说明R>0,够 211112
' ' ' 减,则q=1,下一步部分余数要做减法,即加上1.yy…y;若r=1,说明R<0,不够减,则q=0,下一步部分余数 111211="" 2="">0,不够减,则q=0,下一步部分余数>
要做加法,即加上0. yy…y. 12n
' ' ' 下面求部分余数R,左移上一部分余数R后是加0.yy…y还是加1.yy…y,取决于q. ii-112ni-1 1 2 n
R=2R?0.yy…y=r.rr…r. ii-112ni-11i1i2in
通过上述分析,不恢复余数算法可用下式表示:
0 xxxx… x 123 4n
' '' ''+ 1 yyyy… y 使用补码做减法 123 4n
不够减,使用补码做加法q=0? RRRR… R0 1 011 12 13 14 1N yy…yyy+ 0 1 2 3 n1 n- q=0?1 1 若R为1,说明不够减,使用 RRR… RR0R 202021 22 23 2n1 2n -q =1?0 1 补码减法做加法;若R为0, 20- 0yy…yyy 1 2 n2 n1 n--+ 说明够减,使用补码做减法.
3.1 阵列除法器 0 0 y x y x y x 1 1 2 2 n n
根据不恢复余数除法的 1 n+1位串行补码加法/减法器 0 算法,在空间上将前面第2点
中得出的单符号位串行补码
n+1位串行补码加法/减法器 0 q 1加减法器按行进行阵列排布,
再将上一行的高位进位输出 n+1位串行补码加法/减法器 q 2与下一行的P输入端捏合在一
起,即可得出不恢复余数阵列
0 除法器.
图6是由n+1位串行补码 n+1位串行补码加法/减法器 q 加/减 法 器 组成的阵列除法 n
器,需要说明的是在这种除法
图6 n+1位不恢复余数阵列除法器 器输入端的前两位必须置入
0,作为正数定点小数的符号
位;第一行的P输入端必须置1,表示减法操作.
3.2 商的符号位 上述算法和阵列图只考虑了正数补码进行除法的情况,而这种并行除法器只是在进行不
恢复余数加减
法的时候用到补码,从本质上来说还是真值进行除法运算,因此,如果不限制2个定点小数的符号,则除数和 被除数的数值位需要在进入除法器之前先进入求补电路,根据它们的符号来判断是否进行算前求补;同时,
除数和被除数除法运算的结果经由除数
和被除数的符号位异或进行判断,若异除数[Y]的数值位yy…y 被除数[X]的数值位xx…x 补12n补12n或为1,则得出商的符号位为1,若异或为 除数[Y]的 除数[X]的 补补 0,则得出商的符号位为0.符号位x 符号位y 0n位算前求补器 n位算前求补器 0 3.3 商的数值位
同判断商的符号位类似的,从阵列
xy 0 0除法器中得出的结果为真值,要得出商 n+1位 的补码,必须经过求补电路,此时需要对 不恢复余数阵列除法器除数和被除数的两符号位异或结果进行
n位商的数值位 判断,若为1,则数值位进行求补,若为0,
则此时的数值位即为补码,不需求补. n位算后求补器
图7是一个完整的n+1位带求补电路
的阵列除法器逻辑图. 使用这种并行除 商的补码的商的补码的数值位q q …q 1 2 n 法器可以完成带符号位的定点小数补码 符号位q0除法运算,得到和除数、被除数相同位数 图7 完整的n+1位带求补电路的阵列除法器 的商的补码.
余数商除法 除法模式 存储模块 基于CAS的阵列除法器的FPGA 4 实现位移
4.1 模块结构图 存储模块 根据阵列除法器的原理,得出定点
Dividend(X) Divisor(Y) 示,其中DAT_COM模块完成按照输入决定求补功能O;R模块为与 门 ;DIVISION_MAIN完成真值除法 功 能 ;整个器件的输入为
[3] DATA_IN,即除数Divisor和被除数Dividend ,也就是原理图中的y DAT_COM DAT_COM
MX 和x,输出为DATA_OUT,即商Quotient,也就是原理图中的Q. MY SYSX 该阵列除法器以除数和被除数的位数n为参数,确定了n的值
之后,使用VHDL语言编写,具有可移植性强、可自定义参数等特 OR DIVISION_MAIN 点. 其适用于一般的定点小数除法运算以及浮点数尾数部分的除 法运算. DAT_COM 每个CAS单元的延迟时间为3T单位,n+1位的阵列除法器的单 22元数目为(n+1),故延迟时间为3(n+1).
DATA_OUT
Quotient(Q) 除法器是二进制数值运算中的重要的四则运算之一,本文的
不恢复余数阵列除法器适用于定点小数的补码运算,得出与除数 图9 采用FPGA设计的模块 位数相同的商的补码. 在分析不恢复余数阵列除法器的原理的基础
上,本文给出一个基于FPGA的定点小数阵列除法器的模块设计图,
该阵列除法器可应用于一般n位定点小数(n作为参数)以及格式不固定的浮点数除法运算中的尾数部分相
[4] 除,具有移植性强、参数可变等特点.
参考文献:
,1,白中英. 计算机组成原理,M,. 北京:科学出版社,2008.
,2,甘子平,韩应征. 浮点数除法器的FPGA实现,J,.太原理工大学学报,2008(5):209-211.
,3,WAYNEL. Pipelining and transposing heterogeneous arrdayes igns,J,. Journal ofVLSI SignalP rocessing,1993(1):7-20. ,4,张欢欢,宋国新.不恢复余数阵列除法器的形式化描述和验证方法J,,.计算机科学,200(77):283-285,291. FPGA Implementation About the Array Divider on the Addition and
Subtraction Alternating Method
Ji Xueyun, Zhu Youchan
(Center of Information and Network Managemen,Northt China Electric Power University, Baoding 071003,a) Chin
Abstract: The paper basedon the algorithm about addition and subtraction alternating method,in describedorderto CAS as the basicunit of the structure arraydivider principle, and gavefull a complementof fixed-pointdecima l division logic diagram.Finally, the paper presented a FPGA-based hardware implementation of the divider.
Key wods: CAS; addition and subtraction alternating method; paralle division; array divider;FPGA rl
file:///D|/我的资料/Desktop/新建文本文
档.txt
Appliance Error (configuration_error)
Your request could not be processed because of a configuration error: "Could not connect to LDAP server."
For assistance, contact your network support team.
file:///D|/我的资料/Desktop/新建文本文档.txt2012-07-12
20:42:52
范文三:不恢复余数阵列除法器的FPGA实现
2010年5月第23卷第3期
保定学院学报
JOURNAL
OFBAODINGUNlVERSITY
May,2010VoL23No.3
文章编号:1674.2494(2010103.0056.04
不恢复余数阵列除法器的FPGA实现
吉雪芸,朱有产
(华北电力大学信息与网络管理中心,河北保定071003)
摘要:在研究不恢复余数法的算法基础上,阐述以可控加/减法器(CAS)为基本组成单元的阵列除法器的构造原理,并给出一个完整的定点小数补码除法逻辑图,最后提出一种基于现场可编程门阵列(Field.ProgrammableGateArray,简称FPGA)的除法器的硬件实现方法.
关键词:CAS;不恢复余数法;并行除法;阵列除法器;FPGA
文献标识码:A中图分类号:11P391.4l
现代计算机的硬件除法器已经淘汰了早期的串行除法器,而采用了同阵列乘法器相似的并行运算部件lI】.阵列除法器的形式有不恢复余数阵列除法器、补码阵列除法器等.其中不恢复余数阵列除法器的设计
方案建立在串行的不恢复余数法(又称加减交替法)的基础上,其逻辑组成原理则以可控加戚法单元为基础.
图l是4+1位阵列除法器逻辑结构图,图2是CAS的符号化示意图.
FPGA作为一种半定制电路,既解决了定制电路的不足,又克服了原有
。
可编程器件门电路数有限
的缺点圆.利用FPGA的除法器具有可移植性强、系统成本低以及集成度高的优点,在电路设计、产品设
计以及系统级应用中有良
好的前景.本文提出了一种阵列除法器的FPGA的实现方法.
圈1“l位阵列除法器逻辑结构
1单符号位的n+l位可控补码加法/减法器
CAS的逻辑结构图如图3所示,可看出CAS是在一位全加器(FA)的基础上构造而来.
在图3中,输入端Y;须经过输入端P控制的的异或门电路,才能和输
PC“I
入端X舴为FA的2个加数,连同输入端Ci(前一位进位)一起成为FA的3个
输入.FA的2个输出,本位和Si以及本位进位C;“直接作为CAS的输出,除
了以上6个输入输出外。输入端P以及输人端Y同时也作为输出线输出,
同行波进位加法器相似,为其组成的逻辑阵列作准备.这样,一个除法流
收稿日期:2010-03-07
作者简介:吉雪芸(1978一),女,河北保定人,讲师,硕士研究生.
图2
CAS的符号
吉雪芸,朱有产:不恢复余数阵列除法器的FPGA实现57
水逻辑阵列的组成单元共8个输入输出.
CAS同FA的不同之处在于连接输入端Y;和输入端P的异或门,而CAS
i、
的名称也由此而来,当输入线P=0时,Y经过异或门其值不变,CASIiP为FA;当输入线P=I时,Y经过异或门其值取反,CASflP为对Xi、Ci以及取反
后的Yi进行全加.设2个加数x和Y均为大于0的定点小数,【)(k和[Y】补均为n+l位时,可用n+1个CAS以行波进位的形式组成图4所示的结构,可看出输入端P起到决定进行补码加法还是减法的作用.当P=0时,对0.XIX2"""】【fI和0.yly2…Y。进行补码加法;当P=I时,对0.XIX2"""X。和0.yff2""y。进行补码
弋=…~
l
P
l
牛
队Si
l
\
…........J.................∑
Y
减法.也就是说,图4可作为1个单符号位的n+l位补码加法/减法器,若考
虑n+1个CAS的所有输出端,则其符号化示意图如图5所示.
图3
CAS的逻辑结构
2不恢复余数算法
以定点小数为例,已知【xk和【Y】补,为保证商也是定点小数,故规定IYI>IXI.为了分析算法,因此只考虑x和Y均为正数的情况,则有[x】补=0.XIX2…)【lI,[Y],s----O.Yly2…yn,卜Y】补:0
1.Y,Y2""Y。,设部分余数为R,商为Q,则执行下
列操作:
符号位flf2‘
围4单符号位的n+l位补码加,减法器
Ro=O.x。X2…xn(求部分余数R,,先做减法),
Rl=0.XIX2…】【Il一0.yly2…y。=0.XIX2…‰+
1.yI
Y2…Y。=l山lrl2"?"r1.符号位为1,则q0=o(Rl的
符号位为l,说明不够减,下一步求R:时要做加法),
R2=2RI(部分余数左移)+0.YlY2"""Y。=
r11.r12…rIn0+0.Y1y2…yn2r11.1"2Ir22…r2n,此时判断部分余数R:的符号位rn,若r。,=0,说明R2>0,够
圈5单符号位串行补码加,减法器
减,则ql^l,下一步部分余数要做减法,即加上1.Y,y2…y。;若“=l,说It)]R2<0,不够减,则q---0,下一步部分余数
要做加法,即加_E0.yly2…yn.
下面求部分余数Ri,左移上一部分余数RH后是加0.Yty:…y胚是加1.Y。Y2…Y。,取决于q小
Ri=2Ri—I±0.Yly2…yn=ri-11.rilri2…k.
通过上述分析,不恢复余数算法可用下式表示:
0+1
xlX2
x3】【4…xn
Y3Y4…Y。
YlY2使用补码做减法
q0:i!D卜囤Rll
b+0
R12R13R14…RlN0不够减,使用补码做加法yl
Y2
y3…y,I
Y。
R2lR兹R23…R扯lR知0若R∞为1,说明不够减,使用0
Yl
y2…yn-2
y”1Yn
补码减法做加法;若R。为0,ignY]够ig,使用补码做减法.
58保定学院学报2010年第3期
3不恢复余数的阵列除法器
3.1阵列除法器
根据不恢复余数除法的
算法,在空间上将前面第2点中得出的单符号位串行补码加减法器按行进行阵列排布,再将上一行的高位进位输出与下一行的P输入端捏合在一起,即可得出不恢复余数阵列除法器.
图6是由n+l位串行补码加,减法器组成的阵列除法器,需要说明的是在这种除法器输入端的前两位必须置入0,作为正数定点小数的符号
。
圈6n+l位不恢复余数阵列除法器
位;第一行的P输入端必须置1,表示减法操作.3.2商的符号位
上述算法和阵列图只考虑了正数补码进行除法的情况,而这种并行除法器只是在进行不恢复余数加减
法的时候用至lJSb码,从本质上来说还是真值进行除法运算,因此,如果不限制2个定点小数的符号,则除数和
被除数的数值位需要在进人除法器之前先进人求补电路,根据它们的符号来判断是否进行算前求补;同时,
除数和被除数除法运算的结果经由除数和被除数的符号位异或进行判断,若异
除数rYl朴的数值位Y。y2…yn
被除数【xk的数值位x,x20..k
或为1,则得出商的符号位为l,若异或为
0,则得出商的符号位为O.3.3商的数值位
同判断商的符号位类似的,从阵列除法器中得出的结果为真值,要得出商
勰丁兰南凇Y‰南
符号位yo—一
n位算前求补器
l符号位】【0—一
n位算前求补器
l
的补码,必须经过求补电路,此时需要对
除数和被除数的两符号位异或结果进行
判断,若为1,则数值位进行求补,若为O,则此时的数值位即为补码,不需求补.
图7是一个完整的n+l位带求补电路的阵列除法器逻辑图.使用这种并行除法器可以完成带符号位的定点小数补码除法运算,得到和除数、被除数相同位数的商的补码.
商的补码的商的补码的数值位q,q:…‰符号位qo
圈7完整的n+l位带求补电路的阵列除法器
4基于CAS的阵列除法器的FPGA实现
4.1模块结构图
根据阵列除法器的原理,得出定点小数除法运算的模块FPGA结构,如图8.
图8定点小数除法运算模块结构
吉雪芸,朱有产:不恢复余数阵列除法器的FPGA实现
4.2
59
模块设计图
由阵列除法器的原理图得出采用FPGA设计的模块图如图9所
DA7I'AIN
DATAIN
示,其中DAT_COM模块完成按照输入决定求补功能;OR模块为与门;DIVISION—MAIN完成真值除法功能;整个器件的输入为DATA—IN,即除数Divisor和被除数Dividendt3】,也就是原理图中的Y和x,输出为DATA_OUT,即商Quotient,也就是原理图中的Q.
该阵列除法器以除数和被除数的位数n为参数,确定了n的值之后,使用VHDL语言编写,具有可移植性强、可自定义参数等特点.其适用于一般的定点小数除法运算以及浮点数尾数部分的除法运算.
每个CAS单元的延迟时间为3T单位,n+l位的阵列除法器的单元数目为(n+1)2,故延迟时间为3(n+1)2.
Dividend(X)Divisor(Y)
DATA_OUT
除法器是二进制数值运算中的重要的四则运算之一,本文的不恢复余数阵列除法器适用于定点小数的补码运算,得出与除数位数相同的商的补码.在分析不恢复余数阵列除法器的原理的基础上,本文给出一个基于FPGA的定点小数阵列除法器的模块设计图,
Quotient(Q)
图9采用FPGA设计的模块
该阵列除法器可应用于一般n位定点小数(n作为参数)以及格式不固定的浮点数除法运算中的尾数部分相除,具有移植性强、参数可变等特点141.参考文献:
[1]白中英.计算机组成原理[M].北京:科学出版社,2008.
[2]甘子平,韩应征.浮点数除法器的FPGA实现[J].太原理工大学学报,2008(5):209—211.[3]WAYNE
LPipeliningandtransposingheterogeneousarray
designs[J].JournalofVLSISignalProcessing,1993(1):7—20
[4]张欢欢,宋国新.不恢复余数阵列除法器的形式化描述和验证方法[J].计算机科学,2007(7):283—285,291.
FPGAImplementationAbouttheArrayDivider
SubtractionAlternating
on
theAdditionand
Method
JiXueyun,ZhuYouchan
(Center
of
InformationandNetworkManagement,NorthChinaElectricPowerUniversity,Baoding071003,China)
Abstract:Thepaperbased
CAS
logic
as
on
thealgorithmaboutadditionandsubtractionalternatingmethod,describedinorderto
arraydivider
a
thebasicunitofthestructure
principle,andgave
hardware
a
fullplementoffixed-pointdecimaldivision
diagram.Finally,thepaperpresented
FPGA—based
implementationofthedivider.
Keywords:CAS;additionandsubtractionalternatingmethod;paralleldivision;arraydivider;FPGA
不恢复余数阵列除法器的FPGA实现
作者:作者单位:刊名:英文刊名:年,卷(期):被引用次数:
吉雪芸, 朱有产
华北电力大学,信息与网络管理中心,河北,保定,071003保定学院学报
JOURNAL OF BAODING UNIVERSITY2010,23(3)0次
参考文献(4条)
1. 白中英.计算机组成原理[M].北京:科学出版社,2008.
2. 甘子平,韩应征.浮点数除法器的FPGA实现[J].太原理工大学学报,2008(5):209-211.
3. WAYNE L.Pipelining and transposing heterogeneous array designs[J].Journal of VLSI SignalProcessing,1993(1):7-20.
4. 张欢欢,宋国新.不恢复余数阵列除法器的形式化描述和验证方法[J].计算机科学,2007(7):283-285,291.
本文链接:http://d.g.wanfangdata.com.cn/Periodical_bdsfzkxxxb201003017.aspx授权使用:重庆大学(cqdx),授权号:68619924-cb94-476b-b986-9df800cfe33d
下载时间:2010年9月21日
范文四:不恢复余数阵列除法器的FPGA实现
2010年5月第23卷第3期保定学院学报保定学院学报JOURNAL OF BAODING UNIVERSITY May, 2010
2010年第3期Vol.23No.3
文章编号:1674-2494(2010)03-0056-04
不恢复余数阵列除法器的FPGA 实现
吉雪芸,朱有产
(华北电力大学信息与网络管理中心, 河北保定071003)
摘要:在研究不恢复余数法的算法基础上,阐述以可控加/减法器(CAS )为基本组成单元的阵
列除法器的构造原理,并给出一个完整的定点小数补码除法逻辑图,最后提出一种基于现场可编程门阵列(Field -Programmable Gate Array ,简称FPGA )的除法器的硬件实现方法.
关键词:CAS ;不恢复余数法;并行除法;阵列除法器;FPGA 中图分类号:TP391.41
文献标识码:A
现代计算机的硬件除法器已经淘汰了早期的串行除法器,而采用了同阵列乘法器相似的并行运算部件[1]. 阵列除法器的形式有不恢复余数阵列除法器、补码阵列除法器等. 其中不恢复余数阵列除法器的设计方案建立在串行的不恢复余数法(又称加减交替法)的基础上,其逻辑组成原理则以可控加/减法单元为基础.
图1是4+1位阵列除法器逻辑结构图,图2是CAS 的符号化示意图.
FPGA 作为一种半定制电路,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点[2]. 利用FPGA 的除法器具有可移植性强、系统成本低以及集成度高的优点,在电路设计、产品设计以及系统级应用中有良好的前景. 本文提出了一种阵列除法器的FPGA 的实现方法.
图1
CAS
CAS
CAS
CAS
CAS
CAS
CAS
CAS
CAS
CAS
CAS
CAS
CAS
0CAS
CAS
CAS
CAS
CAS
CAS
001
0CAS
y 1
x 1CAS
y 2
x 2CAS
y 3
x 3CAS
y 4
x 5CAS
CAS
4+1位阵列除法器逻辑结构
1单符号位的n+1位可控补码加法/减法器
CAS 的逻辑结构图如图3所示,可看出CAS 是在一位全加器(FA )的基础上构造而来.
在图3中,输入端Y i 须经过输入端P 控制的的异或门电路,才能和输入端X i 作为FA 的2个加数,连同输入端C ()一起成为FA 的3个i 前一位进位输入,FA 的2个输出,本位和S i 以及本位进位C i+1直接作为CAS 的输出,除了以上6个输入输出外,输入端P 以及输入端Y i 同时也作为输出线输出,同行波进位加法器相似,为其组成的逻辑阵列作准备. 这样,一个除法流
201(1978-),.
P
图2CAS 的符号
吉雪芸,朱有产:不恢复余数阵列除法器的FPGA 实现
57
Y i
X i
水逻辑阵列的组成单元共8个输入输出.
CAS 同FA 的不同之处在于连接输入端Y i 和输入端P 的异或门,而CAS 的名称也由此而来,当输入线P=0时,Y i 经过异或门其值不变,CAS 即为FA ;当输入线P=1时,Y i 经过异或门其值取反,CAS 即为对X i 、C i 以及取反后的Y i 进行全加. 设2个加数X 和Y 均为大于0的定点小数,[X]补和[Y]补均为n+1位时,可用n+1个CAS 以行波进位的形式组成图4所示的结构,可看出对0. x 1x 2…x n 输入端P 起到决定进行补码加法还是减法的作用. 当P=0时,
和0. y 1y 2…y n 进行补码加法;当P=1时,对0. x 1x 2…x n 和0. y 1y 2…y n 进行补码减法. 也就是说,图4可作为1个单符号位的n+1位补码加法/减法器,若考虑n+1个CAS 的所有输出端,则其符号化示意图如图5所示.
P P
C +1
FA
C
S
Y
2不恢复余数算法
以定点小数为例,已知[X]补和[Y]补,为保证商也是定点小数,故规定|Y|>|X|.为了分析算法,因此只考虑X 和Y 均为正数的情况,则有[X]补=0.x 1x 2…x n ,[Y]补=0.y 1y 2…y n ,[-Y]补=1. y 1y 2…y n ,设部分余数为R ,商为Q ,则执行下列操作:
R 0=0.x1x 2…x (先做减法),n 求部分余数R 1,R 1=0. x 1x 2…x n -0. y 1y 2…y n =0. x 1x 2…x n +1.y 1y 2…y n =1.r11r 12…r 1n 符号位为1,则q 0=0(R 1的说明不够减,下一步求R 2时要做符号位为1,加法),
R 2=2R(部分余数左移)+0.y1y 2…y n =1
r 11.r 12…r 1n 0+0.y1y 2…y n =r11.r 21r 22…r 2n ,此时判断若r 11=0,说明R 2>0,够部分余数R 2的符号位r 11,
减,则q 1=1,下一步部分余数要做减法,即加上1.y 1y 2…y n ;若r 11=1,说明R 2<0,不够减,则q 1="0,下一步部分余数要做加法,即加上0." y="" 1y="" 2…y="" n="">0,不够减,则q>
下面求部分余数R i ,左移上一部分余数R i-1后是加0.y 1y 2…y n 还是加1.y 1y 2…y n ,取决于q i-1.
R i =2Ri-1±0.y 1y 2…y n =ri-11.r i1r i2…r in .
通过上述分析,不恢复余数算法可用下式表示:
0x 1x 2x 3x 4…x n +1y 1y 2y 3y 4…y n
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
y 1
x 1
y 2
x 2
y n
x n
P 0
CAS CAS CAS CAS
符号位
图4
f f f
单符号位的n+1位补码加/减法器
x 1
x 2
x n
y 1y 2y n
P 0
n+1位串行补码加法/减法器
符号位f
y 1
f
y 2
f
y n
使用补码做减法
q 0←R 11R 12R 13R 14…R 1N 0不够减,使用补码做加法
+0y 1y 2y 3…y n-1y n
说明不够减,使用0若R 20为1,
补码减法做加法;若R 20为0,y n 说明够减,使用补码做减法.
58
保定学院学报2010年第3期
3不恢复余数的阵列除法器
3.1
阵列除法器
根据不恢复余数除法的算法,在空间上将前面第2点中得出的单符号位串行补码加减法器按行进行阵列排布,再将上一行的高位进位输出与下一行的P 输入端捏合在一起,即可得出不恢复余数阵列除法器.
图6是由n+1位串行补码加/减法器组成的阵列除法器,需要说明的是在这种除法器输入端的前两位必须置入0,作为正数定点小数的符号
位;第一行的P 输入端必须置1,表示减法操作. 3.2
商的符号位
上述算法和阵列图只考虑了正数补码进行除法的情况,而这种并行除法器只是在进行不恢复余数加减法的时候用到补码,从本质上来说还是真值进行除法运算,因此,如果不限制2个定点小数的符号,则除数和被除数的数值位需要在进入除法器之前先进入求补电路,根据它们的符号来判断是否进行算前求补;同时,除数和被除数除法运算的结果经由除数和被除数的符号位异或进行判断,若异或为1,则得出商的符号位为1,若异或为0,则得出商的符号位为0. 3.3
商的数值位
同判断商的符号位类似的,从阵列除法器中得出的结果为真值,要得出商的补码,必须经过求补电路,此时需要对除数和被除数的两符号位异或结果进行判断,若为1,则数值位进行求补,若为0,则此时的数值位即为补码,不需求补.
图7是一个完整的n+1位带求补电路的阵列除法器逻辑图. 使用这种并行除法器可以完成带符号位的定点小数补码除法运算,得到和除数、被除数相同位数的商的补码.
商的补码的
n 位算后求补器
y 0
x 0
除数[Y]补的
符号位y 0
除数[Y]补的数值位y 1y 2…y n
被除数[X]补的数值位x 1x 2…x n
除数[X]补的符号位x 0
q n
n+1位串行补码加法/减法器
q 1
q 2
n+1位串行补码加法/减法器
n+1位串行补码加法/减法器
10
0y 1
x 1y 2
x 2
y n
x n
n+1位串行补码加法/减法器
n 位算前求补器n 位算前求补器
n+1位
不恢复余数阵列除法器
n 位商的数值位
4基于CAS 的阵列除法器的FPGA 实现
4.1
模块结构图
根据阵列除法器的原理,得出定点FPGA 如图8.
除法
位移
存储模块
被除数
余数商
图8
吉雪芸,朱有产:不恢复余数阵列除法器的FPGA 实现
59
4.2模块设计图
由阵列除法器的原理图得出采用FPGA 设计的模块图如图9所
DATA_IN
Dividend(X)
DATA_INDivisor(Y)
OR 模块为与示,其中DAT_COM模块完成按照输入决定求补功能;门;DIVISION_MAIN完成真值除法功能;整个器件的输入为DATA_IN,即除数Divisor 和被除数Dividend [3],也就是原理图中的y 和x ,输出为DATA_OUT,即商Quotient ,也就是原理图中的Q.
该阵列除法器以除数和被除数的位数n 为参数,确定了n 的值之后,使用VHDL 语言编写,具有可移植性强、可自定义参数等特点. 其适用于一般的定点小数除法运算以及浮点数尾数部分的除法运算.
每个CAS 单元的延迟时间为3T 单位,n+1位的阵列除法器的单
22
),故延迟时间为3(n+1). 元数目为(n+1
DAT_COM
MX
SX OR
SY
DAT_COM
MY
DIVISION_MAIN
DAT_COM
除法器是二进制数值运算中的重要的四则运算之一,本文的不恢复余数阵列除法器适用于定点小数的补码运算,得出与除数位数相同的商的补码. 在分析不恢复余数阵列除法器的原理的基础上,本文给出一个基于FPGA 的定点小数阵列除法器的模块设计图,
图9
DATA_OUT
Quotient(Q)
采用FPGA 设计的模块
(n 作为参数)以及格式不固定的浮点数除法运算中的尾数部分相该阵列除法器可应用于一般n 位定点小数除,具有移植性强、参数可变等特点[4]. 参考文献:
[1]白中英. 计算机组成原理[M ]. 北京:科学出版社,2008.
[2]甘子平,韩应征. 浮点数除法器的FPGA 实现[J ]. 太原理工大学学报,2008(5):209-211.
[3]WAYNE L. Pipelining and transposing heterogeneous array designs [J ]. Journal of VLSI Signal Processing ,1993(1):7-20. [4]张欢欢,宋国新. 不恢复余数阵列除法器的形式化描述和验证方法[J ]. 计算机科学,2007(7):283-285,291.
FPGA Implementation About the Array Divider on the Addition and
Subtraction Alternating Method
Ji Xueyun, Zhu Youchan
(Center of Information and Network Management ,North China Electric Power University, Baoding 071003, China )Abstract:The paper based on the algorithm about addition and subtraction alternating method, described in order to CAS as the basic unit of the structure array divider principle, and gave a full complement of fixed -point decimal division logic diagram. Finally, the paper presented a FPGA -based hardware implementation of the divider.
Key words:CAS; addition and subtraction alternating method; parallel division; array divider; FPGA
范文五:提高基于不恢复余数除算法的除法阵列速度
第19卷第2V o l119 N o 12 江 苏 理 工 大 学 学 报 期 M a r. 1998 Jo u rna l o f J iang su U n ive r sity o f Sc ience and T ech no lo gy 1998年3月
提高基于不恢复余数除算法
的除法阵列速度
朱嘉钢
摘 要 提出一种提高基于不恢复余数除算法的除法阵列速度的方法Λ当余
数 为0时, 该方法可以使除法阵列的平均速度提高一倍Λ这种除法阵列在异步控制的
并
行环境中有应用价值Λ
关键词 电子计算机 速度 除法阵列 不恢复余数除算法
中图分类号 303T P
速度和精度是计算机系统的两个重要性能指标, 而提高处理器中各运算部件的速度是提 高整机速度的重要因素Λ如何提高除法器的速度是提高运算部件速度的难点之一Λ基于不恢复 余数除算法的除法阵列由于其算法的规整性而易于用大规模集成电路实现, 因而也是各类快
(速除法方案中的一个常选方案Λ本文对目前此种除法阵列所基于的不恢复余数除算法 即加减
) 交替法作了改进, 即增加所谓“判0”操作, 从而使除法阵列的平均速度进一步提高Λ
伴有“判0”操作的算法 1
() 现有的除法阵列所基于的不恢复余数除算法的操作可归纳如下 以定点小数补码为例:
第1 步, 判断除数与被除数的符号, 同号做减法, 异号做加法;
第2步, 判断余数与除数的符号Λ若同号则商“1”, 将余数左移一位, 下步做减法; 若异号
则 商“0”, 将余数左移一位, 下步做加法;
第3步, 重复以上第2步的操作直至结束Λ重复次数取决于操作数的位数与精度要
求Λ该算法的缺点是, 当循环的第 i 步余数已为 0 而可以求得商值时, 未能立即给出商值而停 止计算, 仍需继续进行以后的 n - i 步计算, 既延长了时间, 也损失了精度Ζ如果在第 2 步一开 始先增加一个“判 0”操作, 即判断余数是否为 0, 若为 0 则商“1”, 其余未上商的位均置“0”, 算 法结束; 若不为 0 则执行原第 2 步的操作Ζ这就是伴有“判 0”操作的不恢复余数除算法Ζ现将该 () 算法完整地描述如下 采用文献3 中的记法:
))( (x = x 0 , x - 1 , , x - n 、 , y - n 、 设y = y , y ,0 - 1
) )(( , q- n 和 r = q = q0 , q- 1 , r0 , r- 1 , , r- 2n
收稿日期: 1997209220
朱嘉钢 江南工学院计算机系 无锡市 214063
为定点小数补码, 且当 x 0 = y 0 时, | x | < |="" y="" |="" ,="" 而当="" x="" 0="" y="" 0="" 时,="" |="" x="" |="" |="" y="" |="" ζ则本算法为:="">
) (()x - i , 0 ? i ? n , 且 z - j = Se t z = z 0 , z - 1 , , z - 2n , z - i = 1 ? j ? 2n; 1 0, n +
Se t sign ?x ? y ;0 0 () 2 Fo r i: = 0 step 1 u n t il n - 1 do ()3
B eg in
- i () z ?z - 1 - 2 sign 2yr r r
() 4If z = 0 th en
() 5B eg in q?1; q?0, i < j="" n;-="" i="" -="" j="">
go to step 8
E nd;
()6 E lse if z - i = y 0 th en
B eg in q?1; sign ?0 en d; - i
E lse
B eg in q?0; sign ?1 en d; - i
E nd;
q?1- n ()7 算法结束Ζ ()8
该算法第 1、2 步为初始化, 第 3 至 6 步重复计算商值, 第 7 步执行末位“恒置 1”操作Ζ第 5 是增加的“判 0”操作Ζ该步操作的正确性可解释如
下: 余数为 0 表示恰好够减, 商的当前位的绝对值应为 1, 而剩余位的绝对值应为 0Ζ当 x 0 = y 0
按绝对值置商, 此即第 5 步的操作; 当 x 0 ? y 0 时, 按反码置商, 最后通过在最低位加 1 将反调整成补码Ζ这也正好是第 5 步的操作
Ζ 增加了第 5 步操作后, 算法的渐近时间复杂性无变化Ζ
本算法对除法阵列速度的影响及其应用环境
考虑除法阵列执行算法第 3 步至第 6 步所需的时间Ζ如果除法阵列执行一次Fo r 循环体的 间为 T f , 则完成 Fo r 循环的时间是 n T f Ζ在一般情况下, 这已是除法阵列完成 Fo r 循环的最 时间了Ζ但是在余数为 0 的情况下, 是否存在第 5 步“判 0”操作, 其完成 Fo r 循环的时间是不 的Ζ如果没有“判 0”操作, 除法阵列仍需执行 n 步操作, 其计算时间仍是 n T f Ζ而增加了“判 0” 作后, 其计算时间可以缩短Ζ
( ) 如以 p i表示
- i () z = 1 - 2 r sign r 2r y = 0
概率, 则余数为 0 时除法阵列的平均计算速度为 n
( ) )( T a = i p iT f r r 6 i= 1
1 ( ) 在等概率分布的情况下, p i= , 则n
江 苏 理 工 大 学 学 报 1998年352 月
n 1 n + 1 T a = r T fr T f= i r 6 2 n i= 1
这表明, 在余数为 0 和等概率分布情况下, 增加了“判 0”操作后, 可使除法阵列的平均计 算速度提高近一倍Ζ
在用除法阵列实现该算法时, 第 5、6 步可并行执行Ζ因而在余数不为 0 时, 并不因“判 0”
而 延长计算时间Ζ
在基于流水线或同步控制的并行环境中, 由于把运算部件的最长计算时间作为其计算时 间, 因而上述除法阵列平均速度的提高对整个计算机系统速度的提高并无意义Λ但是在基于异 () 步控制的并行环境中 如基于异步控制的处理器阵列和数据流计算机, 由于任何一个运算部 件的任何一次计算速度的提高, 都可能对整个系统的运算速度产生影响, 尤其在该部件的操作 处于任务流的关键路径上时更是如此, 因而上述除法阵列平均速度的提高有其应用意义Λ而 且, 增加了“判0”操作后, 也得到了一个精确的商值
Λ
结 论 3
综上所述, 在已有的各种快速除法器方案中, 基于不恢复余数除算法的除法阵列易于用大 规模集成电路实现, 并行度达到位一级, 运算速度主要只取决于阵列中逻辑门电路的延迟时 间Λ从这个意义上看, 这种除法阵列是速度最快的一种除法器Λ本文所给出的算法则进一步发 掘了这种除法阵列的速度, 即只要再增加一“判0”电路, 可使这种除法阵列的平均速度进一步 提高Λ这对提高整个计算机系统的速度是有意义的
Λ
参 考 文 献
俸远祯, 阎慧娟1计算机组成原理1北京: 电子工业出版社, 1985Λ50, 62 1 王爱英1计算机组成与结构Λ第二版, 北京: 清华大学出版社, 1995Λ25, 33 2 2, 108. . , 1980. 95J ean L o up B ea rCom p u te r Sy stem s A rch itec tu reCom p u te r Sc ience P re ss 3
In c rea se th e Sp eed o f th e D iv is io n A r ray B a sed
2o n th e N o n R e s to r in g D iv is io n A lgo r ithm
Zh u J iagan g
A bstra c t T h is p ap e r p ropo se s a m e tho d to in c rea se th e sp eed o f d iv isio n a r ray
2. , b a sed o n th e no n re sto r in g d iv isio n a lgo r ithmIn th e ca se o f rem a in de r b e in g ze ro
50% th is m e tho d can redu ce th e ave rage ca lcu la t io n t im e b y an d th e refo re ra ise th e
, ave rage sp eed o f th e d iv isio n a r rayw h ich can b e u sefu l in th e p a ra lle l en v iro n2
.m en t s in a a syn ch ro no u s fa sh io n
- ; ; ; Key word s com puterspeedd iv is ion a rra yn on re stor in g d iv is ion
转载请注明出处范文大全网 » 计算机组成原理第八讲(除法-