课设必备之计算机组成原理课程设计--加减法指令的实现讲解

合集下载

数字电路课程设计之加减法运算电路设计(1)

数字电路课程设计之加减法运算电路设计(1)

设计资料1加减法运算电路设计1.设计内容及要求1.设计一个4位并行加减法运算电路,输入数为一位十进制数,且作减法运算时被减数要大于或等于减数。

2.led 灯组成的七段式数码管显示置入的待运算的两个数,按键控制运算模式,运算完毕,所得结果亦用数码管显示。

3.提出至少两种设计实现方案,并优选方案进行设计2.结构设计与方案选择2.1电路原理方框图电路原理方框图如下→ →图1-1二进制加减运算原理框图如图1-1所示,第一步置入两个四位二进制数(要求置入的数小于1010),如(1001)2和(0111)2,同时在两个七段译码显示器上显示出对应的十进制数9和7;第二步通过开关选择运算方式加或者减;第三步,若选择加运算方式,所置数送入加法运算电路进行运算,同理若选择减运算方式,则所置数送入减法运算电路运算;第四步,前面所得结果通过另外两个七段译码器显示。

即:若选择加法运算方式,则(1001)2+(0111)2=(10000)2 十进制9+7=16置数开关选择运算方式加法运算电路减法运算电路译码显示计算结果显示所置入的两个一位十进制数并在七段译码显示器上显示16.若选择减法运算方式,则(1001)2-(0111)2=(00010)2十进制9-7=2 并在七段译码显示器上显示02.2.2加减运算电路方案设计2.2.1加减运算方案一如图2-2-1所示:通过开关S2——S9接不同的高低电平来控制输入端所置的两个一位十进制数,译码显示器U13和U15分别显示所置入的两个数。

数A 直接置入四位超前进位加法器74LS283的A4——A1端,74LS283的B4——B1端接四个2输入异或门。

四个2输入异或门的一输入端同时接到开关S1上,另一输入端分别接开关S6——S9,通过开关S6——S9控制数B的输入。

当开关S1接低电平时,B与0异或的结果为B,通过加法器74LS283完成两个数A和B的相加。

当开关S1接高电平时,B与1异或的结果为B非,置入的数B在74LS283的输入端为B的反码,且74LS283的进位信号C0为1,其完成S=A+B (反码)+1,实际上其计算的结果为S=A-B完成减法运算。

计算机组成原理实验报告-八位补码加减法器的设计与实现

计算机组成原理实验报告-八位补码加减法器的设计与实现

计算机科学与技术学院计算机组成原理实验报告书实验名称八位补码加/减法器的设计与实现班级学号姓名指导教师日期成绩实验1八位补码加/减法器的设计与实现一、实验目的1.掌握算术逻辑运算单元(ALU)的工作原理。

2.熟悉简单运算器的数据传送通路。

3.掌握8位补码加/减法运算器的设计方法。

4.掌握运算器电路的仿真测试方法二、实验任务1.设计一个8位补码加/减法运算器(1)参考图1,在QUARTUS II里输入原理图,设计一个8位补码加/减法运算器。

(2)创建波形文件,对该8位补码加/减法运算器进行功能仿真测试。

(3)测试通过后,封装成一个芯片。

2.设计8位运算器通路电路参考下图,利用实验任务1设计的8位补码加/减法运算器芯片建立运算器通路。

3.利用仿真波形,测试数据通路的正确性。

设定各控制信号的状态,完成下列操作,要求记录各控制信号的值及时序关系。

(1)在输入数据IN7~IN0上输入数据后,开启输入缓冲三态门,检查总线BUS7~BUS0上的值与IN0~IN7端输入的数据是否一致。

(2)给DR1存入55H,检查数据是否存入,请说明检查方法。

(3)给DR2存入AAH,检查数据是否存入,请说明检查方法。

(4)完成加法运算,求55H+AAH,检查运算结果是否正确,请说明检查方法。

(5)完成减法运算,分别求55H-AAH和AAH-55H,检查运算结果是否正确,请说明检查方法。

(6)求12H+34H-56H,将结果存入寄存器R0,检查运算结果是否正确,同时检查数据是否存入,请说明检查方法。

三、实验要求(1)做好实验预习,掌握运算器的数据传送通路和ALU的功能特性。

(2)实验完毕,写出实验报告,内容如下:①实验目的。

②实验电路图。

③按实验任务3的要求,填写下表,以记录各控制信号的值及时序关系。

表中的序号表示各控制信号之间的时序关系。

要求一个控制任务填一张表,并可用文字对有关内容进行说明。

⑤实验体会与小结。

四、实验预习内容1.实验电路设计原理及思路说明本实验利用基本逻辑门电路设计一位全加器(FA),如表1:加法又可以实现减法,所以使用了一个M输入来进行方式控制加减。

汇编语言课程设计报告——实现加减乘除四则运算的计算器讲解

汇编语言课程设计报告——实现加减乘除四则运算的计算器讲解

汇编语言课程设计报告(2011 -- 2012年度第2学期)实现加减乘除四则运算的计算器专业_____________ 计算机科学与技术__________学生姓名____________________________________班级_______________________________________学号_______________________________________指导教师____________________________________完成日期___________________________________目录目录 (2)1概述 (1)1.1设计目的 (1)1.2设计内容 (1)2系统需求分析 (1)2.1 系统目标 (1)2.2主体功能 (1)2.3开发环境 (1)3系统概要设计 (2)3.1系统的功能模块划分 (2)3.2系统流程图 (3)4系统详细设计 (3)5测试 (4)5.1测试方案 (4)5.2测试结果 (4)6小结 (5)参考文献 (6)附录 (7)附录源程序清单 (7)实现加减乘除四则运算的计算器1.1设计目的本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上, 旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法, 提高分析问题、解决问题的综合应用能力。

