计算机组成原理模型机实验报告.docx
- 文档编号:7202970
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:35
- 大小:28.89KB
计算机组成原理模型机实验报告.docx
《计算机组成原理模型机实验报告.docx》由会员分享,可在线阅读,更多相关《计算机组成原理模型机实验报告.docx(35页珍藏版)》请在冰豆网上搜索。
计算机组成原理模型机实验报告
计算机组成原理模型机实验报告
实验六计算机系统综合设计与实现一、实验目得
1、深入理解计算机系统工作得基本原理,建立整机概念.
2、融会贯通计算机组成原理课程得内容,通过知识得综合运用,加深对计算机系统各模块得工作原理及相互联系得认识.
3、培养科学研究得独立工作能力,取得工程设计与组装调试得实践经验。
二、实验要求
1、将已经设计得运算器、存储器与控制器连接,构建完整得计算机系统;2、编写一段可以实现一定功能得指令程序,进行计算机整机系统功能得验证.
3、所有任务要求功能仿真与必要得验证。
实验完成后,一周内提交实验报告。
三、
实验设备
PC机+QuartusⅡ10、0+FPGA(DE2;115)+TEC-8实验箱四、计算机系统(TEC;8))综合逻辑框图
硬连线控制器控制信号切换电路ALUA端口B端口CZR0R1R2R3IRPCAR双端口RAMDBUS
五、实验任务
1、将实验二得运算器、实验三得存储器与实验五得控制器连接,构建完整得计算机系统;
2、计算机整机系统功能测试,进行功能仿真与时序仿真并在DE2;115上验证。
(1)根据指令系统,编写一段可以实现一定功能得程序,要求:
有一个合理得运算功能与逻辑关系;指令数量:
不少于8条;指令类型:
停机、跳转、RR、读存、写存、算术与逻辑运算;
(2)将指令程序手工汇编成二进制代码;(3)理论上设置寄存器得初值,并计算程序执行后得结果;(4)将指令程序得二进制代码存入存储器RAM中;(5)将需要得运算数据初值存入寄存器R0-R3中;(6)进行程序连续运行得功能仿真与时序仿真,将仿真运算结果与理论计算结果进行比较。
六、实验步骤ﻫ实验电路图
子模块
(1)tri_74244
tri74244、vmoduletri_74244(en,Din,Dout); inputen; wireen;
input[7:
0]Din;
wire[7:
0]Din;
output[7:
0]Dout;
reg[7:
0]Dout;
always(enorDin)begin
if(en)Dout<=Din; else
Dout<=8"bzzzzzzzz; end
endmodule`timescale1ps/1psmoduletri_74244_vlg_tst();regeachvec;reg[7:
0]Din;regen;wire[7:
0]
Dout;tri74244、vt`timescale1ps/1psmoduletri_74244_vlg_tst();regeachvec;reg[7:
0]Din;regen;wire[7:
0]
Dout;tri_74244i1(
、Din(Din),
、Dout(Dout),、
)ne(neﻩ);integeri;
initial
begin
i=0;
Din=8'b00000000; en=0; en=1; #30en=0; #40en=1;end
initial
begin
for(i=0;i<10;i=i+1)
begin
#10Din=i; end
end
endmoduletri74244功能仿真
(2)ALU
ALU、bdf
modolue_74181
可即件文golirev为换转块模18147得中库sutrauq用使ﻩde2_4
de2_4、vmodulede2_4(en,in,out); input
[2:
1]
in; input
en;
output[4:
1]
out; reg
[4:
1]
out;
always
(enorin)
if
(en)
case(in)
2"b00:
out=4��b0001;
2"b01:
out=4'b0010; 2"b10:
out=4'b0100;
2"b11:
out=4��b1000; default:
out=4"b0000;
endcase
elseout=4��b0000; endmoduledde2_4、vtt
`timescale1ns/1psmodulede2_4_vlg_tst();regeachvec;regen;reg[2:
1]in; wire[4:
1]
out;
de2_4i1(、,)ne(neﻩ、,)ni(niﻩ、out(out)); initial
begin
en=0;endinitial
begin
#10en=1;endinitial
begin
#5in=2��b00;#15in=2"b01;#15in=2'b10;#15in=2"b11;#40$finish;endinitial$monitor($time,,,en=%bin=%bout=%b",en,in,out); endmodule
reg8
reg8、vmodulereg8(T3,DOUT,D); inputT3; wireT3; input[7:
0]D; wire[7:
0]D;
output[7:
0]DOUT; reg[7:
0]DOUT; always
(posedgeT3)
begin
DOUT〈=D;
end
endmodule
reg8、vt`timescale1ps/1psmodulereg8_vlg_tst;regeachvec;reg[7:
0]D;regT3;wire[7:
0]
DOUT;reg8i1(
、D(D),
、DOUT(DOUT),、
)3T(3Tﻩ);integeri;initialbegin
T3=0; D=8'd0;end
alwaysbegin
#5T3=~T3;
end
initial
begin
for(i=0;i<11;i=i+1)
begin
#10D=i;
end
end
endmodule
mu_4_1
mu_4_1、vmodulemu_4_1(
d1,
d2,
d3,
d4,
se1,
se2,
dout
); input[7:
0]d1; input[7:
0]d2; input[7:
0]d3;
input[7:
0]d4; inputse1; inputse2; outputdout;
reg[7:
0]dout;
always
(d1ord2ord3ord4orse1orse2)
case({se2,se1})
2"b00:
dout=d1;
2"b01:
dout=d2;
2"b10:
dout=d3; 2'b11:
dout=d4;
endcaseendmodulemu_4_1、vt`timescale1ps/1psmodulemu_4_1_vlg_tst();regeachvec;reg[7:
0]d1;reg[7:
0]d2;reg[7:
0]d3;reg[7:
0]d4;regse1;regse2;wire[7:
0]
dout;mu_4_1i1(、
)1d(1dﻩ
、d2(d2),、
)3d(3dﻩ、d4(d4),
、dout(dout),
、se1(se1),、
)2es(2esﻩ);integeri,j;initial
begin
#10d1=8"b00000001; d2=8��b00000010; d3=8'b00000011; d4=8"b00000100;
end
initial
begin
#5
while(1)
for(i=0;i<2;i=i+1)
for(j=0;j<2;j=j+1)
begin
#5se2=i;se1=j;
end
end
endmodule
ALU逻辑电路图
逻辑功能表
(1)写寄存器(例如:
向通用寄存器R0;R3分别写入数据55H/AAH/03H/04H)
T3RDDRWSBUSABUSDBUS[7、、0]功能(写R)uarr;0011055H55H��R0uarr;01110AAHAAH��R1uarr;1011003H03H��R2uarr;1111004H04H��R3
(2)选择将R0送74181得A端口,R1送送B端口,进行算术功能验算MCnS[3、、0RDRSDRWSBUSABUSDBUS[7、、0]
]0
1
55
01ff
......
0154(3)选择将R0送74181得得A端口,R1送送B端口
,进行逻辑功能验算MCnS[3、、0]RDRSDRWSBUSABUSDBUS[7、、0]1
1AA1
100
......
1
155当A=55H,B=AAH,S=0000~1111,M=0,CIN=1时仿真测试文件及功能仿真波形
`timescale1ns/1psmodulealu_vlg_tst();regT3;regSBUS;regDRW;regABUS;regLDC;regCIN;regM;reg[1:
0]RD;reg[1:
0]RS;reg[3:
0]S;reg[7:
0]SD;wire[7:
0]
DBUS;wireC;alui1(
、ABUS(ABUS),、,)C(Cﻩ、,)NIC(NICﻩ、DBUS(DBUS),、,)WRD(WRDﻩ、LDC(LDC),
、M(M),
、RD(RD),、,)SR(SRﻩ、S(S),、,)SUBS(SUBSﻩ
、,)DS(DSﻩ、T3(T3)
);initial
begin
T3=0; SBUS=1; DRW=1; ABUS=0; RD=2��b00;
SD=8"b01010; #10RD=2"b01;
SD=8��b10101010;#10RD=2��b10; SD=8'b00000011;
#10RD=2"b11;
SD=8��b00000100;
#10RD=2'b00; RS=2"b01; SBUS=0; DRW=0;
ABUS=1; CIN=1; LDC=1; M=0;
end
always
begin
#5T3=~T3;
endintegeri;initial
begin
#40
S=4��b0000;
for(i=1;i〈16;i=i+1)
#10S=i; end
initial
$monitor($time,,,M=%bS=%bCIN=%bSD=%hDBUS=%hC=%b,M,S,CIN,SD,DBUS,C);endmodule
指令ADD
R0,R1(R0+R1
��
R0)得仿真测试文件及功能仿真波形`timescale1ns/1psmodulealu_vlg_tst();regT3;regSBUS;regDRW;regABUS;regLDC;regCIN;regM;reg[1:
0]RD;reg[1:
0]RS;
reg[3:
0]S;reg[7:
0]SD;wire[7:
0]
DBUS;wireC;alui1(、,)SUBA(SUBAﻩ、,)C(Cﻩ、,)NIC(NICﻩ、,)SUBD(SUBDﻩ、DRW(DRW),、,)CDL(CDLﻩ、M(M),
、RD(RD),
、RS(RS),
、S(S),
、SBUS(SBUS),
、SD(SD),、)3T(3Tﻩ);initial
fork
T3=0;
SBUS=1; DRW=1; ABUS=0;
RD=2"b00;
SD=8'b00000111;
#10RD=2��b01; #10SD=8��b00000001;#20RD=2��b00; #20RS=2��b01; #20SBUS=0; #20DRW=0; #20ABUS=1; #20CIN=1; #20LDC=1; #20M=0; #20S=4��b1001;#30RD=2"b00;
#30DRW=1; #40DRW=0;join
always
begin
#5T3=~T3;
endendmodule
00ns
DBUS=07H
T3上升沿到来(5ns时)数据07H被写R010ns
DBUS=01H
T3上升沿到来(15ns时)数据01H被写R120ns
DBUS=R0+R1=07+01=08H30ns
T3上升沿到来(35ns)时DBUS数据08H被写R0,因此DBUS=R0+R1=08H+01H=09H(说明实现了R0+R1��R0)
注意:
此时M=0,S=1001,CIN=1(相当于C0=0),实现算术运算A+B指令SUBR0,R1(R0-R1��R0)得仿真测试文件及功能仿真波形`timescale1ns/1psmodulealu_vlg_tst();regT3;regSBUS;regDRW;regABUS;regLDC;regCIN;regM;reg[1:
0]RD;reg[1:
0]RS;reg[3:
0]S;reg[7:
0]SD;wire[7:
0]
DBUS;wireC;alui1(、,)SUBA(SUBAﻩ、C(C),、,)NIC(NICﻩ
、,)SUBD(SUBDﻩ、,)WRD(WRDﻩ、LDC(LDC),、,)M(Mﻩ、,)DR(DRﻩ、RS(RS),
、S(S),、,)SUBS(SUBSﻩ、SD(SD),
、T3(T3)
);initial
fork
T3=0; SBUS=1;
DRW=1; ABUS=0; RD=2��b00; SD=8'b00000111;
#10RD=2"b01; #10SD=8"b00000001; #20RD=2"b00; #20RS=2��b01; #20SBUS=0; #20DRW=0; #20ABUS=1;
#20CIN=0; #20LDC=1; #20M=0; #20S=4��b0110; #30RD=2'b00; #30DRW=1; #40DRW=0;join
always
begin
#5T3=~T3; endendmodule
00ns
DBUS=03H
T3上升沿到来(5ns时)数据07H被写R010ns
DBUS=01H
T3上升沿到来(15ns时)数据01H被写R120ns
DBUS=R0;R1=07-01=06H30ns
T3上升沿到来(35ns)时DBUS数据06H被写R0,因此DBUS=R0;R1=06H;01H=05H(说明实现了R0-R1��R0)
注意:
此时M=0,S=0110,实现算术运算A;B-1,设置CIN=0(相当于C0=1),让进位C0=1,因此实现运算(A;B-1)+1=A-B指令AND
R0,R1(
R0&R1��
R0)得仿真测试文件及功能仿真波形`timescale1ns/1psmodulealu_vlg_tst();regT3;regSBUS;regDRW;regABUS;regLDC;regCIN;regM;reg[1:
0]RD;reg[1:
0]RS;reg[3:
0]S;reg[7:
0]SD;wire[7:
0]
DBUS;wireC;alui1(、,)SUBA(SUBAﻩ、C(C),
、CIN(CIN),
、DBUS(DBUS),
、,)WRD(WRDﻩ、,)CDL(CDLﻩ、M(M),
、RD(RD),
、RS(RS),、,)S(Sﻩ、SBUS(SBUS),、,)DS(DSﻩ、)3T(3Tﻩ);initial
fork
T3=0;
SBUS=1; DRW=1; ABUS=0; RD=2"b00;
SD=8'b00000111;
#10RD=2��b01;
#10SD=8"b00001001;
#20RD=2��b00;
#20RS=2"b01;
#20SBUS=0;
#20DRW=0;
#20ABUS=1; #20CIN=1;
#20LDC=1;
#20M=1; #20S=4"b1;
#30RD=2"b00;
#30DRW=1; #38S=4"b0000; #40DRW=0;
join
always
begin
#5T3=~T3;
endendmodule
00ns
DBUS=00000111
T3上升沿到来(5ns时)数据被写R010ns
DBUS=00001001
T3上升沿到来(15ns时)数据被写R120ns
DBUS=R0;R1=0000000130ns
DRW=1
T3上升沿到来(35ns)时DBUS数据被写R0,38ns
M=1,S=0000
DBUS=R0&R1==11111110H实现了求反运算(说明已经实现了R0;R1��R0)(3)RAM4
RAM4、bdf
cnt256
cnt256、vmodulecnt256(Q,DATA,LDN,reset,clk);
output[7:
0]Q;input[7:
0]DATA;inputLDN,reset,clk;reg[7:
0]Q;always(posedgeclkornegedgereset)
//clk上升沿触发
begin
if(!
reset)
//异步清零,低电平有效
Q<=8��b0; elseif(!
LDN)
Q<=DATA;
//同步置数,低电平有效
elseQ<=Q+1;
//计数endendmodule
cnt256、vt`timescale1ns/1psmodulecnt256_vlg_tst;reg[7:
0]DATA;regLDN; regclk;regreset; wire[7:
0]
Q;cnt256i1(
、DATA(DATA),
、LDN(LDN),
、Q(Q),
、clk(clk),、
)teser(teserﻩ);initial
begin
DATA=1"hA; clk=0;
reset=1;
LDN=1;
DATA=8"d00010010; #20reset=0;
#40
reset=1; #260LDN=0;
#80LDN=1; end
always
begin
#20clk=~clk;
end
endmodule
asdf
口端双成生接连行进器储存口端单两用再,器储存口端单成生先块模能功宏用利ﻩ存储器RAM4仿真测试逻辑图
双端口逻辑功能表
(1)从左端口写存储器(在01H单元中写入数据11H)(右端口为只读端口)
T2
TT3MEMW
SBUS
LAR
LPC
MMBUSCLR_
ARINC
PCINC
SSD[7、、0]
功能
xx
uarr;
0
1
1
0
0
1
00
00
001
01H��AR
uarr;
xx
1
11
0
0
0
1
0
00
11
11H��(01H)
(地址线与数据线分时复用技术,先送地址,再送数据)用同样方法在02H中写入22H
(2)从左端口读存储器(从01H中读出数据11H)(右端口为只读端口)
T2
T3MEMW
SBUS
LAR
LPC
MMBUS
CLR_
ARINC
PCINC
SD[7、、0]功能
_
uarr;
0
1
1
0
0
11
0
00
01
01H��AR
uarr;
_
0
0
00
0
1
11
0
0
__
(01H)
��DBUS
(地址线与数据线分时复用技术,先送地址,再送数据)用同样方法读出02H中得22H
(3)从右端口读存储器(从01H中读出数据11H)(右端口为只读端口)
T2
T3MEMW
SSBUS
LAR
LPC
MBUS
CCLR_
ARINC
PCINC
SD[7、、0]
功能
_
uarr;
0
11
0
11
00
1
0
0
01
01H��PC
uarr;
xx
0
0
00
0
11
11
0
0
_x
(01H)��INS
(地址线与数据线分时复用技术,先送地址,再送数据)用同样方法读出02H中得22H
(4)AR自动加1读存储器(从左端口连续读存储器)
T2
T3MEMW
SBUS
LAR
LPC
MMBUS
CLR_
ARINC
PPCINC
SD[7、、0]功能
uarr;
_
0
0
0
0
11
11
1
0
__
M��DBUS
(5)PC
自动加1
读存储器(从右端口连续读存储器)
TT2
T3
MEMW
SBUS
LAR
LPC
MBUS
CLR_
ARINC
PPCINC
SD[7、、0]
功能
uarr;
_
00
0
0
0
0
11
0
11
__
M��INS
(4)UCU_ir_1
UCU_ir_1、bdf
ram64_40
rom64_40、vmodulerom64_40(
,rddaﻩq); tupniﻩ]0:
5[
;rddaﻩoutput[39:
0]
q; reg[39:
0]q; always(addr[5]oraddr[4]oraddr[3]oraddr[2]oraddr[1]oraddr[0])
nigebﻩ
case({addr[5],addr[4],addr[3],addr[2],addr[1],addr[0]})
��6ﻩ
;14000000c0h'04=〈q:
00hﻩ
ﻩ6"h01:
q〈=40��h0000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 模型 实验 报告