原码一位乘法

合集下载

原码一位乘法

原码一位乘法
② 以乘数的最低位作为乘法判别位,若判别位为 1,则在前次部分积(初始部分积为0)上加上 被乘数,然后连同乘数一起右移一位;若判别 位为0,则在前次部分积上加0(或不加),然 后连同乘数一起右移一位。
③ 重复第②步直到运算n次为止。(n为乘数数值 部分的长度)
小飞守角制作
例3.9 根据原码一位乘法的算法计算例3.8。 解:[x]原=0.1101,[y]原=1.1011,
小飞守角制作
根据上式,可将乘法转换为一系列加法与移位操 作。将递推公式推广到n位,得:
Z0=0 (初始部分积为0) Z1=2-1(Z0+xyn) Z2=2-1(Z1+xyn-1) … Zn=2-1(Zn-1+xy1)=x×y
小飞守角制作
原码一位乘法的算法
① 积的符号单独按两操作数的符号模2加(异或) 得到。用被乘数和乘数的数值部分进行运算。
小飞取被乘数x的值还是取零值是由乘数对应位上 的取值为1还是0决定的,乘数y每一位的值是0还是1 都能直接看见。而在计算机内从存放乘数的寄存器中 逐位取出每一位来判别该位值是0还是1来决定相加 数的值是不方便的。
小飞守角制作
问题解决啦!!!
(1)设初始部分积的值为0,每求得一个部分积,就同时 与上一次部分积相加,每次运算器都是完成两个数据 的加法,最终可得到结果。
(2)将每次的部分积左移一位操作变为加法之前部分积 右移一位来实现,因为前一次部分积的最低位是不参 与相加计算的,将右移操作移出位用专门的寄存器来 保存。
(3)每求一次部分积时,使存放乘数y的寄存器执行一次 右移操作,这样每次就从寄存器的最低位直接取值就 可以了。
小飞守角制作
原码一位乘法的运算流程
(3)部分积取被乘数x的值还是取零值是由乘数对应位上 的取值为1还是0决定的,乘数y每一位的值是0还是1 都能直接看见。而在计算机内从存放乘数的寄存器中 逐位取出每一位来判别该位值是0还是1来决定相加 数的值是不方便的。

c语言实现原码一位两个定点数相乘

c语言实现原码一位两个定点数相乘

一、概述在计算机科学中,C语言是一种非常流行的程序设计语言,它具有高效、灵活和丰富的库函数等特点。

在C语言中实现原码一位两个定点数相乘是一个非常基础和常见的计算操作,本文将介绍如何使用C语言实现原码一位两个定点数相乘的过程。

二、原码定点数1. 定点数是计算机中用于表示实数的一种方式,它们不同于浮点数,定点数以二进制形式表示,它包含一个整数部分和一个小数部分。

2. 原码定点数中,最高位为符号位,其余位用来表示整数部分和小数部分。

当符号位为0时,表示正数,为1时表示负数。

三、原码定点数相乘1. 原码定点数相乘是指两个原码定点数相乘的操作。

2. 对于原码定点数A和B,其相乘过程可以表示为C=A×B,其中C 为相乘结果。

四、C语言实现下面是一个简单的C语言函数,实现了原码一位两个定点数相乘的功能:```c#include <stdio.h>int fix_mul(int a, int b, int n){int c;c = a * b;c = c >> n; // 将乘积右移n位,得到结果return c;}```五、代码解释1. 上述代码定义了一个名为fix_mul的函数,接受三个参数a、b、n,分别表示两个原码定点数和小数部分的位数。

2. 函数内部先将a和b相乘,然后将结果右移n位,最终得到相乘的结果,并将其返回。

六、示例下面是一个示例代码,展示了如何使用上述函数进行原码一位两个定点数相乘的操作:```c#include <stdio.h>int m本人n(){int a = 10; // 原码定点数Aint b = 20; // 原码定点数Bint n = 8; // 小数部分的位数int result = fix_mul(a, b, n);printf("The result of A * B is d\n", result);return 0;}```七、总结通过上述的介绍可以看出,使用C语言实现原码一位两个定点数相乘是一个非常简单的操作。

计算机组成原理课程设计定点原码一名乘法器的设计

计算机组成原理课程设计定点原码一名乘法器的设计

