实验二运算器实验.docx
- 文档编号:4481000
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:13
- 大小:166.54KB
实验二运算器实验.docx
《实验二运算器实验.docx》由会员分享,可在线阅读,更多相关《实验二运算器实验.docx(13页珍藏版)》请在冰豆网上搜索。
实验二运算器实验
实验二运算器实验
1•算术逻辑运算实验
1.实验目的
1.了解简单运算器的数据传输通路。
2.验证运算功能发生器的组合功能。
3.掌握算术逻辑运算加、减、与的工作原理。
4.验证实验台运算的8位加、减、与、直通功能。
5.按给定数据,完成几种指定的算术和逻辑运算。
2.实验内容
1•实验原理
算术逻辑单元ALU的数据通路如图2-1所示。
其中运算器ALU181根据74LS181的功能用VHDL硬件描述语言编辑而成,构成8位字长的ALU参加运算的两个8位数据分别
为A[7..O]和B[7..O],运算模式由S[3..O]的16种组合决定,而S[3..O]的值由4位2
进制计数器LPM_COUNTER生,计数时钟是Selk(图2-1);此外,设M=0选择算术运算,M=1为逻辑运算,Cn为低位的进位位;F[7..O]为输出结果,Co为运算后的输出进位位。
两个8位数据由总线IN[7..O]分别通过两个电平锁存器74373锁入,ALU功能如表
2-1所示。
表2-1ALU181的运算功能
选择端
高电平作用数据
S3S2S1S0
M=H
M=L算术操作
逻辑功能
Cn=L(无进位)
Cn=H(有进位)
0000
F=A
F=A
F=A加1
0001
F=A+B
F=A+B
F=(A+B)加1
0010
F=AB
F=A+B
F=A+B+1
0011
F=0
F=减1(2的补码)
F=0
0100
F=AB
F=A加AB
F=A加AB加1
0101
F=B
F=(A+B)加ab
F=(A+B)加ab+1
0110
F=A㊉B
F=A减B
F=A减B减1
0111
F=AB
F=A+B
F=(A+B)减1
1000
F=A+B
F=A加AB
F=A加AB加1
1001
F=A㊉B
F=A加B
F=A加B加1
1010
F=B
F=(A+B)力廿AB
F=(A+B)加AB加1
1011
F=AB
F=AB
F=AB减1
1100
F=1
F=A加A*
F=A加A加1
1101
F=A+B
F=(A+B)加A
F=(A+B)加A加1
1110
F=A+B
F=(A+B)力廿A
F=(A+B)加A加1
1111
F=A
F=A
F=A减1
注1、*表示每一位都移至下一更高有效位,“+”是逻辑或,“加”是算术加注2、在借位减法表达上,表2-1与标准的74181的真值表略有不同。
三•实验步骤
(1)设计ALU元件
在QuartusII环境下,用文本输入编辑器TextEditor输入ALU181.VHD算术逻辑单元
文件,编译VHDL文件,并将ALU181.VHD文件制作成一个可调用的原理图元件。
(2)以原理图方式建立顶层文件工程
选择图形方式。
根据图2-1输入实验电路图,从QuartusII的基本元件库中将各元件
调入图形编辑窗口、连线,添加输入输出引脚。
将所设计的图形文件ALU.bdf保存到原先建立的文件夹中,将当前文件设置成工程文件,
以后的操作就都是对当前工程文件进行的。
(3)器件选择
选择Cyclone系列,在Devices中选择器件EP1C6QC240C。
编译,弓I脚锁定,再编译。
引脚锁定后需要再次进行编译,才能将锁定信息确定下来,同时生成芯片编程/配置所
需要的各种文件。
(4)芯片编程Programming(可以直接选择光盘中的示例已完成的设计进行验证实验)
打开编程窗口。
将配置文件ALU.sof下载进GW4系列现代计算机组成原理系统中的FPGA
中。
(5)选择实验系统的电路模式是NO.O,验证ALU的运算器的算术运算和逻辑运算功能
根据表2-1,从键盘输入数据A[7..O]和B[7..O],并设置S[3..O]、MCy,验证ALU
运算器的算术运算和逻辑运算功能,记录实验数据。
图2-1算术逻辑单元ALU实验原理图
四•实验过程
(1)按图2-1所示,在本验证性示例中用数据选择开关(键3控制)的高/低电平选择总线通道上的8位数据进入对应的74373中;即首先将键3输入高电平,用键2、键1分别向A[7..O]置数01010101(55H),这时在数码管4/3上显示输入的数据(55H);然后用键3输入低电平,再用键2、键1分别向B[7..0]置数(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⑹5=100(55H+AAH+1=100);
(3)若设定键8为高电平,即M=1,键KEY6控制时钟SCLK设置S[3..0]=0~F,KEY7设置
cn=0或cn=1,验证ALU的逻辑运算功能,并记录实验数据。
表2-2A[7..O],B[7..O]设置值检查
F[7..O]
SW_B
寄存器内容
S3S2S1S0
M
BU
S
A[7..O]
B[7..0]
01010101
01010101
⑷验证ALU181的算术运算和逻辑运算功能,ALU181模块功能可参照表2-1。
表2-3给定了寄存器DRI=A[7..O]和DR2=B[7..O]的数据(十六进制),要求根据此数据对照逻辑功能表所得的理论值(要求课前完成)与实验结果值进行比较(均采用正逻辑0)。
(5)表2-4列出了8种常用的算术与逻辑运算要求指定的操作内容,正确选择运算器数据通
路、控制参数S3、S2、S1、SO、M,并将实验结果值填入括号内,表中给定原始数据
DR1=A[7..0]和DR2=B[7..O],以后的数据取自前面运算的结果。
表2-3
S3S2
A[7..0]
B[7..0]
算术运算M=0
逻辑运算(M=1
S1S0
cn=0(无进位)
cn=1(有进位)
0000
AA
55
F(0AA)
F(0AB)
F(1AA)
0001
AA
55
F(0FF)
F(100)
F(100)
0010
AA
55
F(155)
F=(156)
F(0AA)
0011
AA
55
F(000)
F=(1FF)
F(000)
0100
FF
01
F(001)
F(002)
F(仆E)
0101
FF
01
F(0FF)
F(100)
F(100)
0110
FF
01
F(102)
F(101)
F(0FE)
0111
FF
01
F(101)
F(100)
F(000)
1000
FF
FF
F(仆E)
F(仆F)
F(000)
1001
FF
FF
F=(1FE)
F(仆F)
F(仆F)
1010
FF
FF
F(0FE)
F(0FF)
F(0FF)
1011
FF
FF
FWOFF)
F(0FE)
F(0FF)
1100
55
01
F=(002)
F(003)
F(001)
1101
55
01
F(056)
F(057)
F(1AB)
1110
55
01
F(1AC)
F=(1AD)
F=(055)
1111
55
01
F(001)
F(000)
F(001)
表2-48种常用的算术与逻辑运算
操作
S3S2S1S0
M
Cn
DR1
DR2
运算关系及结果显示
Cn4
逻辑乘
1011
H
66
FF
DR.DR—DR(066)
传送
1111
H
DR—DR2(066)
按位加
0110
H
DR㊉DR—DR(099)
取反
0000
H
DR—DR2(199)
加1
0000
L
H
DR+1—DR(067)
求负
DR2+1—DR()
加法
0001
L
L
DR+DR2—DR(0FF)
减法
0000
L
L
DR-DR2—DR(066)
五•实验要求
1做好实验预习,掌握运算器的数据传送通路和ALU的功能特性,并熟悉本实验中所
用的控制台开关的作用和使用方法。
2、写出实验报告,内容是:
1实验目的;
2按理论分析值填写好表2-2、表2-3和表2-4,给出对应的仿真波形。
3列表比较实验数据
(2)的理论分析值与实验结果值;并对结果进行分析。
实验
结果与理论分析值比较,有没有不同?
为什么?
4通过本实验,你对运算器ALU有何认识,有什么心得体会?
六.思考题
仁用VHDL实现输入暂存器74373B的功能,及模式选择计数器LPM_COUNTE的功能。
2.用VHDL表达整个ALU实验电路的功能,对电路进行仿真、弓I脚锁定、并在实验台
上实现其功能。
3.用VHDL设计一个简化的8位alu,具有基本算术运算(加、减、带进位加、减)功能和逻辑运算(与AND或OR异或XOR非NOT等)功能,给出仿真波形,并在实验台上实现。
4•用VHDL设计一个16位的ALU,实现基本的算术逻辑运算,为了节省逻辑资源,建议使用两个8位ALU模块级联而成。
5.对ALU181进行算术运算和逻辑运算的功能仿真,并记录仿真波形。
2.带进位算术运算实验
1.实验目的
1.验证带进位控制的算术运算功能发生器的功能。
2.按指定数据完几种指定的算术运算。
2.实验原理
在实验
(1)的基础上增加进位控制电路,将运算器ALU181的进位位送入D锁存器,
由T4和CN控制其写入,在此,T4是由键5产生的脉冲信号,这时,CN的功能是电平
控制信号(高电平时,CN有效),控制是否允许将进位信号co加入下一加法周期的最
低进位位,从而可实现带进位控制运算。
图2-2A带进位控制的ALU
3.实验步骤
(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位加法:
7AC5E9H+BD5AF8H=?
最后按照下表完成实验,记录实验数据,给出对应仿真波形
图。
S3S2S1SO
A[7..0]
B[7..0]
算术运算M=0
逻辑运算(M=1)
cn=0(无进位)
cn=1(有进位)
0101
FF
01
F()
F=()
F=()
0110
FF
01
F()
F=()
F=()
0111
FF
01
F()
F=()
F=()
1000
FF
FF
F()
F=()
F=()
1001
FF
FF
F()
F=()
F=()
1010
FF
FF
F()
F=()
F=()
表2-5
四•实验要求
1、做好实验预习,掌握带进位控制的算术运算功能发生器的功能特性。
2、写出实验报告,内容是:
①实验目的;②按理论分析值填写表2-5。
③列表比较实验
数据的理论分析值与实验结果值;并对结果进行分析。
④实验结果与理论分析值比
较,有没有不同?
为什么?
五•附加实验题和思考题
1•带进位运算与不带进位运算有何区别?
2.如何实现带进位运算,将上一次运算的进位位用于下一次的运算当中,并实现多个8
位数据的(如两个24位数据的加法)运算?
在控制电上应作怎样的改动?
给出24
位加法详细的仿真波形图。
阪占诚d曙呼叫*1卿5I?
恥11■肿血肿I邨呼;即E列
D
■"剎
Q
nwwL
1
!
1
0
列jq
卜00
I»t
E5
'i
1
H9
g
•甲』|
HH
耳1
HCO
」卯丄
ri
00
屈F卩Q|
懈
番I
图2-2B带进位控制的ALU的仿真波形
3.移位运算器实验
1.实验目的
1.验证移位控制的组合功能。
2.实验原理
1、移位运算实验原理图如图2-3所示。
移位运算器SHEFT使用VHDL语言编写,其输入/输出端分别与键盘/显示器LED连接。
移位运算器是时序电路,在时钟信号到来时状态产生变化,CLK为其时钟脉冲。
由So、S、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)到实验台;示例工程文件是ISHEFT.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)将发生变化:
6BHB5HDAH…,
(5)键8设置M=1(允许带进位循环右移),观察带进位移位允许控制C0的置位与清零对
移位的影响;
(6)根据表2-7,通过设置(M、S1、S0)验证移位运算的带进位和不带进位移位功能。
四•实验要求
1、做好实验预习,掌握带进位控制的算术运算功能发生器的功能特性。
2、写出实验报告,内容是:
①实验目的,实验原理;②按理论分析值准备并填写好实验数据表;③列表比较实验数据的理论分析值与实验结果值,并对结果进行分析;④实验结果与理论分析值比较,有没有不同?
为什么?
图2-3移位运算实验原理图
表2-7移位发生器的功能
G
S1
S0
M
功能
0
0
0
任意
保持
0
1
0
0
循环右移
0
1
0
1
带进位循环右移
0
0
1
0
循环左移
0
0
1
1
带进位循环左移
任意
1
1
任意
加载待移位数
五.思考题
如何实现有符号数的算术右移和算术左移?
修改用VHDL编写的实验参考程序,进
行功能仿真,并在实验台上调试实现。
附:
实验参考程序请参考文件夹中的1SHEFT.VHD和
CNT2.VHD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 运算器
![提示](https://static.bdocx.com/images/bang_tan.gif)