当前位置:文档之家› 原码一位乘法

原码一位乘法

实验课程: 计算机组成原理实验时间:
班级:姓名:学号批阅教师:
硬布线实现原码一位乘法
实验内容:
在实验箱上用硬布线方法实现原码一位乘法
实验设备:
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环境下
硬布线控制实现原码一位乘法。

相关主题