课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点原码一名乘法器的设计院(系):计算机学院专业:班级:4401102学号:208姓名:指导教师:完成日期:目录第1章整体设计方案 (1)设计原理 (1)设计环境 (2)第2章详细设计方案 (3)顶层方案图的设计与实现 (3)创建顶层图形设计文件 (3)器件的选择与引脚锁定 (4)2.2第二层模块的设计与实现 (5)功能模块的设计与实现 (5)2.3.1移位模块的设计与实现 (5)2.3.2 乘数移位模块的设计与实现 (7)2.3.3选择模块的设计与实现 (9)2.3.4 控制模块的设计与实现 (11)2.3.5 其他模块的设计与实现 (13)仿真调试 (13)第3章编程下载与硬件测试 (16)编程下载 (16)3.2硬件测试及结果分析 (16)参考文献 (17)附录(电路原理图) (18)第1章整体设计方案设计原理原码一名乘,两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值之积。

例:X=,Y=,计算乘积X*Y。

*00001100110011000.在计算时,逐次按乘数每1位上的值是1仍是0,决定相加数取被乘数的值仍是取零值,而且相加数逐次向左偏移1位,最后一路求积。

由于在计算机内多个数据一般不能同时相加,一次加法操作只能求出两数之和,因此每求得一个相加数,就与上次部份积相加每次计算时,相加数逐次向左偏移一名,由于最后的乘积位数是乘数(被乘数)的两倍,因此加法器也需增到两倍。

部份积右移时,乘数寄放器同时右移一名,所以用乘数寄放器的最低位来控制相加数取被乘数或零,同时乘数寄放器接收部份积右移出来的一名,完成运算后,部份积寄放器保留乘积的高位部份,乘数寄放器中保留乘积的低位部份。

按照人工算法可以知道,原码一名乘法的整体设计应包括乘数寄放器,被乘数寄放器,移位电路,控制器,部份积五大模块,包括一个输入、输出、控制器模块,并作为顶层设计,以上五大模块作为底层设计,采用硬件器件设计实现。

原码一位乘法

原码一位乘法

原码⼀位乘法1、移位操作及其意义
逻辑左移:
算术左移:
逻辑右移:
算术右移:
2、⼆进制乘法的⼿⼯计算过程
a.说明乘法可由加法实现
b.存在的问题:
*需要多输⼊的全加器(最多为n+1)
*需要长度为2n的积寄存器
*对应乘数的不同位,部分积左移次数不同
且乘法过程中总移位次数多
如何解决上述问题(改进⽅法)
*需要多输⼊的全加器(最多为n+1)
解决⽅法:基于FA的循环累加0或被乘数
*针对乘数不同位部分积左移次数不同的问题
解决⽅法:右移部分积,同时也将乘数右移,将移出的部分加⼊乘数的最左边*需要长度为2n的积寄存器
解决⽅法:从部分积和乘数寄存器取结果
3、原码⼀位乘法算法
*符号位单独参加运算,数据位取绝对值参加运算。

*运算法则:
*运算过程采⽤改进的乘法运算⽅法。

原码一位乘法

原码一位乘法

计算机组成原理实验实验名称:原码一位乘法实验方式:1.硬件连线,在实验箱上实现。

2.设计乘法指令,采用微程序实现。

实验项目:原码一位乘法实现方法:硬件连线,在实验箱上实现。

实验目的:能在实验箱上实现或是在软件环境中模拟实现原码一位乘法,并理解乘法实现的思想。

实验工具或设备:CP226计算机组成原理实验仪基本思想:原码一位乘法实现原理:由于原码表示与真值极为相似,只差一个符号,而乘积的符号又可通过两数符号的逻辑异或求得,因此,运算结果可以直接用于原码一位乘,只需加上符号位处理即可。

在实际的实验箱中8位被乘数放在R2中,运算开始时8位乘数放在R1中,运算结束时16位乘积的高位放在R0中,低位放在R1中,R0和R1串联移位。

完成这个定点原码一位乘法的运算规则可以用如下图所示的逻辑流程图表示。

在该乘法过程中,每次操作是根据乘数的一位进行操作,对于8位数的乘法,需要循环8次完成一个乘法操作,因此称为一位乘法。

