计算机组成原理实验报告[推选]【汇集4篇】
【路引】由阿拉题库网美丽的网友为您整理分享的“计算机组成原理实验报告[推选]【汇集4篇】”文档资料,以供您学习参考之用,希望这篇范文对您有所帮助,喜欢就复制下载支持吧!
计算机组成原理实验报告 电子科技大学【第一篇】
计算机专业类课程
实验报 告
课程名称:计算机组成原理
学院专业:计算机科学与工程 计算机科学与技术学生姓名:** 学
号:20120600***** 指导教师:吴晓华
日
期:2014年11月30日
实 验 报 告
实验一
一、实验名称:
ALU设计实验
二、实验内容和目的 :
(1)实验内容:
设计一个4bit ALU,实现两个4bit二进制数的算术运算和逻辑运算
1、算术运算(加、减);
2、逻辑运算(与、或、置
1、清0); (2)实验目的:
1、熟悉ALU的工作原理;
2、 掌握用硬件描述语言设计ALU的方法;
三、实验原理:
利用veilog hdl语言编写实现实验要求的逻辑功能实现代码。要求实现两个四位二进制数的算数运算和逻辑运算,有三个输入,分别是输入的两个四位二进制数和一个控制信号,有两个输出,分别是仅为信号和运算结果的输出。考虑到是电路的逻辑代码设计简化,
采用case语句来实现。所有的输入都会对最终的结果和进位输出产生影响。在连线时,八个开关分为两组,分别控制两个四位二进制数的各位,有五个指示灯,四个显示结果的输出,一个用来显示进位信号。
四、实验器材(设备、元器件)
硬件平台:pc 软件平台:windows xp
五、实验步骤:
先利用仿真软件进行程序的编写,编译调试运行,结果无误后,在仿真软件上绑定对应开关和连线,打开电路板电源,进行控制操作,观察指示灯的亮灭情况,根据实际的逻辑结果来验证实验代码及连线的正确性,若与实际结果不相符,检查连线以及实验代码,重新进行处理。
六、实验数据及结果分析:
(1)实验代码:
module pz(in1,in2,se,count,c); input[3:0] in1,in2; input[2:0] se; output[3:0] count; output c; reg[3:0] count; reg c; always@(in1,in2,se) begin case(se) 3'b000:{c,count}=in1+in2; 3'b001:{c,count}=in1-in2; 3'b010:count=in1 & in2; 3'b011:count=in1 | in2; 3'b100:count=0000; 3'b101:count=1111; default:count=5'bx; endcase end
endmodule (2)实验结果照片:
八.实验结论、心得体会和改进建议: (1)思考题: 在进行算术运时, 7(0111)+8(1000)=1111 7(0111)- 8(1000)=1111 其输出结果都是1111,为什么?
答:因为计算时都采用二进制补码来运算,而前者进行相加的两个数都是正数,其补码为其本身。而后者进行补码的减法运算时,要对减数求补,转换成加法运算,所以最终所得结果相同。
(2)实验结论、心得体会和改进建议:
在设计逻辑电路是使用了实现该逻辑功能最简单的方式,case语句,在编写实验代码时需要注意always语句中的输出变量必须提前声明为reg型的变量。注意根据实验指导书绑定正确的接线。
电 子 科 技 大 学
实 验 报 告
实验二
一、实验名称:
静态存储器的设计
二、实验学时:4
三、实验内容和目的:
(1)实验目的:
1、掌握存贮器的读写控制方法;(读信号、写信号、片选信号) 2.掌握存储器的字扩展和位扩展方法; 3.掌握用硬件描述语言设计存贮器的方法; 4.了解存储器种类、工作原理和特点。 (2)实验内容:
用字扩展和位扩展的方式,设计一个 32X8的静态存储器,能够对其随机的读写。 其中: 32表示地址的寻址空间大小,8表示数据单元的位数;
四、实验原理:
利用veilog hdl语言编写实现实验要求的逻辑功能实现代码。
1、设计一个16X4的可随机读写的存储器模块; 2.利用16X4存储器模块,通过实例化完成对所需要的存储器,因为是16X4扩展为32X 8,所以将16X4两两分为一组刚好两组 。
3、数据、地址的输入/输出
a 、数据/地址的输入: 开关控制; b 、数据的输出: 指示灯显示; 4.控制信号
a 、片选: 低有效; b 、读: 低有效; c 、写: 上升沿有效;
五、实验器材(设备、元器件)
硬件平台:pc 软件平台:windows xp
六、实验步骤:
先根据实验内容,实验目的,实验要求编写实现所需逻辑功能的实
验代码,然后在仿真软件上进行编译链接运行,无误后进行宋旭单元与电路板相关接口的绑定,对电路板进行连线,练好后进行实际操作,观察电路板上指示灯的亮灭情况,根据实际的逻辑结果判断实验代码以及连线是否正确,若输出有误,则重新检查连线以及代码是否有逻辑问题。
七、实验数据及结果分析: (1)实验代码:
module m(din,addr,wr,rd,cs,dout);
reg[D_WIDTH-1:0] ram[(2**A_WIDTH)-1:0]; wire [D_WIDTH-1:0] dout; input[D_WIDTH-1:0] din; input[A_WIDTH-1:0] addr; input wr,rd,cs; output [7:0]dout; parameter D_WIDTH = 8; parameter A_WIDTH = 5;
ram16_4 ram16_4_1(。din(din[3:0]),。addr(addr[3:0]),。wr(wr),。rd(rd),。cs(addr[4]|cs),。dout(dout[3:0])); ram16_4 ram16_4_2(。din(din[7:4]),。addr(addr[3:0]),。wr(wr),。rd(rd),。cs(addr[4]|cs),。dout(dout[7:4])); ram16_4 ram16_4_3(。din(din[3:0]),。addr(addr[3:0]),。wr(wr),。rd(rd),。cs((~addr[4])|cs),。dout(dout[3:0])); ram16_4 ram16_4_4(。din(din[7:4]),。addr(addr[3:0]),。wr(wr),。rd(rd),。cs((~addr[4])|cs),。dout(dout[7:4]));
endmodule
module ram16_4(din,addr,wr,rd,cs,dout);
parameter D_WIDTH = 4; parameter A_WIDTH = 4;
input[D_WIDTH-1:0] din; input[A_WIDTH-1:0] addr; input wr,rd,cs; output[D_WIDTH-1:0]dout;
reg [D_WIDTH-1:0] ram [(2**A_WIDTH)-1:0]; wire [D_WIDTH-1:0] dout;
always @(posedge wr) if (!cs) ram[addr]<= din;
assign dout = (!(rd||cs))?ram[addr]:4'bzzzz;
endmodule
(2)实验结果截图:
八、实验结论、心得体会和改进建议:
对于存储器的扩充有字扩充和位扩充,在编写实验代码时首先得编写出实验所需要的基本单元16X4的存储器,通过对该存储器模块的
实例化来实现实验所需要用到的存储器,实验内容比较简单,只要按照实验要求和步骤结合实验目的进行正确操作,实验都能成功。
计算机组成原理及实验报告【第二篇】
中南大学
计算机组成原理及汇编实验报告
姓 名: 代巍 学 号: 0909121615 专业班级: 信安1201 指导教师: 盛羽 学 院: 信息科学与工程学院
计算机组成原理实验
实验1 总线基本实验
一、实验目的
(1)掌握静态存储随机存储器RAM的工作特性 (2)掌握静态存储随机存储器RAM的读写方法
二、实验设备
74LS374(一片),74LS245(一片),74LS273(一片),静态存储器MEMORY 6116(一片),8位数据排线(一片),与门(两片),与非门(一片),单脉冲(三片),开关若干,灯泡若干。
三、实验原理
总线传输实验框图如图所示,它将几种不同的设备挂至总线上,有存储器、输入 设备、输出设备、寄存器。这些设备都需要有三态输出控制,按照传输要求恰当有序的控制 它们,就可实现总线信息传输。
总线传输实验框图
总线基本实验要求如下:根据挂在总线上的几个基本部件,设计一个简单的流程。 (1)输入设备将一个数输入R0 寄存器。 (2)输入设备将另一个数输入地址寄存器。
(3)将R0 寄存器中的数写入到当前地址的存储器中。 (4)将当前地址的存储器中的数用LED 数码管显示。
四、实验步骤
(1) 选择实验设备:根据实验原理图,将所需要的组件从组件列表中拖到实验设计流程栏中。
搭建实验流程:将已选择的组件进行连线(鼠标从一个引脚的端点拖动到另一组件的引脚端,即完成连线)。搭建好的实验流程图如图所示。
(2)初始化各芯片的控制信号,仔细检查无误后点击 电源开/关按钮接通电源。
总线基本实验流程图
(3)实验的具体操作步骤如图 所示。
首先应关闭所有三态门(SW-B=1,CS=1,R0-B=1,LED-B=1),并将关联的信号置为:LDAR=0,LDR0=0,W/R(RAM)=1,W/R(LED)=1。然后参照如下操作流程,先给数据开关置数,打开数据输出三态门,开关LDR0置1,并双击旁边的单脉冲,使产生一个上升沿将数据输入到R0 中;然后继续给数据开关置数,开关LDAR置1 ,并双击旁边的单脉冲,使产生一个上升沿将数据输入到AR 中;关闭数据开关三态门 ,打开R0 寄存器输出控制(开关LDR0和开关R0-B都置0),使存储器处于写状态(W/R=0、CS=0)将R0 中的数写到存储器中;关闭存储器片选,关闭R0 寄存器输出(开关R0-B置0),使存储器处于读状态(W/R=
1、CS=0)。
实验步骤图
五、实验结果及结果分析
实验截图
六、实验心得体会
通过本次本次实验:
(1)了解了一些逻辑器的组成结构 (2)掌握一些逻辑器的工作原理 (3)验证了各逻辑器件的组合功能
(4)了解了总线和各个器件之间的工作过程。
通过亲自动手,能更好的理解逻辑器件的组成及功能。同时实验中遇到各种问题,解决后,让自己的知识更加牢固。同时也意识到自己的不足,需要更加的努力!
汇编语言实验
实验2 汇编语言编程实验
一、实验目的
(1)掌握循环程序的设计方法
(2)掌握汇编语言源程序的编辑、汇编、连接及调试过程。
(3)进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。 (4)学会针对不同的问题,选用不同的组织循环的方法。
二、实验设备
PC机及masm for windows软件。
三、实验要求
(1)编辑一个指定的汇编语言源程序,并对其进行汇编、连接和运行。 (2)利用DEBUG进行程序调试,掌握常用命令的使用方法,观察运行结果。
(3)汇编语言上机操作,掌握循环程序的过程和汇编实现原理,进一步熟练掌握DEBUG操作指令以及汇编语言源程序的编辑、汇编、连接及调试过程。
四、实验内容
实验一:编程计算1~100的和
实验二:编程计算 S=1+2*3+3*4+4*5+……+N*(N+1),N由用户输入,将结果在屏幕显示
实验三:编程计算SUM=1!+2!+3!+4!+5!,将结果输出,需要有子程序
五、程序源代码
实验一程序代码如下: DATA SEGMENT SUM1 DW 0,13,10,'$'
DATA ENDS STACK1 SEGMENT S DB 1000 DUP( 0 ) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK1 START: MOV AX, DATA MOV DS, AX MOV AX, 0 MOV CX, 0
LOOP1: ADD AX, CX INC CX CMP CX, 101 JL LOOP1 MOV SUM1, AX lea di ,sum1 call cv mov ah,9 lea dx,sum1 int 21h jmp ok
cv:
push cx push dx xor cx,cx mov si,10 s0:
xor dx,dx inc cx div si push dx cmp ax,0 jnz s0 s1: pop dx add dl,“0”
mov byte ptr [di],dl inc di loop s1 mov al,20h s2:
cmp byte ptr [di],0 jz s3
cmp byte ptr [di],43h jz s3
mov byte ptr [di],al inc di jmp s2 s3: pop dx pop cx ret ok:
MOV AH,4CH INT 21H CODE ENDS END START
实验二程序代码如下: DATAS SEGMENT
s dw ?;此处输入数据段代码
n dw ?
DATAS ENDS STACKS SEGMENT
dw 64 dup(?);此处输入堆栈段代码 STACKS ENDS CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS START:
loop1:
clc
;此指令清除cf标志位cf=0
mov ah,1h
;通过给AH寄存器赋值,然后调用INT 21H指令, ;计算机就会根据AH寄存器中的值执行相应的操作
;其中1H是键盘输入并回显,AL中有输入字符
int 21h
cmp al,0dh ;比较是不是回车键,不改变操作数,只改变标志位,若ZF=1,则表示两数相等
je print ;ZF=1,转至标号处执 表示输入完毕
cmp al,'0'
jz rotate ;ZF=1,转至标号处执
stc
;此指令设置cf为1 rotate:
rcl bx,1
;注意这里是带进位左移,程序的思想所在 jmp loop1 ;无条件转移 print:
mov n,bx
MOV AX,DATAS
MOV DS,AX
mov bx,0001h
mov dl,02h lop2:mov al,bl
inc dl;加1
mul dl;无符号数乘法AX=oprd*al
add bx,ax
cmp ax,n;与n比较
jna lop2;不高于转移
mov s,bx
mov ch,4
mov cl,4 lop1:rol bx,cl
mov dl,bl
and dl,0Fh
cmp dl,09h
jbe next;低于等于转移
add dl,7 next:add dl,30h
mov ah,2
int 21h
dec ch
jnz lop1;非零转移
MOV AH,4CH
INT 21H CODES ENDS
END START 实验三程序代码如下:
DATA SEGMENT
OUTPUT_TIPS DB 10, 13, “1! + 2! + 3! + 4! + 5! =
NNN DW 1 DATA ENDS CODE SEGMENT
ASSUME CS:CODE, DS:DATA START:
MOV AX, DATA
MOV DS, AX
MOV BX, 2
;0、1 的阶乘都是 1 LOP:
MOV AX, BX
MOV CX, AX
CALL FACTOR
;用递归方法计算阶乘
$”
ADD AX, NNN
MOV NNN, AX
INC BX
CMP BX, 6
JNE LOP
MOV AX, NNN
DISP:
PUSH AX
MOV DX, OFFSET OUTPUT_TIPS
MOV AH, 9
;显示字符串。
INT 21H
POP AX
MOV BX, 10
MOV CX, 0 L1:
MOV DX, 0
DIV BX
PUSH DX
INC CX
AND AX, AX
JNZ L1 L2:
POP DX
ADD DL, 48
MOV AH, 2
INT 21H
LOOP L2 EXIT:
MOV AH, 4CH
INT 21H
FACTOR PROC NEAR
;阶乘。
DEC CX
;CX=2~8
CMP CX, 1
;=1 ?
JE
FACTOR_E
;为1就退出
PUSH CX
;非1压栈保存
CALL FACTOR
;递归调用,把CX一次次的减一
POP CX
;弹出一个个递减的数值
MUL CX
;乘到AX FACTOR_E:
RET
;AX=(2~8)! FACTOR ENDP
;简洁明了,无与伦比 CODE ENDS
END START
六、运行结果
实验一调试
实验一运行结果
实验二调试
实验二运行结果
实验三调试
实验三运行结果
七、实验总结
通过本次上机实验,学习了数值转换,循环,中断,分支结构等知识点。在课堂中听到的关于汇编语言中的循环和分支程序的知识点,我们将它实践化了,使得我们更深一步的认识和理解了循环程序和分支程序。在实验中,暴漏出来的问题就是,对于一些符号它所代表的是什么还是不熟悉,导致程序出现问题,因此,以后还要多看书,多练习,加强这方面的记忆。这次实验所学到的印象最深的就是LOOP循环以及有符号数跳转JLE。
总体上来讲,有些知识点理解的还不到位,希望通过以后的练习能加强对这些知识点的理解。实验过程中,遇到很多问题,比如程序一的编写,基本上都是学习书本以及依靠书本多做题才编出来的,仅有的几次上机实验,要抓紧时间学习和交流,时间挺少的。在今后的学习和生活中,我们都需要相互学习、相互交流,共同进步。学习是一个循序渐进的过程。 通过这次实验,使我了解到运行调试程序的不易,今后一定更加努力,把程序做到最好!对于不足之处,会积极改正。掌握汇编语言程序编辑、汇编、连接、运行以及利用DEBUG调试程序的方法。加深对循环和分支程序结构的理解,掌握循环和分支结构程序设计的方法,熟练汇编语言程序上机调试的方法和过程。能够独立自主的编辑代码解决一些小问题,对汇编有了初步的了解。但仍有很多需要学习的地方!
计算机组成原理实验报告[推荐【第三篇】
湘潭大学学生实验报告
实验名称____________________实验日期__________________ 学号:____________姓名:__________班级_________
一、 实验目的二、 实验原理
三、 实验要求
四、 实验内容与步骤
五、 实验环境与设备
六、 实验代码设计(含符号说明)
七、 实验验证与测试
八、 测试数据
九、 实验过程中出现的问题及处理情况(包括实验现象、原因分析、排除故障的方法等)
计算机组成原理--实验报告【第四篇】
实验一 寄存器实验
实验目的:了解模型机中各种寄存器结构、工作原理及其控制方法。
实验要求:利用CPTH 实验仪上的K16.。K23 开关做为DBUS 的数据,其它开关做为控制信号,将数据写入寄存器,这些寄存器包括累加器A,工作寄存器W,数据寄存器组R0.。R3,地址寄存器MAR,堆栈寄存器ST,输出寄存器OUT。
实验电路:寄存器的作用是用于保存数据的CPTH 用74HC574 来构成寄存器。74HC574 的功能如下:
系统清零和手动状态设定:K23-K16开关置零,按[RST]钮,按[TV/ME]键三次,进入“Hand.。.。.。”手动状态。在后面实验中实验模式为手动的操作方法不再详述.
将55H写入A寄存器
二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据55H
置控制信号为:
按住STEP脉冲键,CK由高变低,这时寄存器A的黄色选择指示灯亮,表明选择A寄存器。放开STEP键,CK由低变高,产生一个上升沿,数据55H被写入A寄存器。将66H写入W寄存器
二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据66H
将11H、22H、33H、44H写入R0、R1、R2、R3寄存器将 二进制开关K23-K16,置数据分别为11H、22H、33H、44H 置控制信号为:
K11、K10为10,K1、k0分别为00、01、10、11
并分别按住STEP 脉冲键,CK 由高变低,这时寄存器R0、R1R2R3 的黄色选择指示灯分别亮,放开STEP键,CK由低变高,产生一个上升沿,数据被写入寄存器。注意观察:
1、数据是在放开STEP键后改变的,也就是CK的上升沿数据被打入。
(SB),K0(SA)用于选择寄存器。
读寄存器
置控制信号为:K11、K10为01,K1、K0为00时,读R0,这时寄存器R0 的红色输出指示灯亮,R0 寄存器的数据送上数据总线。此时数据总线指示灯L7.。.L0为:寄存器MAR原理图
连接线表 寄存器OUT原理图
寄存器MAR,ST,OUT写工作波形图
K14(MAROE)为0,MAR寄存器中的地址输出,MAR 红色输出指示灯亮。将K14(MAROE)置为1,关闭MAR输出。
将34H写入ST寄存器
二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据34H
置控制信号为:
按住STEP 脉冲键,CK 由高变低,这时寄存器ST 的黄色选择指示灯亮,表明选择ST 寄存器。放开STEP键,CK由低变高,产生一个上升沿,数据34H被写入ST 寄存器。将56H写入OUT寄存器
二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据56H
置控制信号为:
1实验电路:CPTH 中的运算器由一片CPLD实现,有8 种运算,通过S2,S1,S0 来选择,运算数据由寄存器A及寄存器W 给出,运算结果输出到直通门D。
连接线表
按住STEP脉冲键,CK由高变低,这时寄存器W 的黄色选择指示灯亮,表明选择W寄存器。放开STEP 键,CK 由低变高,产生一个上升沿,数据33H 被写入W 寄存器。
置下表的控制信号,检验运算器的运算结果
注意观察:
运算器在加上控制信号及数据(A,W)后,立刻给出结果,不须时钟。实验心得:
实验三
PC 实验
实验目的:
1、了解模型机中程序计数器PC的工作原理及其控制方法。
2、了解程序执行过程中顺序和跳转指令的实现方法。
PC 原理图
在CPTH 中,PC+1 由PCOE 取反产生。当RST = 0 时,PC 记数器被清0
当ELP=1 时,LDPC=1,不允许PC被预置 当ELP=0 时,LDPC 由IR3,IR2,Cy,Z确定 当IR3 IR2 = 1 X 时,LDPC=0,PC 被预置
当IR3 IR2 = 0 0 时,LDPC=非Cy,当Cy=1时,PC 被预置 当IR3 IR2 = 0 1 时,LDPC=非Z,当Z=1 时,PC 被预置 连接线表
每置控制信号后,按一下STEP键,观察PC的变化。
实验心得
实验四 存储器EM 实验
实验目的:了解模型机中程序存储器EM 的工作原理及控制方法。
实验要求:利用CPTH 实验仪上的K16.。K23 开关做为DBUS 的数据,其它开关做为控制信号,实现程序存储器EM 的读写操作。实验电路:
存储器EM 由一片6116RAM 构成,是用户存放程序和数据的地方。存储器EM 通过一片74HC245 与数据总线相连。存储器EM 的地址可选择由PC或MAR 提供。
存储器EM 的数据输出直接接到指令总线IBUS,指令总线IBUS 的数据还可以来自一片74HC245。当ICOE 为0 时,这片74HC245 输出中断指令B8。
实验1:PC/MAR 输出地址选择
置控制信号为:
0,二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据01H 置控制信号为:
按STEP键, 将地址1 写入MAR
将数据22H写入EM[1] 二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据22H 置控制信号为:
按STEP键,将数据22H写入EM[1] 实验3:存储器EM 读实验 将地址0 写入MAR 二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据00H 置控制信号为:
按STEP键, 将地址0 写入MAR
5实验4:存储器打入IR指令寄存器/uPC实验 将地址0写入MAR 二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据00H
置控制信号为:
按STEP键,将地址0写入MAR
读EM[0],写入IR及uPC
置控制信号为:
EM[0]被读出:11H 按STEP键,将EM[0]写入IR及uPC,IR=11H,uPC=10H
7实验五 微程序存储器uM 实验
实验目的:
1、了解微程序控制方式模型机的基本工作原理。
2、了解微程序存储器uM的控制方法。实验要求:利用CPTH 实验仪上的开关做为控制信号,实现微程序存储器uM 的输出功能。
实验电路:
存储器uM 由三片6116RAM 构成,共24 位微指令,采用水平型微指令格式。存储器的地址由uPC 提供, 片选及读信号恒为低, 写信号恒为高。存储器uM 始终输出uPC 指定地址单元的数据。
uM原理图
连接线表
实验1:微程序存储器uM 读出
置控制信号为:K0为1
uM 输出uM[0]的数据
按一次STEP脉冲键,CK产生一个上升沿,数据uPC 被加一。uM 输出uM[1]的数据
按一次STEP脉冲键,CK产生一个上升沿,数据uPC 被加一。uM 输出uM[2]的数据
实验2:使用实验仪小键盘输入uM
1.连接J1, J2
2.打开电源
1实验六
模型机综合实验(微程序控制器)