1.2设计内容能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下:c:\tasm>js 3+252系统需求分析2.1系统目标本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。

比如,十进制数的加减乘除四则运算。

我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。

计算机组成原理6运算方法加法PPT课件

计算机组成原理6运算方法加法PPT课件

(2)A=10 B=7 10+7 :0 1010 0 0111 1 0001
溢出= FA FBFh
(4)A= -10 B= -7 -10+(-7):1 0110
1 1001 0 1111 FA FB Fh
2. 硬件判断逻辑二(Cf与C的关系)
符号位进位Cf尾数最高位进位C
(1)A=3 B=2
(2)A=10 B=7
[-Y]补=1 1011
(–9补码)
1 0111
注意:某数的补码表示与某数变补的区别
例. 1 0101原 补码表示 1 1011 符号位不变;
0 0101原 补码表示 0 0101
负数尾数改变, 正数尾数不变。
1 0011补 变补 0 1101 符号位改变,
0 0011补 变补 1 1101
尾数改变。
3)补码----负数
(1)单符号位 :
1 1011
左移
1 0110
右移
1 1011
右移
1 1101
移位规则
(2)双符号位:
11 0110
左移
10 1100
右移
11 0110
右移
11 1011
数符不变 (单:符号位不变;双:第一符号位不变)。
左移空位补0 右移移入符号位
(第二符号位移至尾数最高位)。
定点补码加减运算
数用补码表示 符号位参加运算
补码加减运算规则
[X+Y]补=[X]补+[Y]补 [X-Y]补=[X]补+[-Y]补
操作为“加” 时,两数直接相加。
例. 求[X+Y]补
1) X=3 [X]补=0 0011 Y=2 [Y]补=0 0010

3.5加法指令实现原理

3.5加法指令实现原理

加法指令实现原理
计算机的工作原理与硬件体系结构
用ALU、指令存储器、数据存储器
实现加法
计算机的工作原理与硬件体系结构
3.5加法数据连路图
加法数据连路图由四部分组成:
指令存储器、数据存储器、控制
器、ALU单元
ALU
ALU具有2个输入,每个输入为一排数
1个输出,输入数据操作后的结果
由控制线决定加减法运算
存储器
存储器由触发器控制数据读取,触发器由4个与、非门实现,通过数据链路选择器,存储器即可实现对地址的访问。

Enable
控制器
控制器示意图[31-26]:指令操作的前6位
4个输出:RegDst、ALUOp、ALUSrc
、RegWrite:
例1
例1、c = a+b: 将地址a(00000)中存的数和地址b(00010)中存的数相加,存在地址c(00100)中
操作码RS
RT RD other 00000100000
0000000000000010001000
10
1115162021252631
例2
例2、c = a+FF00H: 将地址a(00000)中存的数和FF00H相加,结果存在地址c(00010)中
001100
操作码RS RT Immediate 00000000101111111100000000
15
162021252631
小结
与非门实现ALU
与非门实现触发器
与非门实现数据存储器
与非门实现控制器。

计算机组成原理补码加减法运算37省公开课一等奖全国示范课微课金奖PPT课件

计算机组成原理补码加减法运算37省公开课一等奖全国示范课微课金奖PPT课件
象,称为 “溢出”。
下溢
上溢
机器定点小数表示
发生溢出原因,是因为运算结果超出编码所能表示数字大小。 两个正数相加: 结果大于机器所能表示最大正数,称为上溢; 两个负数相加:结果小于机器所能表示最小负数,称为下溢。
计算机组成原理
7
第7页
例:x=+0.1011, y=+0.1001, 求x+y。
解:
[x]补=0.1011 [x]补
与非
NAND
T
或非
NOR
T

NOT
T

AND
2T

OR
2T
异或
XOT
3T
异或非
XNOR
3T
接线逻辑 (与或非)
AOI
T+TRC
计算机组成原理
T被定义为对应 于单级逻辑电路 单位门延迟。
T通常采取一个 “与非”门或一 个“或非”门时 间延迟来作为度 量单位。
20
第20页
(1)对一位全加器(FA)来说,Si时间延迟为6T(每级异或门延迟3T); Ci+1时间延迟为5T。
(1)单符号位检测方法1
设两数符号位分别为 S1、S2 和数符号位 SC
溢出逻辑表示式为:
V=S1 S2 Sc + S1 S2 Sc
计算机组成原理
[x]补 1. 0 0 1 1 + [y]补 1. 0 1 0 1
[x+y]补 0. 1 0 0 0
x0
FA
z0
y0
判断
V
电路
判断电路
9
第9页
(2)单符号位检测方法2
P1
& =1

计算机组成原理第二章 第7讲 基本的加减法

计算机组成原理第二章 第7讲 基本的加减法

