您好,欢迎来到微智科技网。
搜索
您的当前位置:首页原码一位乘法

原码一位乘法

来源:微智科技网
 华 中 农 业 大 学 实 验 报 告

实验课程: 计算机组成原理 实验时间:

班级: 姓名: 学号 批阅教师: 硬布线实现原码一位乘法 实验内容:

在实验箱上用硬布线方法实现原码一位乘法 实验设备:

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 批阅教师:

X0 X1 X0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 输出寄存存器 IN_OE 外部输入门 IA_OE 中断向量 ST_OE 堆栈寄存器 PC_OE PC寄存器 D_OE 直通门 R_OE 右移门 L_OE 左移门 没有输出 WEN:将数据总线 DBUS 的值打入工作寄存器 W 中。 AEN: 将数据总线 DBUS 的值打入累加器 A中。 S2、S1、S0三位组合决定 ALU做何种运算。 S2 S1 S0 功能 0 0 0 A+W 加 0 0 1 A-W 减 0 1 0 A|W 或 0 1 1 A&W 与

1 0 0 A+W+C 带进位加

1 0 1 A-W-C 带进位 减

1 1 0 ~A A取反

1 1 1 A 输出A

实验原理:

.原码一位乘法算法

原码一位乘法是从手算演变而来的,即用两个操作数的绝对值相乘,乘积的符号为两操作数符号的异或值(同号为正,异号为负)。 乘积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 ∴XY=-0.10001111 原码一位乘法流程图 |X| B,|Y| C→→ 0 A,0 CR→→ NYC=1?n (A+0) A→ (A+B) A→½½½ ½½ C C→ C C→ CR+1→CR NCR=n? Y XS⊕ Y→S S PEnd 华 中 农 业 大 学 实 验 报 告

实验课程: 计算机组成原理 实验时间: 2008年1月 日

班级: 计科0501 姓名:李征 学号:051401028 批阅教师: 原码一位乘法运算的实现

A、B、 C是n位的寄存器,A寄存器和C寄存器是级联在一起的,在右移控制信号的作用下,A寄存器最低一位的值将移入C寄存器的最高位。C寄存器的最低位的值作为字级与门的控制信号,以控制加被乘数还是不加被乘数(即加0)。C寄存器中的乘数在逐次右移过程中将逐步丢失,取而代之的是乘积的低位部分。 实验设计:

1.实验中只需要十二位控制信号K0----K11 连接线路:

连接 信号孔 接入孔 作用 状态说明

1 J3 将K23-K16接入DBUS[7:0] 实验模式:手动 J1座

2 S0 K0 运算器功能选择

3 S1 K1 运算器功能选择

4 S2 K2 运算器功能选择

5 AEN K3 选通A 低电平有效

6 WEN K4 选W 低电平有效

7 Cy IN K5 运算器进位输入

8 X0 K5 寄存器输出选择

9 X1 K6 寄存器输出选择

10 X2 K7 寄存器输出选择

11 Cy IN K8 移位进位输入

12 CN K9 移位是否带进位 0:不带进位 1:带

13 RWR K10 寄存器组写使能 低电平有效

14 RRD K11 寄存器组读使能 低电平有效

15 SA K0 寄存器选择A

16 SB K1 寄存器选择B

