计算机组织与结构
课程实验报告
姓名:
学号:
班级:
指导教师:
实验一:算术逻辑运算单元ALU设计实验
实验内容
算术逻辑运算单元ALU设计实验
实验原理
算术逻辑单元ALU的数据通路如下所示。其中ALU181根据74LS181的功能用VHDL硬件描述语言编辑而成,构成8位字长的ALU。参加运算的两个八位数据分别为A[7..0]和B[7..0]。运算模式由S[3..0]的16种组合决定,而S[3..0]的值由4位二进制计数器LPM_COUNTER产生,计数时钟是Sclk;此外,设M=0,选择算术运算,M=1位逻辑运算,CN为低位的进位位;F[7..0]为输出结果;C0为运算后的输出进位位。两个8位数据由总线IN[7..0]分别通过两个电平锁存器74373锁入。
实验任务
(1)按原理图所示,在此验证性示例中用A0_B1(键3)产生锁存信号,将IN[7..0]的8位数据进入对应的8位数据锁存器中;即首先使A0_B1(键3)=0,用键2、键1分别向A[7..0]置55H),这时在数码管2/1上显示输入的数据(55H);然后用键3输入高电平1,再用键2、键1分别向B[7..0]置AAH),这时在数码管4/3上显示输入的数据(AAH);这时表示在图中的两个8位数据锁存器lpm_dff锁存器中分别被锁入了加数55H和被加数AAH。
(2)设定键8为低电平,即M=0(允许算术操作),键6控制时钟SCLK,可设置表4-1的S[3..0]=0 ~ F。现连续按动键6,设置操作方式选择S[3..0]=9(加法操作),使数码管8显示9,以验证ALU的算术运算功能:
当键7设置cn=0(最低位无进位)时,数码管7/6/5=0FF(55H+AAH=0FFH);
当键7设置cn=1(最低位有进位)时,数码管7/6/5=100(55H+AAH+1=100H);
(3)若设定键8为高电平,即M=1,键KEY6控制时钟SCLK,设置S[3..0]=0~F,KEY7设置cn=0或cn=1,验证ALU的逻辑运算功能,并记录实验数据。
F[7..0]
SW_B
寄存器内容
S3 S2 S1 S0
M
BUS
A[7..0]
B[7..0]10101010101010101010
(4) 验证ALU181的算术运算和逻辑运算功能,下表给定了寄存器DRl=A[7..0]和DR2=B[7..0]的数据(十六进制),要求根据此数据对照逻辑功能表所得的理论值(要求课前完成)与实验结果值进行比较(均采用正逻辑0)。
实验过程
1、设计ALU元件。在Quartus II 环境下,用文本输入编辑器Text Editor输入ALU181.VHD算术逻辑单元文件,编译VHDL文件,并将ALU181.VHD文件(例4-1)制作成一个可调用的原理图元件。
2、以原理图方式建立顶层文件工程。选择图形方式。根据图4-50输入实验电路图,从Quartus II的基本元件库中将各元件调入图形编辑窗口、连线,添加输入输出引脚。
将所设计的原理图图形文件ALU.bdf保存到原先建立的文件夹中,将当前文件设置成工程文件,以后的操作就都是对当前工程文件进行的。
3、器件选择。选择Cyclone系列,在Devices中选择器件EP1C6QC240C8。编译,引脚锁定,再编译。引脚锁定后需要再次进行编译,才能将锁定信息确定下来,同时生成芯片编程/配置所需要的各种文件。
4、芯片编程Programming(也可以直接选择光盘中的示例)。打开编程窗口。将配置文件ALU.sof下载进GW48系列现代计算机组成原理系统中的FPGA中。
5、选择实验系统的电路模式是NO.0,验证ALU的运算器的算术运算和逻辑运算功能。根据表4-1,用按键输入数据A[7..0]和B[7..0],并设置S[3..0]、M、CN,验证ALU运算器的算术运算和逻辑运算功能,记录实验数据。
仿真波形图及分析
1、对输入进行仿真,如下图所示,分别对IN[7..0]进行赋值,同时设定计数器的值。
2、对输出结果进行仿真,0~500ns时CN设为0,可看出的值为0FFH,500~1000ns时CN的值设为1,可看出F的值为100H。
实验结果
1、按照实验任务(1)、(2)的要求,验证了ALU的算术运算功能
2、 A[7..0],B[7..0]设置值检查如下
F[7..0]
SW_B
寄存器内容
S3 S2 S1 S0
M
BUS
A[7..0]
B[7..0]
10000000010101010
1001
101010101 1010
1
3、ALU实验数据表
S3 S2