② 全加器(FA) 1位全加器真值表
输入
输出
Ai Bi Ci Si Ci+1 00000
00110
01010
01101
10010
10101
11001
11111
按照真值表可写出FA逻辑方程:
依照真值表,通过离散数学相关知识得到 描述其逻辑关系的1位全加器逻辑方程:
S A B C i
基本的加法/减法器
2.2.4基本的加法/减法器
基本的加法/减法器
• 半加器 Hi=Ai ⊕ Bi 不考虑进位
• 全加器 考虑低位进位Ci-1和向高位的进位Ci
各种逻辑门的图形符号
加法器
① 半加器——不考虑进位
YH
H n X n Yn X n Y n X n Yn
加法器
将若干个1位FA全加器串连即可实现N位行 波进位加法/减法器。
行(xing)波进位:
• 串行进位,高位的运算要等待低位的进位传到 才能执行,区别于并行进位或超前进位。
对行波进位加法/减法器的解读
1.行波进位加/减法器 n个1位的全加器(FA)可级联成一个n位
的行波进位加减器
2.M为方式控制输入线(控制进行加法,还 是减法运算):
4. n位行波进位加法器的延迟时间ta的计算 当前位全加和Si必须等低位进位Ci-1来到
后才能进行,加法时间与位数有关。
定义T:单级逻辑电路的单位门延迟 3T:异或门的延迟时间
FA逻辑电路和框图
11位位补补码码运运算算的的加加法法减减法法器器FA
加法器开启之后经过3T:
• 确定了是加运算还是减运算
当M=0时,作加法(A+B)运算; 当M=1时,作减法(A-B)运算;

计算机组成原理补码加减法运算

计算机组成原理补码加减法运算
[ x ]补+[ y ]补=[ x+y ]补
(mod 2)
特点:不需要事先判断符号,符号位与码值位一起参加运算。 符号位相加后若有进位,则舍去该进位数字。
在模2意义下,任意两数的补码之和等于该两数之和的补码。 这是补码加法的理论基础。
补码加法的特点: (1)符号位要作为数的一部分一起参加运算; (2)在模2的意义下相加,即大于2的进位要丢掉。
符号位出现“10”,表示已溢出,负溢出。即结果小于-1
计算机组成原理
15
基本的二进制加法/减法器
1.一位全加器 逻辑方程
Si Ai Bi Ci
Ci1 Ai Bi ( Ai Bi )Ci
一位全加器真值表
输入
输出
Ai
Bi
Ci
Si
Ci+1
000
0
0
001
1
0
010
1
0
011
0
1
100
1
0
101
Cn-1 = Gn-1+Pn-1Gn-2+Pn-1Pn-2Gn-3 …+Pn Pn-1 …P1C0
……
Cn = Gn+PnGn-1+PnPn-1Gn-2 +PnPn-1Pn-2Gn-3…
+ PnPn-1 Pn-2 …P1C0
位数越长,进位链电路复杂度越高
通常按照4位一组进行分组运算
计算机组成原理
23
公式证明: 只要证明[–y]补= –[y]补, 上式即得证。
证明:




[x+y]补=[x]补+[ y]补 y = -x
(mod 2)
[0]补 =[x]补 + [ -x]补

微机原理与接口技术:加法减法运算指令

微机原理与接口技术:加法减法运算指令

1. 加法运算指令和调正指令ADD,ADC,INC,AAA,DAA(1)不带进位的加法运算指令ADDADD指令完成两个操作数相加,并将结果保存在目的操作数中。

指令格式:ADD OPRD1, OPRD2功能:操作数OPRD1与OPRD2相加,结果保存在OPRD1中。

说明:操作数OPRD1可以是累加器AL或AX,也可以是其它通用寄存器或存储器操作数,OPRD2可以是累加器、其它通用寄存器或存储器操作数,还可以是立即数。

OPRD1和OPRD2不能同时为存储器操作数,不能为段寄存器。

ADD指令的执行对全部6个状态标志位产生影响。

例如:ADD AL, BL ;AL+BL结果存回AL中。

ADD AX, SI ;AX+SI结果存回AX中。

ADD BX, 3DFH ;BX+03DFH结果存回BX中。

ADD DX, DA TA[BP+SI] ;DX与内存单元相加,结果存回DX中。

ADD BYTE PTR[DI], 30H ;内存单元与30H相加,结果存回内存单元中。

ADD [BX], AX ;内存单元[BX]与AX相加,结果存回[BX]中。

ADD [BX+SI], AL ;内存单元与AL相加,结果存回内存单元中。

【例题3-3】求D9H与6EH的和,并注明受影响的标志位状态。

MOV AL, 0D9HMOV BL, 6EHADD AL, BL结果AL=47H,标志位CF=1,PF=1,AF=1,ZF=0,SF=0,OF=0(2)带进位的加法运算指令ADCADC指令完成两个操作数相加之后,再加上Flags的进位标志CF。

CF的值可能为1或0。

指令格式:ADD OPRD1, OPRD2功能:操作数OPRD1与OPRD2相加后,再加上CF的值,结果保存在OPRD1中。

说明:对操作数的要求与ADD指令一样。

例如:ADC AL, BLADC AX, BXADC [DI], 30HADC指令主要用于多字节数的加法运算,以保证低位向高位的进位被正确接收。

加减法指令的实现

加减法指令的实现

加减法指令的实现1.设计目的通过使用软件HKCPT,了解程序编译,加载的过程。

通过微单步,单拍调试,理解模型机中的数据流向。

本实验主要是设计加减法指令的实现,将汇编语言程序设计与计算机组成原理2方面的知识结合到一起利用此软件平台实现连续几个数的加减运算,从而了解逻辑运算运算单元的运行过程。