17 CK 已连 上升沿打入 ALU工作脉冲 K1和K0的选择功能: 选择 K1(SB) K0(SA) 0 0 R0 0 1 R1 1 0 R2 1 1 R3

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)实验操作按下表进行: 步骤 (信号) 1(J1J3) 2(J1J3) 3(J1J3) 4(J1J2) 5(J1J3) 6(J1J3) 7(J1J3) 8(J1J2) 9(J1J2) 控制信号(K11-K0) 11 10 9 8 7 6 5 4 3 2 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 R0置0 0 0 0 0 0 1 1 0 0 1 被乘数存入R1 作用 K19-K16置数 0000 0011 结果 R0=0000 R1=0011 R2=0010 A=0010 W=0001 D=0000 W=0000 R2=0001 A=0000 W=0000 D=0000 R=0000 R0=0000 A=0000 W=0001 D=0000 0 0 0 0 0 1 1 0 1 0 乘数存入R2 0010 0 0 1 1 1 1 0 0 1 0 将R2移入A 0 0 0 0 0 1 0 0 0 将0001写入W 0001 0 0 0 0 0 0 1 0 1 1 A&W判断0001 R2的最低位 0 0 0 0 0 0 1 0 0 0 将0000写入W 0 0 1 0 1 1 1 0 1 0 将右移门值写入R2 0 0 0 0 0 0 1 0 0 0 将0000写入W 0 0 0 0 0 0 1 0 0 0 R0+0000 0 0 1 0 1 1 1 0 0 0 将右移门值移入R0 0 0 1 0 0 1 0 0 0 0 将D值移入A 0 0 0 0 0 0 1 0 0 0 将0001写入W 0 0 0 0 0 0 1 0 1 1 A&W判断部分积的最低位 0000 0 0 1 1 1 1 0 0 0 0 将R0移入A 0000 0001 10(J1J3) 1 11(J1J3) 1 12(J1J2) 1 13(J1J2) 1 14(J1J3) 1 15(J1J3) 1 16(J1J2) 0 1 0 0 1 1 1 1 0 0 1 0 将R2移入A A=0001 17(J1J3) 1 18(J1J3) 1 19(J1J2) 1 20(J1J3) 1 21(J1J3) 1 22(J1J3) 1 23(J1J2) 1 24(J1J2) 0 25(J1J2) 0 26(J1J3) 1 27(J1J2) 1 28(J1J2) 1 29(J1J3) 1 30(J1J3) 1 1 1 1 1 0 1 0 1 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 将0000写入W 0 0 0 0 0 0 0 1 0 0 R2+0000 0 0 1 0 0 1 0 0 0 0 将D移入A 0 0 0 0 0 0 1 0 0 0 将0001写入W 0000 0001 W=0000 D=0001 A=0001 W=0001 D=0001 W=0000 R2=0000 A=0000 W=0011 D=0011 R=0001 R0=0001 A=0011 W=0001 D=0001 0 0 0 0 0 0 1 0 1 1 A&W判断 R2的最低位 0 0 0 0 0 0 1 0 0 0 将0000写入W 0 0 1 0 1 1 1 0 1 0 将右移门值移入R2 0000 0 0 1 1 1 1 0 0 0 0 将R0移入A 0 0 1 1 1 0 1 0 0 1 将R1移入W 0 0 0 0 0 0 1 0 0 0 R1+R0 0 0 1 0 1 1 1 0 0 0 将R移入R0 0 0 1 0 0 1 0 0 0 0 将D移入A 0 0 0 0 0 0 1 0 0 0 将0001写入W 0 0 0 0 0 0 1 0 1 1 A&W判断部分积的最低位 0 0 0 0 0 0 1 0 0 0 将1000写入W 0 0 0 0 0 0 1 0 0 0 R2+W=1000 0 0 1 0 1 1 1 0 1 0 将右移门R值移入R2 0 0 1 0 0 1 0 0 0 0 将D移入A 0 0 0 0 0 0 1 0 0 0 将0001写入W 0 0 0 0 0 0 1 0 1 1 A&W判断R2最低位 0 0 0 0 0 0 1 0 0 0 将0000写入W 0 0 0 0 0 0 1 0 0 0 R0+0000 0001 31(J1J2) 0 32(J1J3) 1 33(J1J3) 1 34(J1J2) 1 35(J1J2) 1 36(J1J3) 1 37(J1J3) 1 38(J1J2) 0 39(J1J3) 1 40(J1J3) 1 41(J1J2) 1 42(J1J2) 1 43(J1J3) 1 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 0 将R2移入A 1000 0001 A=0000 W=1000 D=1000 R=0100 R2=0100 A=1000 W=0001 D=0000 A=0001 W=0000 D=0001 R=0000 R0=0000 A=0001 W=0001 0 0 1 1 1 1 0 0 0 0 将R0移入A 0000 0 0 1 0 1 1 1 0 0 0 将R移入R0 0 0 1 0 0 1 0 0 0 0 将D移入A 0 0 0 0 0 0 1 0 0 0 将0001写入 0001 W 44(J1J3) 1 0 0 0 0 0 0 0 1 0 1 1 A&W判断部分积的最低位 0 0 0 0 0 0 1 0 0 0 将1000写入W 0 0 0 0 0 0 1 0 0 0 将R+1000 D=0001 45(J1J2) 0 46(J1J3) 1 47(J1J3) 1 48(J1J2) 1 49(J1J2) 1 50(J1J3) 1 51(J1J3) 1 52(J1J2) 0 53(J1J3) 1 54(J1J3) 1 55(J1J2) 1 56(J1J2) 1 57(J1J3) 1 58(J1J3) 1 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 0 0 1 0 将R2移入A 1000 A=0100 W=1000 D=1100 R=0110 R2=0110 A=1100 W=0001 D=0000 A=0000 W=0000 D=0000 R=0000 R0=0000 A=0000 W=0000 D=0000 0 0 1 0 1 1 1 0 1 0 将R移入R2 0 0 1 0 0 1 0 0 0 0 将D移入A 0 0 0 0 0 0 1 0 0 0 将0001写入W 0001 0 0 0 0 0 0 1 0 1 1 A&W判断 R2的最低位 0 0 1 1 1 1 0 0 0 0 将R0移入A 0 0 0 0 0 0 1 0 0 0 将0000写入W 0 0 0 0 0 0 0 1 0 0 R0+0000 0000 0 0 1 0 1 1 1 0 0 0 将R移入R0 0 0 1 0 0 1 0 0 0 0 将D移入A 0 0 0 0 0 0 1 0 0 0 将0001写入W 0 0 0 0 0 0 1 0 1 1 A&W判断部分积的最低位 0 0 0 0 0 0 1 0 0 0 将0000写入W 0 0 0 0 0 0 1 0 0 0 R2+0000 0001 59(J1J2) 0 60(J1J3) 1 61(J1J3) 1 62(J1J3) 1 1 1 1 0 0 0 1 1 1 1 0 0 1 0 将R2移入A 0000 A=0110 W=0000 D=0110 R2=0110 0 0 1 0 0 1 1 0 1 0 将D移入R2 因为以四位为例,所以计数为4,运算结束.R0=0000,R2=0110 结果为0011×0010=00000110

