数字系统组成设计实验1运算器组成2018

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

计算机组成原理实验一

运算器组成实验

I.算术逻辑运算实验**

实验示例参考:DEMO_41_ALU

一.实验目的

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

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

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

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

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

二.实验内容

1.实验原理

运算器(算术逻辑单元)ALU181根据74LS181的功能用VHDL硬件描述语言编辑而成,构成8位字长的ALU。参加运算的两个数据分别为A和B,运算模式由S[3..0]的16种组合决定;此外,设M=0,选择算术运算,M=1为逻辑运算,Cn为低位的进位位;F为输出结果,CO为运算后的输出进位。ALU功能如表1-1所示。

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

图1-1为用DE2开发板对算术逻辑单元ALU进行硬件验证的数据通路图。其中参加运算的两个8位数据由总线IN[7..0]分别通过两个电平锁存器latch8_HQU锁入,A0_B1为“0”时向A[7..0]置数,为“1”时向B[7..0]置数;F[7..0]为输出结果,CO为运算后的输出进位。

A[7..0]、B[7..0]、F[7..0]可通过七段译码器驱动DE2上的LED数码管显示数据,低电平有效。三.实验步骤

(1)设计ALU 元件

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

(2)仿真分析(以ALU181.VHD为顶层文件)

生成测试文件模版(Processing→Start→Start Test Bench Template Writer),编写测试文件及参数,设置仿真环境,对ALU181.VHD进行仿真,仿真内容如表1-3、表1-4。

(3)硬件验证电路设计(DE2开发板,以原理图为顶层文件)

根据图1-1 输入实验电路图(需在latch8_HQU、ALU181、CO输出端加译码器),从Quartus II 的基本元件库中将各元件调入图形编辑窗口、连线,添加七段译码器、输入输出引脚。将所设计的图形文件ALU181_DE2.bdf保存到原先建立的文件夹中,将当前文件设置成顶层文件,以后的操作就都是对当前工程文件进行的。

图1-1 算术逻辑单元ALU 硬件验证实验图(DE2)

(4)器件选择

根据“DE2使用手册”及“ALU181DE2硬件验证说明”规划端口。选择Cyclone I I系列,在Devices 中选择器件CycloneII EP2C35F672C6。编译,引脚锁定,再编译。引脚锁定后需再次进行编译,才能将锁定信息确定下来,同时生成芯片编程/配置所需要的各种文件。

(5)芯片编程Programming

打开编程窗口,将配置文件ALU.sof下载进DE2系统的FPGA中。

(6)验证ALU运算器的算术运算和逻辑运算功能

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

四.实验任务

(1)按图1-1 所示,在本验证性示例中用数据选择开关(SW8控制)的高/低电平选择总线通道上的8位数据进入对应的latch8_HQU中;即首先将SW8(A0_B1)输入低电平,用

SW[7..0] (IN[7..0])向A[7..0] 置数01010101(55H),这时在数码管HEX 7/6 上显示输入的数据A(55H);然后SW8(A0_B1)输入高电平,再用SW[7..0](IN[7..0])向B[7..0]置数10101010(AAH),这时在数码管HEX5/4 上显示输入的数据B(AAH);这时表示在图2-1 中的两个latch8_HQU锁存器中分别被锁入了被加数55H和加数AAH。

(2)设定SW13为低电平,即M=0(允许算术运算操作),SW[17..14]设置操作方式选择S[3..0]=9(加法操作),验证ALU 的算术运算功能:

当SW12设置CN=0(最低位无进位)时,数码管2/1/0=0FF(55H+AAH=0FFH);

当SW12设置CN=1(最低位有进位)时,数码管2/1/0=100(55H+AAH+1=100H);

(3)设定SW13为高电平,即M=1(逻辑运算),SW[17..14]设置S[3..0]=0~F,SW12设置CN=0或CN=1,验证ALU 的逻辑运算功能,并记录实验数据(表 1-2)。

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

F[7..0]CO寄存器内容S3 S2 S1 S0M CN

A[7..0]B[7..0]

010101011010101010

010101011010101010

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

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

表1-3

S3 S2 S1 S0A[7..0]B[7..0]

算术运算M=0

逻辑运算(M=1)CN=0(无进位)CN=1(有进位)

0000A A55F=()F=()F=()0001A A55F=()F=()F=()0010A A55F=()F=()F=()0011A A55F=()F=()F=()0100F F01F=()F=()F=()0101F F01F=()F=()F=()0110F F01F=()F=()F=()0111F F01F=()F=()F=()1000F F F F F=()F=()F=()1001F F F F F=()F=()F=()1010F F F F F=()F=()F=()1011F F F F F=()F=()F=()11005501F=()F=()F=()11015501F=()F=()F=()11105501F=()F=()F=()11115501F=()F=()F=()

(5)表1-4 列出了8 种常用的算术与逻辑运算要求指定的操作内容,正确选择运算器数据通路

、控制参数S3、S2、S1、S0、M,并将实验结果值填入括号内,表中给定原始数据DR1=A[7..0]和DR2=B[7..0],以后的数据取自前面运算的结果。

1、做好实验预习,掌握运算器的数据传送通路和ALU 的功能特性,并熟悉本实验中所用

的控制台开关的作用和使用方法。

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

①实验目的;

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

③列表比较实验数据(表 1-2)的理论分析值与实验结果值;并对结果进行分析。实验结果

与理论分析值比较,有没有不同?为什么?

④通过本实验,你对运算器ALU 有何认识,有什么心得体会?

六.实验题与思考题

1.用VHDL 实现电平锁存器latch8_HQU的功能。

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

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

相关文档
最新文档