2.设计原理计算机中CPU是核心,它是通过指令和微指令的执行来工作的。

指令是计算机要完成的某一项功能。

它对应到执行的过程中是一段微程序。

一段微程序含多条为指令,而一条微指令又含多个微命令。

一个微命令驱动某个硬件部件执行某种操作。

通过这样一个关系,从而达到由计算机指令来驱动计算机各个硬部件的协调工作以实现一条指令的执行。

在各个模块中,各模块的控制的控制信号都是手动模拟产生的。

而在真正的实验系统中,模型机的运行是在微程序的控制下,实现特定指令的功能。

在本实验平台中,模型机从内存中取出、解释、执行机器指令都将由微指令和之相配合的时序来完成,即一条机器指令对应一个微程序。

3.模型机的逻辑框图其中运算器由2片74L181构成8位字长的ALU单元。

2片74LS374作为2个数据锁存器(DR1、DR2),8芯插座ALU-IN作为数据输入端,可通过短8芯扁平电缆,把数据输入端连接到数据总线上。

数据输入锁存器DR1的EDR1为低电平,并且D1CK有上升沿时,那来自数据总线的数据打入锁存器DR1。

同样使EDR2为低电平、D2CK有上升沿时把数据总线上的数据打入数据锁存器DR2。

4.指令系统及指令格式4.1指令系统此次实验涉及的指令有以下几种:MOV A, #data 将立即数传递到通用寄存器A中ADD A, RI 将寄存器RI中的数据与累加器A中的数据相加的和存入 A SUB A, RI 将累加器A中的数据与寄存器RI中的数据之差存入 ASTA addr 将寄存器中内容写入存储器中HALT 停机指令4.2指令格式一般指令由操作码和操作码组成,如下所示:操作码地址码此实验所涉及指令的格式如下:MOV指令采用双字节指令,其格式如下:7 6 5 4 3 2 1 0操作码××RiDataSTA取数据指令,其格式如下:7 6 5 4 3 2 1 0操作码××××dataaddr停机指令(HALT),其格式如下:7 6 5 4 3 2 1 0操作码××××5.微程序的设计及实现方法5.1微程序入口地址的形成在本实验平台的硬件设计是采用的24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多可有24个微操作控制信号,可由微代码直接实现。

计算机组成原理--运算方法:加减乘除

计算机组成原理--运算方法:加减乘除

计算机组成原理--运算⽅法:加减乘除补码加减法补码加法公式:[x+y]补=[x]补+[y]补补码减法:为了将减法转变为加法,需证明公式: [x-y]补=[x]补+[-y]补(证明)为了求得同时[-y]补,需要证明[-y]补=[y]补+2^-n(意义是[-y]补等于[y]补取反,末位加1)溢出检测溢出的检测可能产⽣溢出的情况两正数加,变负数,上溢(⼤于机器所能表⽰的最⼤数)两负数加,变正数,下溢(⼩于机器所能表⽰的最⼩数)定点原码乘法定点乘法原理n位乘n位积可能为2n位.乘积的最后是所有部分积之和,有n个数相加,⽽FA只有两个输⼊端,机器⼀次只能进⾏两个数的相加,不能进⾏多个数据的加法。

⼿⼯计算中,乘数的每⼀位是0还是1都可直接看见,⽽在计算机中,采⽤放乘数的寄存器的每⼀位直接决定本次相加数是被乘数还是0是很不⽅便的,若采⽤该寄存器的最低⼀位来执⾏这种判断就简便了。

计算机中执⾏乘法时,积的符号位由被乘数和乘数的符号位通过⼀个半加器(即异或门)实现。

数值部分的运算规则是:从最低位Y0开始,当乘数Yi为1时,将上次部分积加上被乘数的绝对值,然后右移⼀位,得到新的部分积;当Yi为0时,则写下全0。

然后再对乘数Y的⾼⼀位进⾏类似乘法运算。

重复“加—右移”操作N次,可得到最后的乘积。

R0存放部分积,R2存放被乘数,R1存放乘数R0清零,R2存放被乘数,R1存放乘数。

乘法开始时,“启动”信号时控制CX置1,于是开启时序脉冲T,当乘数寄存器R1最末位为“1“时,部分积Z和被乘数X在加法器中相加,其结果输出⾄R0的输⼊端。

⼀旦控制脉冲T到来,控制信号LDR0使部分积右移1位,与此同时,乘数寄存其R1也在控制信号LDR1作⽤下右移⼀位,且计数器I记数⼀次;将步骤三重复执⾏N次当计数器I=n时,计数器I的溢出信号使控制触法器CX置0,关闭时序脉冲T,乘法宣告结束原码算法存在的缺点:⼀是符号位需要单独运算,最后给运算结构以正确的符号;⼆是对于采⽤补码存储的机器,从存储器中取出的是操作数的补码,需先将其转换成原码,这样很不⽅便,⽽且影响速度。

计算机组成原理2.2定点加减法运算

