(2) Am2901的控制与操作
为了控制Am2901运算器按我们的意图完成预期的操作功能,就必须向其提供相应的控制信号和数据。
控制信号包括:
. 选择ALU的八种运算(三种算术、五种逻辑运算)功能中我们所要求的一种。这可通过提供三位功能选择码I5 I4 I3实现。如表2.13所示,其具体规定列在表中。
. 选择送入ALU的两个操作数据 R和S的组合关系(实际来源)。图2.11上已标明, R从D和A中选择, S从A、B和Q中选择,
再考虑到两边还均可选"0"值, 则我们可以从这许多可能组合中选取最有用的8种组合, 即A、Q组合, A、B组合,
O、Q组合, 0、B组合, 0、A组合, D、A组合, D、Q组合, D、O组合 ,并用I2 I1 I0三位操作数选择码控制二组多路选通门选取其一,
具体规定如表2.14示。
. 选择运算结果或有关数据以什么方式送往何处的处理方案, 这主要指通用寄存器组和Q寄存器执不执行接收操作或移位操作, 以及向芯片输出信息Y提供的是什么内容。这是通过
I8 I7 I6三位结果选择码来控制三组相应的选择门电路实现的, 具体规定如表2.15所示。
外部的数据包括:
(1). 通过D接收外部送来的数据, 这已经在ALU的操作数来源选择中解决。
(2). 应正确给出芯片的最低位的进位输入信号Cn。
(3). 关于左右移位操作过程中的RAM3、RAM0、Q3和Q0的处理, 左移操作时RAM3与Q3为输出, RAM0和Q0为输入;相反,
右移操作时, RAM0和Q0为输出, RAM3和Q3为输入, 这是由I8和I7共同控制的。这几个外部信息的接收与送入,需要在 Am2901芯片之外用另外的电路解决。
(4). 四个标志位的值的接收与记忆电路, 需在Am2901芯片之外实现。
(5). 当执行通用寄存器组的读操作时,由外部送入的A地址选中的通用寄存器的内容送往A端口,由B地址选中的通用寄存器的内容送往B端口,
B地址还用作通用寄存器的写入控制。由于有16个通用寄存器, 故A、B地址均由4位组成。当A、B地址给出同一数值时, 则将选中同一通用寄存器,
此时A、B端口同时输出同一寄存器的内容。
(6).如有通用寄存器组的写操作时, 结果将写入由B地址选择的寄存器中。
(7).芯片的输出数据Y可以从AUL的运算结果F或A口的数据二者之中选择其一。
关于该芯片的具体线路尚需说明如下几点:
(1). 芯片结果输出信号的有无还受一个/OE信号的控制, 仅当其为低电平时, 才有Y值输出, 否则输出为高阻态。
(2). 标志位F=0000为集电集开路输出, 容易实现"线与"逻辑,此管脚需经过一个电阻接到 + 5V。
(3). RAM3、RAM0、Q3、Q0均为双向(入出)三态逻辑, 一定要与外部电路正确连接。
(4). 通用寄存器组通过A端口、B端口读出内容的输出处均有锁存器线路支持, 以保证在执行诸如 A + B结果送 B 运算时操作的正确性。
(5). 该芯片还有两个用于芯片间完成高速进位的输出信号/G和/P。
(6). Am2901芯片要用一个CLK(CP)时钟信号作为芯片内通用寄存器、锁存器和Q寄存器的打入信号。其有关规定如图2.13所示。请注意两个跳变沿和低电平所实现的不同控制功能。
图2.13 Am2901的时钟信号CLK(CP)的作用
助学部分
为了帮助记忆,我们把对运算器的控制与操作概括为如下三句话:
数据组合有内外(由I2-I0码选择操作数来源),
运算功能说明白(由I5-I3码选择ALU的运算功能),
存(或不存运算结果)、移(位不移位,左移还是右移操作)、送出(ALU的结果或者A口输出内容到芯片之外)巧安排,由I8-I6码控制,存、移包括对通用寄存器组和乘商寄存器Q的操作。
|