下面用原码的乘法方法进行13(1101)×11(1011)的四位乘法演示。

1、在乘法开始之前,R0和R1中的初始值为0000和1011,R2中的值为1101。

2、在乘法的第一个循环中,判断R1的最低位为1,所以进入步骤1a,将R0的值0000加上R2的值1101,结果1101送人R0。

3、判断R0的末位是否为1。

如果为1,将R0和R1均右移一位,并将R1的右移结果加上1000;如果不为1,R0和R1直接右移一位(目的是将高位寄存器R0中移出的数据存放在低位寄存器R1,以实现R0 和R1的串联使用)。

其结果为(0110,1101)。

第一次循环过程结束。

第二次循环过程中,判断R1的最低位仍为1,进入步骤la,R0的值0110加1101,结果为10011。

判断R0的末位为1,将R0、R1均右移,并让R1的右移结果加上1000。

结果为(1001,1110)。

第三次循环中,因R1的最低位为0,进入步骤lb,R0加上0000为1001,判断R0的末位为1,将R0和R1均右移一位,并将R1的右移结果加上1000。

原码的一位乘总结

原码的一位乘总结

原码的一位乘总结
原码的一位乘法是指在两个用原码表示的数之间进行乘法运算。

原码是一种表示有符号整数的方法,其中最高位表示符号位,0表示正数,1表示负数。

原码的一位乘法可以通过以下步骤进行:
1.确定乘法的两个操作数,并将它们转换为原码表示。

2.对两个操作数的每一位进行相乘,得到部分积。

3.将所有的部分积相加,得到最终的乘积。

具体的步骤如下:
假设有两个操作数A和B,都用原码表示,长度为n位。

1.确定符号位:根据A和B的符号位确定结果的符号位。

如果A和B的符号位相同,则结果为正,否则为负。

2.对于第i位(i从0到n-1):
-将A的第i位与B的第i位相乘,得到部分积Pi。

-如果A和B的符号位不同,将Pi取反(即将1变为0,0变为1)。

-将Pi左移i位(即在右边补i个0)。

3.将所有的部分积相加,得到最终的乘积。

需要注意的是,原码的一位乘法可能会出现溢出的情况。

当两个操作数相乘得到的部分积超过了原码表示的范围时,就会发生溢出。

在实际应用中,可以采用补码表示来避免这种情况的发生。

1。

计算机组成原理试题及答案

计算机组成原理试题及答案

《计算机组成原理》期末自测试卷A一、填空题:(每空1分,共15分)1、原码一位乘法中,符号位与数值位(分开计算),运算结果的符号位等于(相乘两位符号位的异或值)。

2、码值80H:若表示真值0,则为(移)码;若表示真值―128,则为(补)码。

3、微指令格式分为(垂直)型微指令和(水平)型微指令,其中,前者的并行操作能力比后者强。

4、在多级存储体系中,Cache存储器的主要功能是(解决CPU与主存之间的速度匹配问题)。

5、在下列常用术语后面,写出相应的中文名称:VLSI( 超大规模集成电路), RISC( 精简指令系统计算机), DMA( 直接存储器存储), DRAM( 动态随机读写存储器)。

6、为了实现CPU对主存储器的读写访问,它们之间的连线按功能划分应当包括(地址线),(数据线)(控制线)。

7、从计算机系统结构的发展和演变看,近代计算机是以(存储器)为中心的系统结构。

二、单项选择题:(每题2分,共40分)1、寄存器间接寻址方式中,操作数处于( B )中。

A、通用寄存器B、主存C、程序计数器D、堆栈2、CPU是指( D )。

A、运算器B、控制器C、运算器和控制器D、运算器、控制器和主存3、若一台计算机的字长为2个字节,则表明该机器( C )。

A、能处理的数值最大为2位十进制数。

B、能处理的数值最多由2位二进制数组成。

C、在CPU中能够作为一个整体加以处理的二进制代码为16位。

D、在CPU中运算的结果最大为2的16次方4、在浮点数编码表示中,( A )在机器数中不出现,是隐含的。

A、基数B、尾数C、符号D、阶码5、控制器的功能是( D )。

A、产生时序信号B、从主存取出一条指令C、完成指令操作码译码D、从主存取出指令,完成指令操作码译码,并产生有关的操作控制信号,以解释执行该指令。

