计算机组成原理 FPGA实验指导书 联系客服

发布时间 : 星期日 文章计算机组成原理 FPGA实验指导书更新完毕开始阅读4c599f7c6edb6f1aff001fdc

1. 实验要求:

① 信息传送部件有4个,分别用I,O,M,P表示。

② 信息的宽度为4位。

③ 通过改变时序的控制,完成以下两种各部件之间信息的传送

功能。

T1、I→O,M,P

T2、I→M T3、M→P T4、P→O

T1、I→O,P

T2、I→M T3、M→P T4、P→O

2. 74ls373的Verilog 语言代码: module ls373(cp,clr,D,Q);

input cp,clr; input [3:0] D; output [3:0] Q;

reg [3:0] Q;

always@(*) begin

if (clr==0) Q<=4'b0000; else if (cp) Q<= D ;

- 13 -

end

endmodule

四.实验报告格式

1. 实验目的 2. 实验设备 3. 实验内容

A. 方案框图

B. 时序逻辑函数表达式 C. 模块代码 D. 引脚映射表 E. 加载后运行情况

4. 实验小结

实验三 运算器的设计与调试

一. 实验目的

1.熟悉MSI、74LS181 ALU的功能和使用方法。 2.了解运算部件的基本结构和数据传输过程,并掌握其设计和调试方法。

二 . 实验环境

1. 软件环境: Xilinx ISE Design Suit 10.1 2. 硬件环境: EDK-3SAISE教学平台实验箱

三 .原理

运算器是计算机的组成部件之一,不同的计算机具有不同结构的运算器,且同一结构的运算器也可以因使用器件的不同而使运算器结构在组成细节上出现,较大的差异,运算部件主要由ALU、 通用寄存器和一些专用寄存器等构成,而ALU是其核心。因此,下面介绍本实验采用的MU芯片的功能和使用。 1.芯片介绍

(1)74LS 181—算术逻辑单元(或称函数发生器)

MSI(中规模集成电路)74LS181 ALU可以对输人的两个4位数据A和B执行32种算术及逻辑运算功能,其中算术、逻辑运算各16种,该器件有A0~A3,B0~B3 两个4位数据输入端,F0~F3为结果输出端,高位进位输出端CN+4,组成进位辅助函数P和G输出端。S3、S2、S1、S0、Cn、M为控制端,其中M为模式控制,当M=1时,ALU执行对A,B的逻辑运算;M=0时执行算术运算。ALU的功能表、引脚图及内部逻辑图详见附录和器件手册。

- 14 -

A3 A2 A1 A0 B3 B2 B1 B0 CM S0 S1 S2 S3 F3 F2 F1 F0 Cn+4 74LS181的逻辑图 A=B P G 四、框图:该图表示一个简单运算部件系统的总体框图。

Cn+4 F ALU (B) (A) B AC D0…D7

在图中,ALU的数据输入,输出及对数据的处理都采用并行方式,ALU的B输入端数据来自开关输入寄存器B、A输入端数据来自累加器AC的输出,ALU的运算结果F存放在AC中,状态寄存器放两种特征:C和Z 具体要求:

(1) 数据为4位无符号二进制整数; (2)完成5种运算功能: I F=B

II F=A+ B III F=AB

IV F=A加B V F=A减B

AC的初始状态可以通过对它直接清零或者执行F=B操作给予置数;ALU

- 15 -

的控制端由开关设置;

显示运算结果 AC和状态 C、Z;

ALU用 1片 74LS181 AC用1片74LS273,B用1片74LS244,状态寄存器用1片74LS74;

五、74ls273、74ls181、74ls74代码 module ls273(clk_s,Clock,Clear,D,Q);

input clk_s,Clock,Clear; input [3:0] D; output [3:0] Q;

reg [3:0] Q;

always@(posedge clk_s ) begin

if (Clear==0) Q<=0; else

if (Clock) Q<=D; end

endmodule

module ls181(clk_s,S_in,A_in,B_in,Cn,M_in,F_out,Cn4,Zero);

input clk_s;

input [3:0] S_in; input [3:0] A_in; input [3:0] B_in; input Cn; input M_in;

output [3:0] F_out; output Cn4,Zero;

reg [4:0] F_out_tmp=0; reg Zero=0; wire Cn4;

assign F_out=F_out_tmp[3:0]; assign Cn4=F_out_tmp[4];

///ACTIVE HIGHT DATA always@(posedge clk_s) begin

- 16 -