计算机组成原理 除法计算x y,计算机组成原理实验报告_3_不恢复余数阵列除法器...

这篇实验报告详细介绍了不恢复余数阵列除法器的原理和实现过程,包括原码不恢复余数法的算法细节、可控加法/减法单元(CAS)的操作以及阵列除法器的逻辑结构。实验通过具体的除法例子展示了加减交替的计算步骤,并分析了阵列除法器的延迟时间和操作流程。此外,还提供了Quartus II软件下载及FPGA配置的实验步骤。
摘要由CSDN通过智能技术生成

a7f4a3f590493a1e451dd952a488fd7c.gif 计算机组成原理实验报告_3_不恢复余数阵列除法器

(7页)

bdd754d0c4b20a61d829ffc739aa3613.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

11.9 积分

河北大学 计算机组成原理 实验报告学院 年级 专业 学号 姓名 实验日期 实验地点 指导老师 实验项目 不恢复余数阵列除法器 成绩 一、 实验目的:理解除法器的原理。二、实验原理: 这次实验实现原码不恢复余数法的阵列除法器算法(余数左移除数固定),详细计算过程如下。例题:X=0.10110,y=0.111,求[x/y]原。则[x]补=0.10110,[y*]补=0.111,[-y*]补=1.001被除数商步骤说明+00.101 10011.001(减去除数)减去除数+11.110 10011.101 000(左移一位)00.111(加上除数)0余数为负,商上0,左移一位,加上[y*]补,此时count=3+00.100 00001.000 000(左移一位)11.001(减去除数)01余数为正,商上1,左移一位,减去除数,此时count=2+00.001 00000.010 000(左移一位)11.001(减去除数)011余数为正,商上1,左移一位,减去除数,此时count=1+11.011 00000.111(加上除数)0110余数为负,商上0,此时count=0,停止运算,发现余数小于0,加上[y*]补恢复00.010 000由于除数被除数都为正,因此最后结果为正,直接在最后的结果加上“+”,商为+0.110,但是由于除数在计算的过程中被逻辑左移了3次,所以要乘以2^-5进行恢复,故余数为0.000 010 000。原码不恢复余数法原理说明:①符号位单独处理,参加运算的是除数和被除数的绝对值的补码,除数的绝对值用y*表示;②合法的除法运算中,被除数必须小于除数,因此第一次上商肯定是r6=0,否则溢出,停止运算;③原码恢复余数法来源于手算的竖式除法。若余数为正,表示够减,商上1,左移一位,减去[y*]补,也就是加上[-y*]补;若余数为负,表示不够减,商上0,恢复余数(加上除数),变成减去除数之前的结果,继续左移一位,加上[-y*]补。④原码不恢复余数法建立在原码恢复余数法的基础之上,假设当前的余数为R。当余数大于0时,下一步余数是先左移一位再减去除数,即下一步余数应该为R’=2R-y*;当余数小于0时先恢复余数,然后再左移一位再减去除数,假设当前余数为R,那么下一步余数应该为R’=2(R+y*)-y*=2R+y*。以上两个式子将恢复余数法的步骤定量化了,也就是说,要么左移一位加上y*,要么左移一位减去y*,这就是加减交替的含义。⑤除数和被除数具有3位尾数的合法的除法,需要逻辑移位3次,上商3+1=4次。可以设置一个计数器count来控制循环次数,达到3次就停止。⑥若最后一步为负,表示不够减,商上0,需要恢复余数,即加上除数,否则不需要。接下来介绍原码不恢复余数阵列除法器①可控加法/减法(CAS)单元原理是利用一个可控加法/减法 CAS 单元所组成的流水阵列来实现的它有四个输出端和 四个输入端。当输入线 P=0 时,CAS 作加法运算;当 P=1 时,CAS 作减法运算。逻辑结构图 如图所示。 不恢复余数阵列除法器的逻辑结构图 CAS 单元的输入与输出的关系可用如下一组逻辑方程来表示: Si=Ai?(Bi?P)?C,Ci+1=(Ai+Ci)· (Bi?P)+AiCi 当 P=0 时,就是一个全加器,如下式: Si=Ai?Bi?Ci ,Ci+1=AiBi+BiCi+AiCi 当 P=1 时,则得求差公式: Si=Ai?非Bi?Ci ,Ci+1=AiBi+BiCi+AiCi ,其中 非Bi=Bi?1。 在减法情况下,输入 Ci 称为借位输入,而 Ci+1 称为借位输出。②不恢复余数的除法(加减交替法)在不恢复余数的除法阵列中,每一行所执行的操作究竟是加法还是减法,取决于前一行输出的符号与被除数的符号是否一致。当出现不够减时, 部分余数相对于被除数来说要改变符号。这时应该产生一个商位“0”,除数首先沿对角线右移,然后加到下一行的部分余数上。当部分余数不改变它的符号时,即产生商位“1”,下一行的操作应该是减法。 本实验就采用加减交替的方法设计这个阵列除法器。被除数为x= X0.x6x5x4x3x2x1(这里需要右移,是双倍长);除数为y=Y0.y3y2y1。其中 X0 和 Y0 是被除数和除数的符号位,在本次设计中 X0 和 Y0 为零,商的符号位恒为零,商为q4.q3q2q1,余数为0.00r6r5r4r3。字长n+1=4由图看出,该阵列除法器是用一个可控加法/减法(CAS)单元所组成的流水阵列来实现的。推广到一般情况,一个(n+1)位除(n+1)位的加减 交替除法阵列由(n+1)2个CAS单元组成,其中两个操作数(被除数与除数) 都是正的。 (1)单元之间的互连是用n=3的阵列来表示的。这里被除数x是一 个6位的小数(双倍长度值):x= X0.x6x5x4x3x2x1它是由顶部一行和最右边的对角线上的垂直输入线来提供的。 (2)除数y是一个3位的小数:y=0.y3y2y1它沿对角线方向进入这个阵列。这是因为,在除法中所需要的部分 余数的左移,可以用下列等效的操作来代替:即让余数保持固定,而将除数沿对角线右移。(3)商q是一个3位的小数: q=0.q1q2q3 它在阵列的左边产生。(4)余数r是一个6位的小数: r=0.00r3r4r5r6 它在阵列的最下一行产生。最上面一行所执行的初始操作经常是减法。因此最上面一行的控制 线P固定置成“1”。减法是用2的补码运算来实现的,这时右端各CAS单元上的反馈线用作初始的进位输入。每一行最左边的单元的进位输出决定着商的数值。将当前的商反馈到下一行,我们就能确定下一行的操作。由于进位输出信号指示出当前的部分余数的符号,因此,它将决定下一行的操作将进行加法还是减法。 对不恢复余数阵列除法器来说,在进行运算时,沿着每一行都有进位(或借位)传播,同时所有行在它们的进位链上都是串行连接。而每个CAS单元的延迟时间为3T单元,因此,对一个2n位除以n位的不恢复余数阵列除法器来说,单元的数量为(n+1)2,考虑最大情况下的信号延迟,其除法执行时间为 td=3(n+1)2T三、实验步骤:(1)打开Quartys II。(2)将子板上的JTAG端口和PC机的并行口用下载电缆连接。打开实验台电源。(3)执行Tool→Programmer命令,将adder8.sof下载到FPGA中。注意在执行Programmer中,应在program/configure下的方框中打钩,然后下载。(4)在实验台上通过模式开关选择FPGA-CPU独立调试模式010。四、实验现象及分析:本实验实现4位除4位阵列除法器。输入输出规则对应如下:(1)输入被乘数A和乘数B,A和 关 键 词: 计算机 组成 原理 实验 报告 _3_ 恢复 余数 阵列 法器

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值