6、虚拟存储器可以实现( B )。

A、提高主存储器的存取速度B、扩大主存储器的存储空间,并能进行自动管理和调度C、提高外存储器的存取周期D、扩大外存储器的存储空间7、32个汉字的机内码需要( B )。

21各数的原码

21各数的原码

2.227/64=00011011/01000000=0.0110110=0.11011×2-1=101,011011000规格化浮点表示为:[27/64]原[27/64]反=110,011011000[27/64]补=111,011011000同理:--27/64=--0.11011×2-1=101,111011000规格化浮点表示为:[27/64]原[27/64]反=110,100100111[27/64]补=111,1001010002.3 模为:29=10000000002.4 不对,8421码是十进制的编码2.5浮点数的正负看尾数的符号位是1还是0浮点数能表示的数值范围取决于阶码的大小。

浮点数数值的精确度取决于尾数的长度。

2.61)不一定有N1>N2 2)正确2.7 最大的正数:0111 01111111 十进制数:(1-2-7)×27最小的正数:1001 00000001 十进制数:2-7×2-7最大的负数:1001 11111111 十进制数:--2-7×2-7最小的负数:0111 10000001 十进制数:--(1-2-7)×272.81)[x]补=00.1101 [y]补=11.0010[x+y]补=[x]补+[y]补=11.1111无溢出x+y= -0.0001[x]补=00.1101 [--y]补=00.1110[x-y]补=[x]补+[--y]补=01.1011 正向溢出2)[x]补=11.0101 [y]补=00.1111[x+y]补=[x]补+[y]补=00.0100 无溢出x+y= 0.0100[x]补=11.0101 [--y]补=11.0001[x-y]补=[x]补+[--y]补=10.0110 负向溢出3) [x]补=11.0001 [y]补=11.0100[x+y]补=[x]补+[y]补=10.0101 负向溢出[x]补=11.0001 [--y]补=00.1100[x-y]补=[x]补+[--y]补=11.1101 无溢出X-y=-0.00112.91)原码一位乘法|x|=00.1111 |y|=0.1110部分积乘数y n00.0000 0.1110+00.000000.0000→00.00000 0.111+00.111100.11110→00.011110 0.11+00.111101.011010→00.1011010 0.1+00.111101.1010010→00.11010010P f=x f⊕y f=1 |p|=|x|×|y|=0.11010010所以[x×y]原=1.11010010补码一位乘法[x]补=11.0001 [y]补=0.1110 [--x]补=11.0001部分积y n y n+100.0000 0.11100→00.00000 0.1110+00.111100.11110→00.011110 0.111→00.0011110 0.11→00.00011110 0.1+11.000111.00101110[x×y]补=11.001011102)原码一位乘法|x|=00.110 |y|=0.010部分积乘数y n00.000 0.010+00.00000.000→00.0000 0.01+00.11000.1100→00.01100 0.0+00.00000.01100 0→00.001100P f=x f⊕y f=0 |p|=|x|×|y|=0.001100所以[x×y]原=0.001100补码一位乘法[x]补=11.010 [y]补=1.110 [--x]补=00.110部分积y n y n+100.000 1.1100→00.0000 1.110+00.11000.1100→00.01100 1.11→00.001100 1.1所以[x×y]补=0.0011002.101)原码两位乘法|x|=000.1011 |y|=00.0001 2|x|=001.0110部分积乘数c000.0000 00.00010+000.1011000.1011→000.001011 0.000→000.00001011 00.0P f=x f⊕y f=1 |p|=|x|×|y|=0.00001011所以[x×y]原=1.00001011补码两位乘法[x]补=000.1011 [y]补=11.1111 [--x]补=111.0101部分积乘数y n+1000.0000 11.11110+111.0101111.0101→111.110101 11.111→111.11110101 11.1所以[x×y]补=111.11110101 x×y=--0.000010112)原码两位乘法|x|=000.101 |y|=0.111 2|x|=001.010 [--|x| ]补=111.011部分积乘数c000.000 0.1110+111.011111.011→111.11011 0.11+001.010001.00011→000.100011P f=x⊕y f=0 |p|=|x|×|y|=0.100011所以[x×y]原=0.100011补码两位乘法[x]补=111.011 [y]补=1.001 [--x]补=000.101 2[--x]补=001.010部分积乘数y n+1000.000 1.0010+111.011111.011→111.111011 1.00+001.010001.00011→000.100011所以[x×y]补=0.1000112.111) 原码不恢复余数法|x|=00.1010 |y|=00.1101 [--|y| ]补=11.0011部分积商数00.1010+11.00111101101 0←11.1010+00.110100.0111 0.1←00.1110+11.001100.0001 0.11←00.0010+11.001111.0101 0.110←01.1010+00.110111.0111 0.1100+00.110100.0100所以[x/y]原=0.1100 余数[r]原=0.0100×2—4补码不恢复余数法[x]补=00.1010 [y]补=00.1101 [--y]补=11.0011部分积商数00.1010+11.001111.1101 0←11.1010+00.110100.0111 0.1←00.1110+11.001100.0001 0.11←00.0010+11.001111.0101 0.110←10.1010+00.110111.0111 0.1100+00.110100.0100所以[x/y]补=0.1100 余数[r]补=0.0100×2—42)原码不恢复余数法|x|=00.101 |y|=00.110 [--|y| ]补=11.010部分积商数00.101+11.01011.111 0←11.110+00.11000.100 0.1←01.000+11.01000.010 0.11←00.100+11.01011.110 0.110+00.11000. 100所以[x/y]原=1.110 余数[r]原=1.100×2—3补码不恢复余数法[x]补=11.011 [y]补=00.110 [--y]补=11.010部分积商数11.011+00.11000.001 1←00.010+11.01011.100 1.0←11.000+00.11011.110 1.00←11.100+00.11000.010 1.001+11.01011.100所以[x/y]补=1.001+2—3=1.010 余数[r]补=1.100×2—32.121)[x]补=21101×00.100100 [y]补=21110×11.100110=21110×00.010010小阶向大阶看齐:[x]补21110×(00.010010+11.100110)=21110×11.111000求和:[x+y]补=[x-y]补=21110×(00.010010+00.011010)=21110×00.10110021011×11.000000 浮点表示:1011,11.000000规格化:[x+y]补=21110×00.101100 浮点表示:1110,0.101100规格化:[x-y]补=2)[x]补=20101×11.011110 [y]补=20100×00.010110=20101×00.001011小阶向大阶看齐:[y]补20101×(11.011110+00.001011)=20101×11.101001求和:[x+y]补=[x-y]补=20101×(11.011110+11.110101)=20101×00.01001121010×11.010010 浮点表示:1010,11. 010010规格化:[x+y]补=21010×00.100110 浮点表示:1010,00.100110规格化:[x-y]补=2.13见教材:P702.141)1.0001011×262)0.110111*×2-62.151)串行进位方式C1=G1+P1C0G1=A1B1,P1=A1⊕B1C2=G2+P2C1G2=A2B2,P2=A2⊕B2C3=G3+P3C2G3=A3B3,P3=A3⊕B3C4=G4+P4C3G4=A4B4,P4=A4⊕B42)并行进位方式C1=G1+P1C0C2=G2+P2G1+P2P1C0C3=G3+P3G2+P3P2G1+P3P2P1C0C4= G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C02.16参考教材P62 32位两重进位方式的ALU和32位三重进位方式的ALU 2.17“1”A3B3A2 B2 A1 B1 A0 B0-。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验课程: 计算机组成原理实验时间:
班级:姓名:学号批阅教师:
硬布线实现原码一位乘法
实验内容:
在实验箱上用硬布线方法实现原码一位乘法
实验设备:
CP226组成原理实验箱
实验设备介绍:
CP226 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右移门R、寄存器组R0-R3、程序计数器PC、地址寄存器MAR、堆栈寄存器ST、中断向量寄存器IA、输入端口IN、输出端口寄存器OUT、程序存储器EM、指令寄存器IR、微程序计数器uPC、微程序存储器uM,
以及中断控制电路、跳转控制电路。

