计算机组成原理模型机实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六计算机系统综合设计与实现

一、实验目的

1、深入理解计算机系统工作的基本原理,建立整机概念。

2、融会贯通计算机组成原理课程的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识。

3、培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。

二、实验要求

1、将已经设计的运算器、存储器和控制器连接,构建完整的计算机系统;

2、编写一段可以实现一定功能的指令程序,进行计算机整机系统功能的验证。

3、所有任务要求功能仿真和必要的验证。实验完成后,一周内提交实验报告。

三、实验设备

PC机+ QuartusⅡ + FPGA(DE2-115)+TEC-8实验箱

四、计算机系统(TEC-8)综合逻辑框图

硬连线控制器控制信号切换电路ALU A端口B端口C Z R0 R1 R2 R3 IR PC AR 双端口RAM DBUS

五、实验任务

1、将实验二的运算器、实验三的存储器和实验五的控制器连接,构建完整的计算机系统;

2、计算机整机系统功能测试,进行功能仿真和时序仿真并在DE2-115上验证。

(1)根据指令系统,编写一段可以实现一定功能的程序,要求:

有一个合理的运算功能和逻辑关系;

指令数量:不少于8条;

指令类型:停机、跳转、RR、读存、写存、算术和逻辑运算;

(2)将指令程序手工汇编成二进制代码;

(3)理论上设置寄存器的初值,并计算程序执行后的结果;

(4)将指令程序的二进制代码存入存储器RAM中;

(5)将需要的运算数据初值存入寄存器R0-R3中;

(6)进行程序连续运行的功能仿真和时序仿真,将仿真运算结果与理论计算结果进行比较。

六、实验步骤

实验电路图

子模块

(1)tri_74244

module tri_74244 (en,Din,Dout ); input en ;

wire en ;

input [7:0] Din;

wire [7:0] Din ;

output [7:0] Dout ;

reg [7:0] Dout ;

always @(en or Din)

begin

if (en)

Dout<= Din ;

else

Dout <= 8'bzzzzzzzz;

end

endmodule

`timescale 1 ps/ 1 ps

module tri_74244_vlg_tst(); reg eachvec;

reg [7:0] Din;

reg en;

wire [7:0] Dout;

`timescale 1 ps/ 1 ps

module tri_74244_vlg_tst();

reg eachvec;

reg [7:0] Din;

reg en;

wire [7:0] Dout;

tri_74244 i1 (

.Din(Din),

.Dout(Dout),

.en(en)

);

integer i;

initial begin i=0;

Din=8'b00000000;

en=0;

en=1;

#30 en=0;

#40 en=1;

end

initial

begin

for(i=0;i<10;i=i+1)

begin

#10 Din=i;

end

end endmodule

tri74244功能仿真

(2)ALU

modolue_74181

使用quartus库中的74181模块转换为verilog文件即可de2_4

module de2_4(en,in,out);

input [2:1] in ;

input en;

output [4:1] out ;

reg [4:1] out ;

always @ (en or in)

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

else out=4'b0000; endmodule

`timescale 1 ns/ 1 ps

module de2_4_vlg_tst();

reg eachvec;

reg en;

reg [2:1] in; wire [4:1] out;

de2_4 i1 (

.en(en),

.in(in),

.out(out)

);

initial

begin

en=0;

end

initial

begin

# 10 en=1;

end

initial

begin

# 5 in=2'b00;

#15 in=2'b01;

#15 in=2'b10;

#15 in=2'b11;

#40 $finish;

end

initial

$monitor($time,,,"en=%b in=%b out=%b",en,in,out); endmodule

相关文档
最新文档