实验一运算器组成实验

计算机组成原理实验报告

 实验一 运算器组成实验

学院:计算机学院

班级:2010211306

学号:10211309号

姓名:   朱    璇

一 实验目的

    1.熟悉双端口通用寄存器堆的读写操作

    2.熟悉简单运算器的数据传送通路

    3.验证运算器74LS181的算术逻辑功能

    4.按给定数据,完成指定的算术,逻辑运算

二 实验电路

三 实验任务

   1.按图要求,将运算器模块与实验台操作板上的线路进行连接。

   2.用开关SW7-SW0向通用寄存器堆RF内的R0-R3寄存器置数。然后读出R0-R3的内容,在数据总线DBUS上显示出来

   3.验证ALU的正逻辑算术,逻辑运算功能.

四实验步骤

(一)将数字写入读出通用寄存器堆

1将所有开关按照如下所示的方式连接好


2将数字将34H,21H,52H,65H分别写入R0,R1,R2,R3(其中以R0为例子,其余只要改变WR0和WR1的值就可以写入操作)

首先将DP=1,DB=0;

(1)置K0(WR0)=0, K1(WR1)=0, K4(SW_BUS#)=0, K5(RS_BUS#)=1, K6(LDRi)=1, SW7-SW0=34H.在DBUS上将观察到DBUS=34H.按QD按钮,将34H写入R0.

(2)其余操作同上,只是改变K0(WR0)=1, K1(WR1)=0,SW7-SW0=21H.

(3)其余操作同上,只是改变K0(WR0)=0, K1(WR1)=1,SW7-SW0=52H.

(4)其余操作同上,只是改变K0(WR0)=1, K1(WR1)=1,SW7-SW0=65H.

3将数字从R0,R1,R2,R3中读出,并且在DBUS上显示出来。

(1)置K2(RS0)=0, K3(RS1)=0, K4(SW_BUS#)=1, K5(RS_BUS#)=0, K6(LDRi)=0.在DBUS上将观察到DBUS=34H.

(2)其余操作同上,只是改变K2(RS0)=1, K3(RS1)=0,在DBUS上将观察到DBUS=21H.

(3)其余操作同上,只是改变K2(RS0)=0, K3(RS1)=1,在DBUS上将观察到DBUS=52H.

(4)其余操作同上,只是改变K2(RS0)=1, K3(RS1)=1,在DBUS上将观察到DBUS=65H.

(二)验证ALU的逻辑功能

1将所有的开关按照如图所示的方式连接好 

DP=1,DB=0,数据通路的信号Cn#接VCC

2仿照(一)中的过程任意读入两数字到R0,R1中,然后验证ALU的功能

向R0写入55H,向R1写入AAH

1.置K0(WR0)=0, K1(WR1)=0,K4(SW_BUS#)=0,K5(RS_BUS#)=1,K6(LDRi)=1,K14(ALU_BUS#)=1.置SW7-SW0为55H,按QD按钮,将55H写入R0.

2.置K0(WR0)=1,K1(WR1)=0.K4(SW_BUS#)=0,K5(RS_BUS#)=1,K6(LDRi)=1.K14(ALU_BUS#)=1.置SW7-SW0为AAH,按QD按钮,将AAH写入R1.

3.将K0的接线换成RD0,k1的接线换成RD1,K4(SW_BUS#)=1,K6(LDRi)=0,K5(RS_BUS#)=1,K0(RD0)=0,K1(RD1)=0,K2(RS0)=1,K3(RS1)=0,K7(LDDR1)=1,K8(LDDR2)=1,K14(ALU_BUS#)=0。

3.1置K13(M)=0,然后改变s0-s3的数据,验证ALU的算术运算功能。

3.2置K13(M)=1,然后改变s0-s3的数据,验证ALU的逻辑运算功能。

五实验总结

本次试验能够让我较好的理解通用寄存器的功能,并且很好的体会了ALU的运算。学会了基本的读数和写数的功能,每次在实验的时候一定要注意数据通路上只能有一组数据否则就发生数据冲突。而且在步骤一种存在缺陷,应该将ALU-BUS#也加入到运算中,并且在不用的时候将其置为1,采用的时候将其置为0.

 

第二篇:运算器组成实验

实验二 运算器组成实验

1.算术逻辑运算实验

一.实验目的

1.  了解简单运算器的数据传输通路。

2.  验证运算功能发生器的组合功能。

3.  掌握算术逻辑运算加、减、与的工作原理。

4.  验证实验台运算的8位加、减、与、直通功能。

5.  按给定数据,完成几种指定的算术和逻辑运算。

二.实验内容

1.实验原理

算术逻辑单元ALU的数据通路如图2-1所示。其中运算器ALU181根据74LS181的功能用VHDL硬件描述语言编辑而成,构成8位字长的ALU。参加运算的两个8位数据分别为A[7..0]和B[7..0],运算模式由S[3..0]的16种组合决定,而S[3..0]的值由4位2进制计数器LPM_COUNTER产生,计数时钟是Sclk(图2-1);此外,设M=0,选择算术运算,M=1为逻辑运算,CN为低位的进位位;F[7..0]为输出结果,CO为运算后的输出进位位。两个8位数据由总线IN[7..0]分别通过两个电平锁存器74373锁入,ALU功能如表2-1所示。

表2-1                   ALU181的运算功能

注1、* 表示每一位都移至下一更高有效位,  “+”是逻辑或,“加”是算术加

注2、在借位减法表达上,表2-1与标准的74181的真值表略有不同。

三.实验步骤

(1)设计ALU元件

在Quartus II 环境下,用文本输入编辑器Text Editor输入ALU181.VHD算术逻辑单元文件,编译VHDL文件,并将ALU181.VHD文件制作成一个可调用的原理图元件。

(2)以原理图方式建立顶层文件工程

选择图形方式。根据图2-1输入实验电路图,从Quartus II的基本元件库中将各元件调入图形编辑窗口、连线,添加输入输出引脚。

将所设计的图形文件ALU.bdf保存到原先建立的文件夹中,将当前文件设置成工程文件,以后的操作就都是对当前工程文件进行的。

(3)器件选择

选择Cyclone系列,在Devices中选择器件EP1C6QC240C8。编译,引脚锁定,再编译。引脚锁定后需要再次进行编译,才能将锁定信息确定下来,同时生成芯片编程/配置所需要的各种文件。

(4)芯片编程Programming(可以直接选择光盘中的示例已完成的设计进行验证实验)

打开编程窗口。将配置文件ALU.sof下载进GW48系列现代计算机组成原理系统中的FPGA中。

(5)选择实验系统的电路模式是NO.0,验证ALU的运算器的算术运算和逻辑运算功能

根据表2-1,从键盘输入数据A[7..0]和B[7..0],并设置S[3..0]、M、Cy,验证ALU运算器的算术运算和逻辑运算功能,记录实验数据。

图2-1 算术逻辑单元ALU实验原理图

四.实验任务

(1)按图2-1所示,在本验证性示例中用数据选择开关(键3控制)的高/低电平选择总线通道上的8位数据进入对应的74373中;即首先将键3输入高电平,用键2、键1分别向A[7..0] 置数01010101(55H),这时在数码管4/3上显示输入的数据(55H);然后用键3输入低电平,再用键2、键1分别向B[7..0]置数10101010(AAH),这时在数码管2/1上显示输入的数据(AAH);这时表示在图2-1中的两个74373锁存器中分别被锁入了加数55H和被加数AAH。可双击图2-1的ALU181元件,了解其VHDL描述。

(2)设定键8为低电平,即M=0(允许算术操作),键6控制时钟SCLK,可设置表2-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的逻辑运算功能,并记录实验数据。

表2-2   A[7..0],B[7..0]设置值检查

(4) 验证ALU181的算术运算和逻辑运算功能,ALU181模块功能可参照表2-1。

表2-3给定了寄存器DRl=A[7..0]和DR2=B[7..0]的数据(十六进制),要求根据此数据对照逻辑功能表所得的理论值(要求课前完成)与实验结果值进行比较(均采用正逻辑0)。

(4)表2-4列出了8种常用的算术与逻辑运算要求指定的操作内容,正确选择运算器数据通路、控制参数S3、S2、S1、S0、M,并将实验结果值填入括号内,表中给定原始数据DR1=A[7..0]和DR2=B[7..0],以后的数据取自前面运算的结果。

表2-3

表2-4             8种常用的算术与逻辑运算

五.实验要求

1、做好实验预习,掌握运算器的数据传送通路和ALU的功能特性,并熟悉本实验中所用的控制台开关的作用和使用方法。

2、写出实验报告,内容是:

①实验目的;       ②按理论分析值填写好表2-2、表2-3和表2-4,给出对应的仿真波形。

③列表比较实验数据(2)的理论分析值与实验结果值;并对结果进行分析。实验结果与理论分析值比较,有没有不同?为什么?  ④通过本实验,你对运算器ALU有何认识,有什么心得体会?

六.实验题与思考题

1.用VHDL实现输入暂存器74373B的功能,及模式选择计数器LPM_COUNTER的功能。

3.用VHDL表达整个ALU实验电路的功能,对电路进行仿真、引脚锁定、并在实验台上实现其功能。

4.用VHDL设计一个简化的8位alu,具有基本算术运算(加、减、带进位加、减)功能和逻辑运算(与AND、或OR、异或XOR、非NOT等)功能,给出仿真波形,并在实验台上实现。

5.用VHDL设计一个16位的ALU,实现基本的算术逻辑运算,为了节省逻辑资源,建议使用两个8位ALU模块级联而成。 

6.对ALU181进行算术运算和逻辑运算的功能仿真,并记录仿真波形。

2.带进位算术运算实验

一.实验目的

1、验证带进位控制的算术运算功能发生器的功能。   2、按指定数据完成几种指定的算术运算。

二.实验原理

在实验(1)的基础上增加进位控制电路,将运算器ALU181的进位位送入D锁存器,由T4和CN控制其写入,在此,T4是由键5产生的脉冲信号,这时,CN的功能是电平控制信号(高电平时,CN有效),控制是否允许将进位信号co加入下一加法周期的最低进位位,从而可实现带进位控制运算。

图2-2A 带进位控制的ALU

三.实验步骤

(1)根据电路图2-2A和波形图B,首先使键5(T4)和键7(CN)=0;键8(M)和键3(A0_B1)=1;连续按键6,使产生9个脉冲,这时数码管8显示9(作加法运算);再用键2,键1输入加数9DH(数码管4/3显示9D);

(2)按键3=0,再用键2,键1输入被加数E5H(数码管4、3、2、1分别显示加数和被加数);再将键8(M)置0,使ALU作算术运算,这时可以从数码管6,5上看到9DH+E5H=82H(低8位和);

(3)先将键7(CN)置为1(允许锁存ALU的进位),再用键5(T4)产生一个正脉冲,就能将进位锁入D触发器中:数码管7将显示1,表示加法有进位,并被锁;同时可以看到此进位被累加,使数码管6,5=83H。

(4)置键8=1,在实验箱上作逻辑运算方面的实验,给出相应的仿真波形图;

(5)利用带进位控制,控制T4,分别由低到高输入3个8位加数和被加数,计算24位加法:

7AC5E9 H+ BD5AF8H = ?最后按照下表完成实验,记录实验数据,给出对应仿真波形图。

表2-5

四.实验要求

1、做好实验预习,掌握带进位控制的算术运算功能发生器的功能特性。

2、写出实验报告,内容是:①实验目的;②按理论分析值填写表2-5。③列表比较实验数据的理论分析值与实验结果值;并对结果进行分析。④实验结果与理论分析值比较,有没有不同?为什么?

五.附加实验题和思考题

1.带进位运算与不带进位运算有何区别?

2.如何实现带进位运算,将上一次运算的进位位用于下一次的运算当中,并实现多个8位数据的(如两个24位数据的加法)运算?在控制电路上应作怎样的改动?给出24位加法详细的仿真波形图。

图2-2B带进位控制的ALU的仿真波形

3. 移位运算器实验

一.实验目的

1. 验证移位控制的组合功能。

二.实验原理

1、移位运算实验原理图如图2-3所示。移位运算器SHEFT使用VHDL语言编写,其输入/输出端分别与键盘/显示器LED连接。移位运算器是时序电路,在时钟信号到来时状态产生变化,CLK为其时钟脉冲。由S0、S1、M控制移位运算的功能状态,具有数据装入、数据保持、循环右移、带进位循环右移,循环左移、带进位循环左移等功能。移位运算器的具体功能见表2-7所示:

2.电路连接、输入数据的按键、输出显示数码管的定义如图2-3右上角所示。

CLK——时钟脉冲,通过键5产生0—1;

M  ——工作模式,M=1时带进位循环移位,由键8控制;

C0 ——允许带进位移位输入,由 键7控制;

S  ——移位模式0~3,由 键6控制,显示在数码管LED8上;

D[7..0] ——移位数据输入,由 键(2和1)控制,显示在数码管(2和1)上;

QB[7..0]——移位数据输出,显示在数码管(6和5)上;

CN——移位数据输出进位,显示在数码管(7)上;

三.实验步骤

(1)实验台选择模式0、下载(Configure)到实验台;示例工程文件是1SHEFT.bdf,

(2)键入待移位数据。通过键盘键1、键2向D[7..0]置数01101011(6BH,显示在数码管2和1)。

(3)将D[7..0]装入移位运算器QB[7..0]。键6设置(S1,S0)=3,键8设置M=0,(S&M=6,允许加载待移位数据,显示于数码8);此时用键5产生CLK(0-1-0),将数据装入(加载进移位寄存器,显示在数码管6和5)。

(4)对输入数据进行移位运算。再用键6设置为(S1,S0)=2(S&M=4,显示于数码8,允许循环右移);连续按键5,产生CLK,输出结果QB[7..0](显示在数码管6和5)将发生变化:6BHàB5HàDAH…,

(5)键8设置M=1(允许带进位循环右移),观察带进位移位允许控制C0的置位与清零对移位的影响;

(5)根据表2-7,通过设置(M、S1、S0)验证移位运算的带进位和不带进位移位功能。

四.实验要求

1、做好实验预习,掌握带进位控制的算术运算功能发生器的功能特性。

2、写出实验报告,内容是:①实验目的,实验原理;②按理论分析值准备并填写好实验数据表;③列表比较实验数据的理论分析值与实验结果值,并对结果进行分析;④实验结果与理论分析值比较,有没有不同?为什么?

图2-3  移位运算实验原理图

表2-7 移位发生器的功能

五.思考题

如何实现有符号数的算术右移和算术左移?修改用VHDL编写的实验参考程序,进行功能仿真,并在实验台上调试实现。 附:实验参考程序请参考文件夹中的1SHEFT.VHD和CNT2.VHD

相关推荐