其中运算器和中断控制电路以及跳转控制电路用CPLD 来实现,其它电路都是用离散的数字电路组成。

微程序控制部分也可以用组合逻辑控制来代替。

模型机为8 位机,数据总线、地址总线都为8位,但其工作原理与16位机相同。

模型机的指令码为8 位,根据指令类型的不同,可以有0 到 2 个操作数。

指令码的最低两位用来选择R0-R3 寄存器,在微程序控制方式中,用指令码做为微地址来寻址微程序存储器,找到执行该指令的微程序。

而在组合逻辑控制方式中,按时序用指令码产生相应的控制位。

在本模型机中,一条指令最多分四个状态周期,一个状态周期为一个时钟脉冲,每个状态周期产生不同的控制逻辑,实现模型机的各种功能。

模型机有24 位控制位以控制寄存器的输入、输出,选择运算器的运算功能,存储器的读写。

24 位控制位分别介绍如下:
XRD :外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。

EMWR:程序存储器EM 写信号。

EMRD:程序存储器EM 读信号。

PCOE:将程序计数器PC 的值送到地址总线ABUS 上。

EMEN:将程序存储器EM 与数据总线DBUS 接通,由EMWR和EMRD决定是将DBUS 数据写到EM 中,还是从EM 读出数据送到DBUS。

