一、实验目的 1、掌握简单运算器的数据传输方式。 ⒉ 验证运算功能发生器(74LS181)及进位控制的组合功能。 二、实验要求 通过Dais-CMX16+计算器组成原型教学实验系统,完成不带进位及带进位算术运算实验、逻辑、移位运算实验,熟悉ALU控制位的运用。 三、实验原理 实验中所用的运算器数据通路如图2-3-1所示。ALU运算器由CPLD描述。运算器的输出经过2片74LS245三态门与数据总线相连,2个运算寄存器AX、BX的数据输入端分别由4个74LS574锁存器锁存,锁存器的输入端与数据总线相连,准双向I/O输入输出端口用来给出参与运算的数据,经2片74LS245三态门与数据总线相连。 上图中,AXW、BXW在“搭接态”由实验连接对应的二进制开关控制,“0”有效,通过【单拍】按钮产生的负脉冲把总线上的数据打入,实现AXW、BXW写入操作。 运算器功能编码 表2.3.1 ALU运算器编码表
算术运算 | | 逻辑运算 | M15 | M13 | M12 | M11 | 功能 | | M15 | M13 | M12 | M11 | 功能 | M | S2 | S1 | S0 | M | S2 | S1 | S0 | 0 | 0 | 0 | 0 | A+B+C | 1 | 0 | 0 | 0 | B | 0 | 0 | 0 | 1 | A—B—C | 1 | 0 | 0 | 1 | /A | 0 | 0 | 1 | 0 | RLC | 1 | 0 | 1 | 0 | A-1 | 0 | 0 | 1 | 1 | RRC | 1 | 0 | 1 | 1 | A=0 | 0 | 1 | 0 | 0 | A+B | 1 | 1 | 0 | 0 | A#B | 0 | 1 | 0 | 1 | A—B | 1 | 1 | 0 | 1 | A&B | 0 | 1 | 1 | 0 | RL | 1 | 1 | 1 | 0 | A+1 | 0 | 1 | 1 | 1 | RR | 1 | 1 | 1 | 1 | A | 四、实验内容与过程(写出实验步骤、结果截图及对每一个步骤设置的理解) 1.实验内容: 验证表2.3.3 ALU运算器编码表所列的运算功能。 在给定AX=6655h、BX=AA77h的情况下,改变运算器的功能设置,观察运算器的输出,填入下页表格中,并和理论分析进行比较、验证。
表2.3.3 ALU运算器真值表 | 运算控制 | 运算表达式 | M | S2 | S1 | S0 | AX | BX | 运算结果 | 带进位算术加 | A+B+C | 0 | 0 | 0 | 0 | 6655 | AA77 | FUN=( 10CC ) | 带借位算术减 | A-B-C | 0 | 0 | 0 | 1 | 6655 | AA77 | FUN=( BBDE ) | 带进位左移 | RLC A | 0 | 0 | 1 | 0 | 6655 | AA77 | FUN=( CCAA ) | 带进位右移 | RRC A | 0 | 0 | 1 | 1 | | | FUN=( ) | 算术加 | A+B | 0 | 1 | 0 | 0 | | | FUN=( ) | 算术减 | A-B | 0 | 1 | 0 | 1 | | | FUN=( ) | 左移 | RL A | 0 | 1 | 1 | 0 | | | FUN=( ) | 右移 | RR A | 0 | 1 | 1 | 1 | | | FUN=( ) | 取BX值 | B | 1 | 0 | 0 | 0 | 6655 | AA77 | FUN=( AA77 ) | AX取反 | NOT A | 1 | 0 | 0 | 1 | 6655 | AA77 | FUN=( 99AA ) | AX减1 | A-1 | 1 | 0 | 1 | 0 | 6655 | AA77 | FUN=( 6654 ) | 清零 | 0 | 1 | 0 | 1 | 1 | | | FUN=( ) | 逻辑或 | A OR B | 1 | 1 | 0 | 0 | | | FUN=( ) | 逻辑与 | A AND B | 1 | 1 | 0 | 1 | | | FUN=( ) | AX加1 | A+1 | 1 | 1 | 1 | 0 | | | FUN=( ) | 取AX值 | A | 1 | 1 | 1 | 1 | | | FUN=( ) | 2.实验连线: K23~K0置“1”,灭M23~M0控位显示灯。然后按下表要求“搭接”部件控制电路。
连线 | 信号孔 | 接入孔 | 作用 | 有效电平 | 1 | DRCK | CLOCK | 单元手动实验状态的时钟来源 | 下降沿打入 | 2 | W | K6(M6) | 总线字长:0=16位字操作,1=8位字节操作 | | 3 | XP | K7(M7) | 源部件奇偶标志:0=偶寻址,1=奇寻址 | | 4 | X2 | K10(M10) | 源部件定义译码端X2 | 三八译码 八中选一 低电平有效 | 5 | X1 | K9(M9) | 源部件定义译码端X1 | 6 | X0 | K8(M8) | 源部件定义译码端X0 | 7 | M | K15(M15) | 运算控制位:0=算术运算,1=逻辑运算 | | 8 | S2 | K13(M13) | 运算状态位S2 | | 9 | S1 | K12(M12) | 运算状态位S1 | | 10 | S0 | K11(M11) | 运算状态位S0 | | 11 | OP | K16(M16) | 目标部件奇偶标志:0=偶寻址,1=奇寻址 | | 12 | AXW | K17(M17) | AX运算寄存器写使能,本例定义到M17位 | 低电平有效 | 13 | BXW | K18(M18) | BX运算寄存器写使能,本例定义到M18位 | 低电平有效 | 3.实验过程: (1)具体操作: 首先,我通过I/O单元“S15~S0”开关向累加器AX和暂存器BX分别置数:AX:6655;BX:AA77 关闭AX、BX写使能,令K18=K17=“1”,按下流程分别读AX=6655、BX=AA77。 令M S2 S1 S0(K15 K13~K11)等于对应运算的真值,使FUN及总线单元显示AX与BX相应的运算结果。 (2)实验过程图记录 带进位算术加:运算结果为10CC
- 带进位左移:运算结果为CCAA
- 带进位右移:运算结果为332A
- 算术加:运算结果为10CC
- 算数减:运算结果为bbdE
- 左移:运算结果为CCAA
- 右移:运算结果为b32A
- 取BX值:运算结果为AA77
- AX取反:运算结果为99AA
- AX减1:运算结果为6654
- 清零:运算结果为0000
- 逻辑或:运算结果为EE77
- 逻辑与:运算结果为2255
- AX加1:运算结果为6656
- 取AX值:运算结果为6655
(3)实验表格记录
运算控制 | 运算表达式 | | M S2 | S1 | S0 | AX | BX | 运算结果 | 带进位算术加 | A+B+C | 0 | 0 | 0 | 0 | 6655 | AA77 | FUN=( 10CC ) | 带借位算术减 | A-B-C | 0 | 0 | 0 | 1 | 6655 | AA77 | FUN=( BBDE ) | 带进位左移 | RLC A | 0 | 0 | 1 | 0 | 6655 | AA77 | FUN=( CCAA ) | 带进位右移 | RRC A | 0 | 0 | 1 | 1 | 6655 | AA77 | FUN=( 332A ) | 算术加 | A+B | 0 | 1 | 0 | 0 | 6655 | AA77 | FUN=( 10CC ) | 算术减 | A-B | 0 | 1 | 0 | 1 | 6655 | AA77 | FUN=( bbdE ) | 左移 | RL A | 0 | 1 | 1 | 0 | 6655 | AA77 | FUN=( CCAA ) | 右移 | RR A | 0 | 1 | 1 | 1 | 6655 | AA77 | FUN=( b32A ) | 取BX值 | B | 1 | 0 | 0 | 0 | 6655 | AA77 | FUN=( AA77 ) | AX取反 | NOT A | 1 | 0 | 0 | 1 | 6655 | AA77 | FUN=( 99AA ) | AX减1 | A-1 | 1 | 0 | 1 | 0 | 6655 | AA77 | FUN=( 6654 ) | 清零 | 0 | 1 | 0 | 1 | 1 | 6655 | AA77 | FUN=( 0000 ) | 逻辑或 | A OR B | 1 | 1 | 0 | 0 | 6655 | AA77 | FUN=( EE77 ) | 逻辑与 | A AND B | 1 | 1 | 0 | 1 | 6655 | AA77 | FUN=( 2255 ) | AX加1 | A+1 | 1 | 1 | 1 | 0 | 6655 | AA77 | FUN=( 6656 ) | 取AX值 | A | 1 | 1 | 1 | 1 | 6655 | AA77 | FUN=( 6655 ) |
结果解释:参照ALU运算器编码表,写出逻辑原理表示如下: 五、实验总结(包括未完成内容、结果分析、学习心得等) 实验收获: 了解了计算机的组成,以及对应的工作原理。 学习心得: 通过本次实验的数据和理论分析进行比较、验证,我们掌握了简单运算器的数据传输方式,验证运算功能发生器(74LS181) 及进位控制的组合功能. |