1、实验一 脱机运算器实验一、实验目的1、深入了解位片结构运算器 AM2901的功能与用法;2、学习 4片 AM2901组成一个 16位运算器的级连方式,深化运算器部件的组成、设计、控制和使用等方面的知识。二、实验原理运算器是计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑运算,以及传送、移位、比较等操作。运算器的组成除了 ALU单元外,还包括必要的寄存器和移位器等部件。寄存器用于存放操作数和运算结果,以节省访问存储器的时间;移位器实现数据的移位功能,以扩展 ALU的运算功能,增加数据传送的灵活性。AM2901是一个 4位的位片结构运算器
2、,主要由 ALU、输入多路选择器、输出选择器、寄存器组和移位器等组成,如图 1-1所示。二选一ALUF=0000Cn+4OVRF3二选一 三选一A锁存器 B锁存器A B16个通用寄存器组B三选一44三选一Q寄存器Q3 Q0RAM0RAM3输出 Y4A口地址B口地址数据 D 4I6I7I8I3I4I5I0I1I2OECnFR S图 1-1 AM2901芯片的内部组成结构1)算术逻辑 ALUALU为 4位算术逻辑单元,共有 8种运算功能,由输入端 I5I4I3的编码值决定执行哪一种功能。2)通用寄存器组AM2901内部有一个通用寄存器组,共有 16个 4位的寄存器。寄存器组有 A和 B两个端口,其
3、中端口 A只有读出数据功能,端口 B具有读出和写入两种功能。即数据可以从 A口和 B口输出,但只能从 B口输入。3)Q 寄存器Q寄存器位 4位,在乘除运算中可用来存放乘数或商,故又称为乘商寄存器。Q 寄存器本身具有移位功能,可对数据进行左移一位或右移一位的处理。4)ALU 输入多路选择器AM2901具有两个输入多路选择器 R和 S,为 ALU提供两个操作数。R 可选择来自数据线的数据 D(来自外部)或寄存器组端口A的数据;S 可从寄存器组端口 A、B 和 Q寄存器 3个来源选取数据。两个操作数的组合由控制信号 I2I1I0的编码确定。5)移位器4位,用于对 ALU的输出实现直送、左移或右移处理
4、。6)输出选择器选择 AM2901输出数据 Y的来源。输出数据 Y有两个来源:一个是 ALU的运算结果 F,另一个是直接来自寄存器组端口 A。输出数据 Y的选择,以及 ALU的运算结果 F如何传送给寄存器组端口 B的输入或 Q寄存器,由控制信号 I8I7I6的编码值确定。表 1-1、表 1-2和表 1-3为 ALU操作运算、数据来源以及运算结果处理的选择情况。表 1-1 选 择 8种 运 算 表 1-2 选 择 ALU的 8种 输 入 数 据 组 合 表 1-3 选 择 运 算 器 的 8种 结 果 的 处 置 方 案I5 I4 I3 运算类型 I2 I1 I0 R来 源 S来 源 I8 I7
5、 I6 寄存器组 Q寄存器 Y输出0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1RSSRRSRSRSRSRSRS0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1A QA B01 Q0 B0 AD2 AD QD 00 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1F BF BF/2 BF/2 B2F B2F BF QQ/2 QQ/2 QFFAFFFFF注:1 0 表示数值恒为 0;2D 表示外部数据。7)Am2901 需要用一个 CLK(CP)时钟信号作为内部通用寄存器、锁存器和 Q寄存器的打入(锁存
6、)信号,如图 1-2所示。CLK为高电平时 A、B 锁存器即输入端的数据直通输出端,CLK 的下降沿将输入端的数据锁存。CLK 为低电平时通用寄存器从 B口接收数据,CLK 的上升沿将输入端的数据锁存,Q 寄存器接收数据的情况与通用寄存器组相同。ALU操作周期系统时钟Q寄存器接收通用寄存器接收A、B 口数据锁存图 1-2 Am2901时钟 CLK信号作用图三、实验内容与步骤1、实验说明脱机运算器实验,是指把运算器部件完全脱离与计算机主机和其他部件正常的连接关系,在完全孤立出来的运算器上进行的实验。此时,只能通过微型拨动开关和按键控制教学机的运算器完成指定的运算功能,并通过信号指示灯观察运算结果
7、。除 I8I 0 的 9个拨动开关之外,其余的拨动开关功能和作用如下:1)A 口、B 口地址(各 4位):输入从 A口、B 口对内部寄存器组的寄存器进行读、写操作的地址。2)SCI(2 位):选择最低位进位输入信号 C0的形成,可取 0、1,也可取进位标志 C的值(用于带进位的加、减运算) 。3)SSH(2 位):选择移位器左移、右移操作时最高位或最低位的移入信号。4)SST(3 位):选择运算器的操作结果对状态标志寄存器的影响,即选择某个操作结果将对状态寄存器的标志有什么影响。2、实验内容在运算器脱机环境下,以手工方式,通过拨动开关向运算器提供运算操作所需的控制信号和数据,完成运算器的运算操
8、作。3、实验步骤1)打开电源开关后,将教学机左下方的 5个拨动开关置为 1XX00(单步、16 位、脱机方式) ;先按一下“RESET”按键,再按一下“START”键(每按一下“START”键,时钟电路发出一个负脉冲) ,进行初始化。 2)将 SST 设置为“001” ,通过拨动开关向运算器提供控制信号。3)按下表所列的操作进行脱机运算器实验,将结果填入表中。其中 D1取为 0101H,D2 取为 1010H;D1、D2 通过 16位数据开关向运算器提供数据;通过指示灯观察运算结果及状态标志。4)特别说明:下表的运算实际上分两步完成:第一步完成数值运算,第二步完成赋值以及将标志状态送到标志寄存
9、器。当设置好 I8-I0、SCI、SSH 的值以及 A口和 B口的地址后,运算器进行运算,按下 START键后进行赋值(包括标志寄存器)操作。压 START前 压 START后运算 I8-I0 A B SCI SSHALU输出 CZVS ALU输出 CZVS*D1+0-R0 011000111 不用 0000 00 00 1212 随机 1212 0*D2+0-R1 011000111 不用 0001 00 00 3131 0 3131 0R0+R1-R0 011000001 0001 0000 00 00 4343 0 7474 0R0-R1-R0 011001001 0001 0000 0
10、1 00 1212 0 E0E1 1000R1-R0-R1 011001001 0000 0001 01 00 1F1F 1000 0D0D 1000R0R1-R1 011011001 0000 0001 00 00 1F1F 1000 1F1F 1000R0R1-R0 011100001 0001 0000 00 00 1212 1000 1212 1000R0R1-R0 011110001 0001 0000 00 00 0D0D 1000 1212 1000R0R1-R0 011111001 0001 0000 00 00 EDED 1000 0D0D 10012*R0-R0 11100
11、0011 不用 0000 00 00 EDED 1001 DBDA 0001R0/2-R0 101000011 不用 0000 00 00 DBDA 0001 6DED 0001注:用*标记的运算,表示 D1、D2 的数据来自外部,由拨动开关 SW给出。四、实验要求1、认真写出预习报告,包括实验用的全部数据,实验操作步骤等。2、实验之后写出实验报告,包括实验过程中遇到的问题,解决方法,实验后的心得体会及对该次实验的建议与意见。五、思考题1、请举例说明,为何有的运算在按下 START键之前和按下 START键之后运算器的输出 F相同,有的运算在按下 START键之前和按下 START键之后运算器
12、的输出 F不同?在进行运算器脱机实验时,若通过指示灯检查运算器的每次运算结果,得到运算结果是在 START之前,而得到状态寄存器中存入的状态标志结果是在 START键之后。参照 ALU的操作周期的时序知 A、B 口数据锁存是在时钟下降沿,而寄存器的接收是在低电平,按 START能得到低电平。所以按 START前后结果不同,它们得到的是不同的东西。六、实验心得本次实验是第一次了解位片结构运算器 AM2901的功能与用法,一开始对实验的仪器毫无了解,后来经过老师讲解与介绍逐渐的了解了工作原理与实验内容。本次实验最大的收获就是基本理解 Am2901的工作原理。对于 Am2901,认识到它是用来实现算
13、数和逻辑运算的,结合这次实验设计 4位 ALU,明白 ALU只是一个组合逻辑电路,它能直接对输入的数据进行运算,不会受到时钟信号的影响。 芯片有 16个 4位通用寄存器,通过 A、B 地址的选择,可以选择其中的两个寄存器参与当前的运算,但这两个寄存器的内容在传入 ALU前,还必须经过对应的 A、B 锁存器才能进入 ALU的两个输入端口,这是用来确保运算过程中数据一致性的问题的。而锁存器只有在脉冲信号的边沿端才会起作用,因此实验中会涉及到按压 STEP手动产生脉冲信号,使数据锁存。另外,对于 ALU的运算结果,它可以输出到 Y,同时又可以将结果保存在 B通用寄存器或 Q寄存器中。立即数数据不可以经过寄存器传入 ALU,它必须直接通过 R输入端进入 ALU。