计算机组成原理2.2定点加减法运算
• (1)当x﹥0,y﹥0时,有x+y﹥0
• 根据数据补码的定义
• [x]补+[y]补=x+y=[x+y]补 (mod 2)
证明[x]补+[y]补=[x+y]补
• (2)当x﹥0,y﹤0,有x+y>0, 或x+y<0两种情况 • 根据补码定义[x]补=x,[y]补=2+y • [x]补+[y]补=x+2+y=2+(x+y) • 当x+y>0时,有
• [x]补+[y]补=x+y=[x+y]补(mod 2)
[x]补+[y]补=x+2+y=2+(x+y)
证明[x]补+[y]补=[x+y]补
• 当x+y<0时,2 + (x+y) < 2, 又因(x+y)<0,
• [x]补+[y]补=2+(x+y)=[x+y]补 (mod 2)
• (3)x<0,y>0,这种情况和第2种 情况一样
上式右边分为”2”和(2+x+y)两部分。 既然
又因(x+y)<0,所以
[x]补+[y]补=2+(x+y)=[x+y]补 (mod 2)
至此我们证明了,在模2意义下,
任意两数的补码之和等于该两数之和
的补码。这是补码加法的理论基础,
其结论也适用于定点整数。
[例8] x=0.1001, y=0.0101,求x+y
因此,图中最右边的全加器的起
始进位输入端被连接到功能方式线M
上,作减法时M=1,相当于在加法器
的最低位上加1。另外,图中左边还 表示出单符号位法的溢出检测逻辑; 当Cn =Cn - 1 时,运算无溢出;而当 Cn≠Cn-1 时,运算有溢出,经异或门 产生溢出信号。
现在我们计算一个n位的行波进位

加减法指令的实现

加减法指令的实现

基本模型机的设计——加减法指令的实现1设计题目基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念。

着重加减法指令的实现和设计,编制实验所需的程序,上机测试并分析所设计的程序。

2设计目的(1)巩固“电工电子学” 、“数字逻辑”、“汇编语言程序设计” 、和“计算机组成原理”等相关课程学习内容。

(2)掌握计算机组成原理实验平台的使用,加深对计算机各模块协同工作的认识,建立清晰完整的整机概念。

(3)通过使用 HKCPT软件了解程序编译 , 加载过程。

(4)通过单步 , 单拍调试 , 理解模型机中的数据流向。

3模型机的逻辑框图根据设计要求,模拟机的逻辑框图如下:DR1DR2累加器 A374374374374CYZDALALU-O244244DATA BUS166*2 PC374 IR2RAM 程序374 指令6264*3寄存器PC-O244 IR2-O 244 指令译码163*2 微地址寄存器ADDRESSBUS微地址4指令系统的设计4.1 指令类型(1)算术 / 逻辑运算指令如:进行加法、减法、取反、逻辑运算例如 : ADD A,RiSUB A,RiAND A,Ri(2)移位操作指令带进们位或不带进位的移位指令例如: RRC A, RiRR A(3)数据传送类指令CPU内部寄存器之间进行数据传递例如 : MOV A,RIMOV RI,A( 4)程序跳转指令程序跳转指令可分为无条件跳转指令和有条件跳转指令两大类. 它可以根据寄存器的内容是否为零来标志 (ZD), 有进位标志 (CY), 也可以根据实际情况自行设置。

例如 : 无条件跳转指令JMP addrZD=0 时跳转JZ addrCY=0 时跳转JC addr自定义的跳转语句JN addr( 5)存储器操作类指令存储器读/写指令,用来把内在单元写入寄存器中或把寄存器中的内容写入存储器。

计算机组成原理实验_加减法运算器设计

计算机组成原理实验_加减法运算器设计

计算机组成原理与汇编语言实验报告实验二: 加减法运算器的设计与实现专业班级:xxxxxxxxxx学号:xxxxxxx 姓名:xxx学号:xxxxxxx 姓名:xxx实验地点:实验时间:实验二加减法运算器的设计一、实验目的1、理解加减法运算器的原理图设计方法2、掌握加减法运算器的VERILOG语言描述方法3、理解超前进位算法的基本原理4、掌握基于模块的多位加减运算器的层次化设计方法5、掌握溢出检测方法和标志线的生成技术6、掌握加减运算器的宏模块设计方法二、实验任务1、用VERILOG设计完成一个4位行波进位的加减法运算器,要求有溢出和进位标志,并封装成模块。

模块的端口描述如下:module lab2_RippleCarry 宽度可定制(默认为4位)的行波进位有符号数的加减法器。

#(parameter WIDTH=4)( input signed [WIDTH-1:0] dataa,input signed [WIDTH-1:0] datab,input add_sub, // if this is 1, add; else subtractinput clk,input cclr,input carry_in, //1 表示有进位或借位output overflow,output carry_out,output reg [WIDTH-1:0] result)2、修改上述运算器的进位算法,设计超前进位无符号加法算法器并封装成模块。

模块的端口描述如下:module lab2_LookaheadCarry // 4位超前进位无符号加法器(input [3:0] a,input [3:0] b,input c0, //carry_ininput clk,input cclr,output reg carry_out,output reg [3:0]sum);3、在上述超前进位加法运算器的基础上,用基于模块的层次化设计方法,完成一个32位的加法运算器,组内超前进位,组间行波进位。

计算机组成原理课程设计---基本模型机的设计——加减法指令的实现

计算机组成原理课程设计---基本模型机的设计——加减法指令的实现