IREN:将程序存储器EM 读出的数据打入指令寄存器IR 和微指令计数器uPC。

EINT:中断返回时清除中断响应和中断请求标志,便于下次中断。

ELP:PC 打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。

MAREN:将数据总线DBUS 上数据打入地址寄存器MAR。

MAROE:将地址寄存器MAR 的值送到地址总线ABUS 上。

OUTEN:将数据总线DBUS 上数据送到输出端口寄存器OUT 里。

STEN:将数据总线DBUS 上数据存入堆栈寄存器ST 中。

RRD:读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。

RWR:写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。

CN:决定运算器是否带进位移位,CN=1 带进位,CN=0 不带进位。

FEN:将标志位存入ALU内部的标志寄存器。

X2、X1、X0 三位组合来译码选择将数据送到DBUS 上的寄存器。

实验课程: 计算机组成原理实验时间: 2008年1月日
班级: 计科0501 姓名:李征学号:051401028 批阅教师:
WEN:将数据总线
AEN:将数据总线DBUS 的值打入累加器A中。

S2、S1、S0三位组合决定ALU做何种运算。

实验原理:
.原码一位乘法算法
原码一位乘法是从手算演变而来的,即用两个操作数的绝对值相乘,乘积的符号为两操作数符号的异或值(同号为正,异号为负)。

乘积P=|X|×|Y|
符号Ps=Xs⊕Ys
式中:Ps为乘积的符号,Xs和Ys为被乘数和乘数的符号。

原码一位乘法的规则:
⑴参加运算的操作数取其绝对值;
⑵令乘数的最低位为判断位,若为“1”,加被乘数,若为“0”,不加被乘数(加0);
⑶累加后的部分积以及乘数右移一位
⑷重复n次⑵和⑶;
⑸符号位单独处理,同号为正,异号为负。

通常,乘法运算需要3个寄存器。

被乘数存放在B寄存器中;乘数存放在C寄存器中;
实验课程: 计算机组成原理实验时间: 2008年1月日
班级: 计科0501 姓名:李征学号:051401028 批阅教师: A寄存器用来存放部分积与最后乘积的高位部分,它的初值为0。

运算结束后寄存器C 中不再保留乘数,改为存放乘积的低位部分。

例:已知:X=0.1101,Y=-0.1011,求:X×Y。

|X|=00.1101→B,|Y|=.1011→C,0→A
原码一位乘法示例
A C 说明
00.0000 1011
+|X| 00.1101 C4=1,+|X|
00.1101
→ 00.0110 1101 部分积右移一位
+|X| 00.1101 C4=1,+|X|
01.0011
→ 00.1001 1110 部分积右移一位+0 00.0000 C4=0,+0
00.1001
→ 00.0100 1111 部分积右移一位+|X| 00.1101 C4=1,+|X|
01.0001
→00.1000 1111 部分积右移一位
∵PS=XS⊕YS=0⊕1=1
实验课程: 计算机组成原理实验时间: 2008年1月日
班级: 计科0501 姓名:李征学号:051401028 批阅教师:
原码一位乘法运算的实现
A、B、C是n位的寄存器,A寄存器和C寄存器是级联在一起的,在右移控制信号的作用下,A寄存器最低一位的值将移入C寄存器的最高位。

