您好,欢迎访问三七文档
1《计算机组成原理课程设计》——十六位运算器部件的设计一、运算器概述根据冯﹒诺依曼的计算机模型,计算机由运算器、控制器、存储器、输入设备和输出设备五大部件构成,其中运算器是执行各种算术和逻辑运算操作的核心部件。运算器的基本操作包括:1)加、减、乘、除等算术运算2)与、或、非、异或等逻辑运算3)数据传送、移位、比较等操作运算器的组成除了算术/逻辑运算(ALU)单元外,还包括必要的寄存器和移位器等部件。寄存器用于存放操作数和运算结果,以节省访问存储器的时间。移位器实现数据的移位功能,以扩展ALU的运算功能,增加数据传送的灵活性。从功能和电路上看,运算器的可分为两部分:数据运算电路和数据暂存电路。在讨论运算器结构时,需要明确几个问题:1)参加运算的数据来源及结果去向运算器能直接运算的数据通常来自运算器本身的寄存器。运算器内部的寄存器能够以最快的速度提供参加运算的数据,因此运算器内部通常设有一定数量的数据寄存器。为此需要能够指定参加运算的两个寄存器的地址。运算的结果通常存放在寄存器中,应能指定接收数据的寄存器。此外,还必须明确在时间上的关系,即什么时刻送出数据参加运算,什么时刻才能正确接收运算的结果。图1和图2给出了示意性的表示。图1运算器组成示意图图2一个运算周期中各种操作的时间关系2)明确将要执行的运算功能除指出数据操作的具体类型外,还需确定什么时刻可以开始指定运算处理,什么时刻可以得到正确的运算结果。完成数据运算功能的电路是纯组合逻辑电路,即其输出结果随输入的变化而数据运算电路(组合逻辑)数据暂存电路(时序逻辑)一个运算周期控制信号的建立时间寄存器内容送出时间运算器执行运算时间运算结果到寄存器输入端时间寄存器接收运算结果时间送出结果数据输入控制信号﹒﹒﹒2变化,其输出结果的稳定主要取决于输入数据的稳定,电路本身没有记忆功能,因此输入数据需要有锁存器来保持稳定。3)运算器需要与计算机的其它部件连接起来协调工作运算器必须能够接收计算机其它部件(如存储器、I/O设备)送来的数据,以保障源源不断的数据来源,同时把运算结果送到计算机的其它部件,以体现运算处理的效能和使用价值。数据输入和输出通常经过数据总线完成,数据总线由组合逻辑电路构成,不能保存和记忆数据。二、位片结构运算器器件Am29011、AM2901的结构与组成AM2901是一个4位的位片结构运算器器件,主要由算术/逻辑运算单元(ALU)、输入多路选择器、输出选择器、寄存器组和移位器等部件组成,如图3所示。图3AM2901芯片的内部组成结构2、AM2901各组成部分及其功能1)算术逻辑ALUALU为4位算术逻辑单元,共有8种运算功能,由输入端I5I4I3的编码值确定执行哪种功能。2)通用寄存器组AM2901内部有一个通用寄存器组,共有16个4位寄存器。寄存器组有A和B两个端口,其中端口A只具有读出数据功能,而端口B具有读出和写入两种功能。即数据可以从A口和B口输出,但只能从B口输入。3)Q寄存器Q寄存器位4位,在乘除运算中可用来存放乘数或商,故称做乘商寄存器。Q寄存器本身具有移位功能,可对数据进行左移一位或右移一位的处理。4)ALU输入多路选择器二选一ALUF=0000Cn+4OVRF3二选一三选一A锁存器B锁存器AB16个通用寄存器组B三选一44三选一Q寄存器Q3Q0RAM0RAM3输出Y4A地址B地址地址D4I6I7I8I3I4I5I0I1I2OECnFRS3AM2901具有两个输入多路选择器R和S,为ALU提供两个操作数。R可选择来自数据线的数据D或寄存器组端口A的数据;S可从寄存器组端口A、B和Q寄存器3个来源选取数据。两个操作数的组合由控制信号I2I1I0的编码确定。5)移位器4位,用于对ALU的输出实现直送、左移或右移处理。6)输出选择门选择AM2901输出数据Y的来源。输出数据Y有两个来源:一个是ALU的运算结果F,另一个是直接来自寄存器组端口A。输出数据Y的选择,以及ALU的运算结果F如何传送给寄存器组端口B的输入或Q寄存器,由控制信号I8I7I6的编码值确定。表1、表2和表3为ALU操作运算、数据来源以及运算结果处理的选择情况。表1选择8种运算表2选择ALU的8种输入数据组合I5I4I3运算类型I2I1I0R来源S来源000001010011100101110111R+SS-RR-SR∨SR∧SR∧SR∨SR∨S000001010011100101110111AQAB0Q0B0ADADQD0注:D表示外部数据表3选择运算器的8种结果的处置方案I8I7I6寄存器组Q寄存器Y输出000001010011100101110111F→BF→BF/2→BF/2→B2F→B2F→BF→QQ/2→QQ/2→QFFAFFFFF7)Am2901操作时序Am2901需要用一个时钟信号CLK作为内部通用寄存器、锁存器和Q寄存器的打入(锁存)信号,如图4所示。CLK为高电平时,A、B锁存器输入端的数据直通输出端,CLK的下降沿将该瞬间输入端的数据锁存到输出端。CLK为低电平时通用寄存器从B口接收数据,CLK的上升沿将该瞬间输入端的数据锁存到通用寄存器。Q寄存器接收数据的情况与通用寄存器组相同。图4Am2901时钟CLK信号作用图ALU操作周期系统时钟Q寄存器接收通用寄存器接收A、B口数据锁存4三、十六位运算器的实现1、Am2901的引脚Am2901共有40个引脚,引脚的分类如图5所示。图5Am2901芯片引脚分类示意图1)数据输入类信号(19个)♦4位数据输入(D3~D0)♦4位数据输出(D3~D0)♦最低位进位输入信号(Cn)♦4个标志位输出信号(F3、OVER、F=0000、Cn+4)♦通用寄存器最高位及最低位移入和移出信号(RAM3、RAM0)♦Q寄存器最高位及最低位移入和移出信号(Q3、Q0)♦用于并行进位的两个信号(P、Q)2)控制类信号(19个)♦主脉冲信号(CP)♦输出使能信号(OE)♦两个寄存器地址选择信号(A3~A0、B3~B0)♦选择ALU数据来源、运算功能及结果处置信号(I8~I0)3)其它信号(2个)电源和地信号各1个。2、4片Am2901芯片之间的连接十六位运算器采用4片Am2901级联构成,4片Am2901的连接关系如图6所示。Am2901F=0000Cn+4F3OVERRAM3Q3CnRAM0Q0OEA3~A0B3~B0D3~D0I8~I0CPGPY3~Y05
本文标题:16位运算器的设计
链接地址:https://www.777doc.com/doc-1835547 .html