目录课程设计任务书 (1)1.设计目的及设计原理 (3)1.1设计目的 (3)1.2设计原理 (3)2.模型机的逻辑框图 (3)3.指令系统及其指令格式 (4)3.1指令系统 (4)3.2指令格式 (6)4.微程序的设计及其实现的方法 (7)4.1微指令格式的设计 (7)4.2后续微地址的产生方法 (7)4.3 微程序入口地址的形成 (8)5.模型机时序分析 (9)6.指令执行流程 (11)7.源程序,程序的指令代码及微程序 (11)7.1 源程序 (11)7.2 程序的指令代码 (12)7.3微程序 (12)8.实现过程 (13)9.课程设计总结 (19)课程设计任务书学生姓名:陈千专业班级:物联网1103班指导教师:程艳芬工作单位:计算机科学与技术学院题目: 基本模型机的设计——加减法指令的实现初始条件:理论:学完“电工电子学”、“数字逻辑”、“汇编语言程序设计”、和“计算机组成原理”课程,掌握计算机组成原理实验平台的使用。

实践:计算机学院科学系实验中心提供计算机、实验的软件、硬件平台,在实验中心硬件平台验证设计结果。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念。

2、根据课程设计题目的要求,编制实验所需的程序,上机测试并分析所设计的程序。

3、课程设计的书写报告应包括:(1)课程设计的题目。

(2)设计的目的及设计原理。

(3)根据设计要求给出模型机的逻辑框图。

(4)设计指令系统,并分析指令格式。

(5)设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方法以及微程序入口地址的形成)。

(6)模型机当中时序的设计安排。

(7)设计指令执行流程。

(8)给出编制的源程序,写出程序的指令代码及微程序。

(9)说明在使用软件HKCPT的联机方式与脱机方式的实现过程(包括编制程序中加减法指令的时序分析,累加器A和有关寄存器、存储器的数据变化以及数据流程)。

补码加减法运算(计算机组成原理)

补码加减法运算(计算机组成原理)

1.0 0 1 1 0.0 1 1 0 1.1 0 0 1
∴x -y = 0.0111
5
溢出及与检测方法
1.概念
在定点小数机器中,数的表示范围为|x|<1。在运算过程中如出现大于1
的现象,称为 “溢出”。
下溢
上溢
机器定点小数表示
计算机组成原理
6
例:x=+0.1011, y=+0.1001, 求x+y。
补码加减法运算
1.原码加/减法运算
加法规则: 先判符号位,若相同,绝对值相加,结果符号不变; 若不同,则作减
法, |大| - |小|,结果符号与|大|相同。 减法规则:
两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取 反后的减数按原码加法进行运算。
计算机组成原理
1
2.补码加法运算 补码加法的公式:
[x]补 1. 0 0 1 1
+ [y]补 1. 0 1 0 1
[x+y]补 0. 1 0 0 0
两个负数相加的结果成为正数,这同样是错误的。
计算机组成原理
7
发生错误的原因,是因为运算结果超出编码所能表示的数字大小。 两个正数相加: 结果大于机器所能表示的最大正数,称为上溢; 两个负数相加:结果小于机器所能表示的最小负数,称为下溢。
时间延迟
典型门电路的逻辑符号和延迟时间
门的名称 门的功能 逻辑符号(正逻辑) 时间延迟
与非
NAND
T
或非
NOR
T

NOT
T

AND
2T

OR
2T
异或
XOT
3T
异或非
XNOR

计算机的减法实现原理

计算机的减法实现原理

让我们来捋一捋上面的思路。 原来的减法题目是:253 - 176 我们可以把表达式写成:253 - 176 + 1000 - 1000 即等同于:253 - 176 + 999 + 1 - 1000 然后进行合理的组合:253 +(999 - 176)+ 1 - 1000 整个过程我们用了两个减法和两个加法来代替原来的的一个减法,虽然变得更加繁琐, 但是也省去了繁杂的借位操作。
如果被减数比减数小,又会是如何呢?我们按照上面的步骤进行计算。
计算到这里,我们应该对其再加1,然后减去1000,但是这种方法不会生效,因为就是 从923中减去1000,还是会导致借位。实际上,前面我们加了999,那么在这里我们直接减 去999即可,而 同时可以看出结果是个负数,把两数交换下位置就可以进行运算了。
计算机在做减法运算时,是使用的加法,在表示负数时使用的是二进制的补数(这里所 说的补数更加亲切,就是我们所熟知的各位取反后加1,前文所说的补数没有进行加1操 作),用8位二进制表示-1时,就是对00000001求补数,所得结果就是11111111。现在 我们再来验证11111111 + 00000001 = 100000000,这个运算结果达到了9位,出现了 最高位溢出的情况,计算机会自动忽略最高位,最终所得结果就是0。
那么结果不为0的运算能不能成功呢,我们计算3 - 5这个表达式即(3 +(-5))。3的 二进制是00000011,-5的二进制表示为11111011(补码),00000011 + 11111011 的结果为11111110,最高位变成了1,说明结果应该是一个负数,结果也是以补码的形式 表示的,我们看下11111110的真实值吧,对补码再取补码操作(各位取反加1),就可以 求的该数的绝对值,得出00000010,说明表示的结果为-2,运算正确。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学号:0121010340301课程设计题目模型机的总体设计学院计算机科学与技术专业计算机科学与技术班级计算机1003姓名王俊哲指导教师许毅2011 年12 月30 日课程设计任务书学生姓名:王俊哲 _ 专业班级:计算机指导教师:许毅 __ 工作单位:计算机科学与技术学院题目: 基本模型机的设计——加减法指令的实现初始条件:理论:学完“电工电子学”、“数字逻辑”、和“计算机组成原理”课程,掌握计算机组成原理实验平台的使用。