C寄存器的最低位的值作为字级与门的控制信号,以控制加被乘数还是不加被乘数(即加0)。

C寄存器中的乘数在逐次右移过程中将逐步丢失,取而代之的是乘积的低位部分。

实验设计:
1.实验中只需要十二位控制信号K0----K11
连接线路:
K1和K0
2.实验步骤
以简单的0011×0010为例进行硬布线实验操作.
(1)实验思想:
R0存部分积及高位,R2存结果的低位
①判断乘数的最低位,并在判断后将其右移一位存入R2中,等待部分积的最低位移入
实验课程: 计算机组成原理实验时间: 2008年1月日
班级: 计科0501 姓名:李征学号:051401028 批阅教师:
R2中.即每判断一次,则乘数将舍去一个低位.根据对R2的最低位的判断确定R0是加0(R2的低位为0)还是加被乘数(R2的最低位为1),然后判断部分积的最后一位(同时将部分积右移一位存入R0,等待下一次的求和),将最后一位X入R2中(移位方法:将X000与R2相加,并将结果存入R2中)
②继续执行①,知道循环计数结束.
(2)系统清零和手动状态设定:K23-K16开关置零,按[RST]钮,按[TV/ME]键三次,
进入"Hand......"手动状态。

(3)实验操作按下表进行:
实验中遇到的问题:
实验中遇到的最大问题就是寄存器的之间值的传递问题,综合了前段时间实验所用到的80%的控制方法.尽管前些次基础实验这些控制信号都用过,但设计实验的时候将所有的控制信号要综合运用,而且由于硬布线时R0-R3的选择控制信号与算术逻辑运算功能控制信号有所交叉所以存放和的寄存器应不影响算术运算功能才行,所以将求和后的部分积的结果存入R0,而判断最低位的结果从D直通器可看到,从R3中也可看到.
华中农业大学实验报告
实验课程: 计算机组成原理实验时间: 2008年1月日
班级: 计科0501 姓名:李征学号:051401028 批阅教师:
实验中遇到的另一个问题就是步骤的清晰度.虽然只设计了四位的乘法,但步骤却很多.虽然在每次实验前都已经将所有的步骤写清,但在实验中由于新问题的出现,往往不能按事先拟好的步骤实现,故需要随时修改随时记录.直至最终实验得到正确的结果,并在反复的检验中验证得出准确的合理的实验步骤.
实验心得
学校给我们提供了实验环境,一流的实验设施,还配备了尽责热心的老师,
我们有十分充足的时间来学习和设计。

开放性的实验环境也为我们发挥自己
的创造力提供了充分的条件。

在这里我们不仅学到了许多在课堂上学不到的东西,而且锻炼了我们的动手和实践能力。

首先,这次课程设计是对计算机组成原理课程的加深和延续,很多内容虽然课本上没有详细讲解,但是很多东西是融会贯通的。

所以这次实验,我们对计算机的工作原理有了更进一步的了解,尤其是指令系统的工作原理,各个部件的工作之间的协调和配合等。

同时,这次课程设计大大锻炼了我们的动手能力,由于是手工接线,任何一条线出现问题都会影响到整个系统的执行,所以当问题变得莫名其妙毫无头绪之时,保持清醒的头脑,冷静的分析变得尤为重要。

同时,同学间组成小组共同工作,不仅增加了大家交流互助的机会,更是培养了我们的协作精神,让我们深刻体会到了协作在质量和效率上的优势。

总之,本次实验是一次难得的学习与发挥的机会,在实验及文档制作阶段我都体会到了思考与创造的巨大乐趣。

特别感谢:
由于对控制信号的组合出现问题,课后时间我到实验室练习寻找正确的控制信号组合,虽然只有我一个人实验,实验室夏老师仍热情的接待了我,并给予了很多帮助.特别感谢别老师课上课下给予的鼓励和教导,使得这次实验得已成功完成.并感谢四班的郑同学和阮同学,虽然我们的设计思想不尽相同,但他们的成功和鼓励给了我实验成功的信心.并谢谢本班同学们给予的支持和帮助.
李征051401028
计算机组成原理设计实验
DICE -CP226环境下
硬布线控制实现原码一位乘法。

相关文档
最新文档