实验中遇到的问题:

实验中遇到的最大问题就是寄存器的之间值的传递问题,综合了前段时间实验所用到的80%的控制方法.尽管前些次基础实验这些控制信号都用过,但设计实验的时候将所有的控制信号要综合运用,而且由于硬布线时R0-R3的选择控制信号与算术逻辑运算功能控制信号有所交叉所以存放和的寄存器应不影响算术运算功能才行,所以将求和后的部分积的结果存入R0,而判断最低位的结果从D直通器可看到,从R3中也可看到.

华 中 农 业 大 学 实 验 报 告

实验课程: 计算机组成原理 实验时间: 2008年1月 日

班级: 计科0501 姓名:李征 学号:051401028 批阅教师:

实验中遇到的另一个问题就是步骤的清晰度.虽然只设计了四位的乘法,但步骤却很多.虽然在每次实验前都已经将所有的步骤写清,但在实验中由于新问题的出现,往往不能按事先拟好的步骤实现,故需要随时修改随时记录.直至最终实验得到正确的结果,并在反复的检验中验证得出准确的合理的实验步骤.

实验心得

学校给我们提供了实验环境,一流的实验设施,还配备了尽责热心的老师,我们有十分充足的时间来学习和设计。开放性的实验环境也为我们发挥自己的创造力提供了充分的条件。在这里我们不仅学到了许多在课堂上学不到的

东西,而且锻炼了我们的动手和实践能力。 首先,这次课程设计是对计算机组成原理课程的加深和延续,很多内容虽然课本上没有详细讲解,但是很多东西是融会贯通的。所以这次实验,我们对计算机的工作原理有了更进一步的了解,尤其是指令系统的工作原理,各个部件的工作之间的协调和配合等。

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

同时,同学间组成小组共同工作,不仅增加了大家交流互助的机会,更是培养了我们的协作精神,让我们深刻体会到了协作在质量和效率上的优势。 总之,本次实验是一次难得的学习与发挥的机会,在实验及文档制作阶段我都体会到了思考与创造的巨大乐趣。

特别感谢:

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

李征 051401028

计算机组成原理设计实验

DICE -CP226环境下

硬布线控制实现原码一位乘法

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务