实践:计算机学院科学系实验中心提供计算机、实验的软件、硬件平台,在实验中心硬件平台验证设计结果。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、基本模型机系统分析与设计,利用所学的计算机组成原理课程中的知识和提供的实验平台完成设计任务,从而建立清晰完整的整机概念。

2、根据课程设计题目的要求,编制实验所需的程序,上机测试并分析所设计的程序。

3、课程设计的书写报告应包括:(1)课程设计的题目。

(2)设计的目的及设计原理。

(3)根据设计要求给出模型机的逻辑框图。

(4)设计指令系统,并分析指令格式。

(5)设计微程序及其实现的方法(包括微指令格式的设计,后续微地址的产生方法以及微程序入口地址的形成)。

(6)模型机当中时序的设计安排。

(7)设计指令执行流程。

(8)给出编制的源程序,写出程序的指令代码及微程序。

(9)说明在使用软件HKCPT的联机方式与脱机方式的实现过程(包括编制程序中加减法指令的时序分析,累加器A和有关寄存器、存储器的数据变化以及数据流程)。

(10)课程设计总结(设计的特点、不足、收获与体会)。

时间安排:周一:熟悉相关资料。

周二:系统分析,设计程序。

周三、四:编程并上实验平台调试周五:撰写课程设计报告。

指导教师签名:年月日系主任(或责任教师)签名:年月日基本模型机的设计—加减法指令的实现1.设计目的本次课程设计主要是完成简单的加减法指令的实现,通过使用软件HKCPT,了解程序编译、加载的过程。

通过微单步、单拍调试,理解模型机中的数据流向。

在分析阶段主要完成模型机的整体逻辑框图,并在实验平台上连好线将各个逻辑部件组装成一个完整的模型机;在设计阶段主要是设计出该机的指令系统,并设计出相应的编码方式及时序逻辑;在实验验证阶段,自己按照设计阶段编制的指令系统编写一个程序,在实验平台上观看程序每一步运行的过程。

2.设计原理模型机的运行是在微程序的控制下,实现特定指令的功能,并且编写相应的微程序,简单的模型机都是由算术逻辑单元、微程序单元、堆栈寄存器单元、累加器、启停、时序单元、总线和存储器单元组成。

我们可以先设计模型机的逻辑框图,然后编制相应的指令系统,模型机组装好后就可以输入事先编好的程序检验模型机是否成功。

3.设计内容3.1 逻辑框图设计根据设计的要求,对实验硬件资源进行逻辑组合,便可设计出该模型机整体逻辑框图。

简单的模型机是由算术逻辑单元、微程序单元、堆栈寄存器单元、累加器、启停、时序单元、总线和存储器单元组成。

在模型机中,我们将要实现RAM的读写指令,寄存器的读写指令,跳转指令,ALU的加、减、与、或指令。

把通用寄存器作为累加器A,进行左、右移等指令,整体构成一个单累加器多寄存器的系统。

下图给出了本次实验的模型机整机逻辑框图:3.2 系统连线BU S RM WM EMCKDJ1 DJ2 DJ3 DJ4 DJ5 DJ6 DJ7 AJ1M2 1 M21M22PLS4ALU-INALU-OUTR-INRA-INR-OUTRA-OUTPC-INPC-OUTMLD MCK MOCK MD0 MD1 MD2 MD3 MD4 MD5 MD6 MD7M23 PLS1 PLS3 VCC VCC I4 I5 I6 I7 GND GNDSA SB RR WR RCK X0 X1 ERA RA-O RACKI0 I1 M15 M14 PLS4 M12 M11 M10 M9 PLS4EDR1 EDR2 ALU-O CN M S3 S2 S1 S0 D2CK D1CK CCK ZD CY M8 M7 M6 M5 M4 M3 M2 M1 M0 PLS4 PLS4 PLS4 JZ JC5.指令寄存器3.3 指令系统设计本次实验的平台HKZK-CPT内采用的是8位数据总线和8位地址总线方式,在设计指令系统时,应考虑有哪几种类型的指令,那几种寻址方式和编码方式。

3.3.1 指令类型算术/逻辑运算指令如:加法、减法、取反、逻辑运算等ADD A,Ri,SUB A,Ri移位操作类指令带进位或不带进位的移位指令RRC A,RR A数据传送指令CPU内部寄存器之间的数据传送MOV A,Ri,MOV Ri,A程序跳转指令跳转指令分为无条件跳转指令和有条件跳转指令。

可根据寄存器内容为零来标志(ZD)、有无进位来标志(CY)。

JMP addr 无条件跳转JZ addr ZD=0时跳转JC addr CY=0 时跳转寄存器操作类指令存储器读/写指令。

把内存某单元内容写入寄存器中或把寄存器中的内容写入存储器。

如:LDA addr (addr)->ASTA addr (A)->addr3.3.2 操作数寻址方式及编码1.直接地址寻址如:LDA addr (addr)->ASTA addr (A)->addr2.寄存器直接寻址指令字中含有寄存器选择码,决定选择哪个寄存器进行操作。

如:MOV A,Ri (Ri)->A3.寄存器间接寻址如:MOV A, @Ri4.立即数寻址如:MOV A, #dataMOV Ri, #data3.3.3 指令系统3.4 微程序设计及其实现方法在本次实验平台的硬件设计中,采用24位微指令,若微指令采用全水平不编码纯控制场的格式,那么至多可有24个微操作控制信号,可以由微代码直接实现。

如果采用多组编码译码、那么24位微代码可实现2n个互斥的微操作控制信号。

由于模型机指令系统规模叫小,功能也不太复杂,所以采用全水平不编码纯控制场的格式。

在模型机中,用指令操作码的高4位作为核心扩展成8位的微程序入口地址MD0-MD7,这种方法称为“按操作码散转”(如下表所示)。

每条指令由不超过4条的微指令组成,那么可根据下表组成每条微程序的首地址。

微指令的运行顺序为下地址确定法,即采用计数增量方法,每条微指令执行过后微地址自动加1,指向下一条微指令地址。

例如:确定了一条程序的微程序入口地址为07H,那么当执行完07H这条微指令后微地址加1,指向08H微地址。

微地址寄存器由2片74LS161组成,当模型机在停止状态下,微地址被清零。

当实验平台开始运行时,微地址从00H开始运行。

且00H放置一条取值指令,根据程序开始地址从内存中读出第一条指令。

3.5 模型机中的时序安排设计由于模型机已经确定了指令系统,微指令采用全水平不编码纯控制场的格式,微程序的入口地址采用操作码散转方式,微地址采用计数增量方式,所以可确定模型机中时序单元中所产生的每一拍的作用。

在本实验中为了让实验者更好的观察实验的各个中间过程中个寄存器的值,由监控单元产生一个PLS-O的信号来控制时序产生(如图2-9-2)。

PLS-O信号经过时序单元的处理产生了4个脉冲信号。

4个脉冲信号组成一个微周期,为不同的寄存器提供工作脉冲。

这4个脉冲信号分别是:PLS1:微地址寄存器的工作脉冲,用来设置微程序的首地址及微地址加1。

PLS2:PC计数器的工作脉冲,根据微指令的控制实现PC计数器加1和重置PC计数器(跳转指令)等功能。

PLS3:把24位微指令打入3片微指令锁存器。

PLS4:把当前总线上的数据打入微指令选通的寄存器中。

3.6 指令执行流程设计根据模型机整机逻辑框图和目前硬件条件来设计指令系统中每条指令的执行流程。

在每个系统中,一条指令从内存取出到执行完毕,需要若干个机器周期,任何指令中都必须有一个机器周期作为“取指令周期”,称为公操作周期。

而一条指令共需要几个机器周期取决于指令在机器内实现的复杂程度。

对于微程序控制的计算机,在设计指令执行流程时,要保证每条微指令所包含的微操作的必要性和合理性,还应知道总线IAO、IDB、OAB、ODB仅是传输信息的通路,没有寄存信息的功能,而且必须保证总线传输信息时信息的唯一性。

以下描述取指微指令执行过程:在模型机处于停机状态时,模型机的微地址寄存器被清零,微指令琐存器输出无效(为高)。

在处于停机状态时,脉冲PLS1对微地址寄存器(74LS161)无效,微地址寄存器保持为零。

脉冲PLS2对PC计数器无效,同时PLS2把HALT=1打入启停单元中的运行状态寄存器(74LS74)中,把模型机置为运行状态,使微程序锁存器输出有效。

PLS3把微程序存储器00H单元(00H单元存放着取指微指令)中的内容打入微指令锁存器中并且输出取指微指令。

PLS4把从程序存储器中读出的数据打入指令寄存器中。

当模型机处于运行状态时,脉冲PLS1微地址寄存器(74LS161)加1,脉冲PLS2对PC计数器加1,PLS3把微程序存储器中的微指令打入微指令锁存器并且输出。

PLS4把当前总线上的数据打入当前微指令所选通的寄存器。

4程序调试源程序、程序的指令代码或立即数及说明如下表:微程序5.上机调试过程本次实验用的软件是HKCPT,我将上面编好的程序输入电脑,在这个软件中进行调试并观看程序单步运行的结果,用截图工具将程序的微单步过程各个结构图以及时序截了下来,以下就是整个程序的运行过程:MOV A,#55取指Dbus—〉A02 MOV R0,#66 取指Dbus-〉A04 ADD A,R0 取指令A->Dbus->DR1Ri→Dbus→DR2ALU→Dbus→AMOCV R1,#33 取指令Dbus RiSUB A,R1 取指A→Dbus→DR1Ri→Dbus→R1ALU→Dbus→ASTA 10取指Dbus→IR2[IR2]→AbusA→Dbus→RAM停机6.总结通过本次的课程设计,我进一步融会贯通了教材上的内容,掌握了计算机各功能模块的工作原理、相互联系和来龙去脉,完整地建立了计算机的整机概念。

自己的学习热情和主动性得到了空前提高,独力工作能力也得到了很大的提高。

培养成了严谨的科研作风,创造性地完成了模型机的部件及系统的分析、设计、组装和调试,加深了自己对计算机组成原理及系统结构课程的内容的理解和掌握。

当然,此次的模型机设计也有很大的不足之处,比如:指令系统的规模太小,有很多有用的指令没有进行编码设计导致功能太简单,要编较难较复杂的程序还不太可能。

另外此次的课程设计也暴露了一个很大的问题,那就是:我们的动手能力太差了,很多在书本上觉得很简单的问题等到自己动手去做时才发现原来还有很多知识我们并不太清楚,所以今后要加强我们的动手能力。

相关文档
最新文档