previous | contents | next

Chapter 14 ½ The Am2903/2910 211


Table 7 Pin Functions

Abbreviation

Name

Function

Di

Direct Input Bit i

Direct input to register/counter and multiplexer. D0 is LSB.

Ii

Instruction Bit i

Selects one-of-sixteen instructions for the AM 2910.

CC

Condition Code

Used as test criterion. Pass test is a LOW on CC.

CCEN

Condition Code Enable

Whenever the signal is HIGH, CC is ignored and the part operates as though CC were true (LOW).

CI

Carry-In

Low order carry input to incrementer for microprogram counter.

RLD

Register Load

When LOW forces loading of register/counter regardless of instruction or condition.

OE

Output Enable

Three-state control of Yi outputs.

CP

Clock Pulse

Triggers all internal state changes at LOW-to-HIGH edge

VCC

+5 Volts

GND

Ground

Yi

Microprogram Address Bit i

Address to microprogram memory. Y0 is LSB, Y11 is MSB.

FULL

FULL

Indicates that five items are on the stack.

PL

Pipeline Address Enable

Can select #1 source (usually Pipeline Register) as direct input source.

MAP

Map Address Enable

Can select #2 source (usually Mapping PROM or PLA) as direct input source.

VECT

Vector Address Enable

Can select #3 source (for example, Interrupt Starting Address) as direct input source.

 

SUBROUTINE will not be executed; the contents of microprogram memory location 53 will be executed instead. Thus, the CONDITIONAL JUMP-TO-SUBROUTINE instruction at location 52 will cause the instruction either in location 90 or in location 53 to be executed next. If the TEST input is such that location 90 is selected, value 53 will be pushed onto the internal stack. This provides the return linkage for the machine when the subroutine beginning at location 90 is completed. In this example, the subroutine was completed at location 93 and a RETURN-FROM-SUBROUTINE was found at location 93.

Instruction 2 is the JUMP MAP instruction. This is an unconditional instruction which causes the MAP output to be enabled so that the next microinstruction location is determined by the address supplied via the mapping PROMs. Normally, the JUMP MAP instruction is used at the end of the instruction fetch sequence for the machine. In the example of Fig. 29, microinstructions at locations 50, 51, 52, and 53 might have been the fetch sequence, and at its completion at location 53, the jump map function would be contained in the pipeline register. This example shows the mapping PROM outputs to be 90; therefore, an unconditional jump to microprogram memory address 90 is performed.

Instruction 3, CONDITIONAL JUMP PIPELINE, derives its branch address from the pipeline register branch address value (BR0-BR11 in Fig. 28). This instruction provides a technique for branching to various microprogram sequences depending upon the test condition inputs. Quite often, state machines are designed which simply execute tests on various inputs waiting for the condition to come true. When the true condition is reached, the machine then branches and executes a set of microinstructions to perform some function. This usually has the effect of resetting the input being tested until some point in the future. Figure 29 shows the conditional jump via the pipeline register address at location 52. When the contents of microprogram memory word 52 are in the pipeline register, the next address will be either location 53 or location 30 in this example. If the test is passed, the value currently in the pipeline register (3) will be selected. If the test fails, the next address selected will be contained in the microprogram counter, which in this example is 53.

Instruction 4 is the PUSH/CONDITIONAL LOAD COUNTER instruction and is used primarily for setting up loops in microprogram firmware. In Figure 29, when instruction 52 is in the pipeline register, a PUSH will be made onto the stack and the counter will be loaded on the basis of the condition. When a PUSH occurs, the value pushed is always the next sequential instruction address. In this case, the address is 53. If the test fails, the counter is not loaded; if it is passed, the counter is loaded with the value contained in the pipeline register branch address field. Thus, a single microinstruction can be used to set up a loop to be executed a specific number of times. Instruction 8 will describe how to use the pushed value and the register/counter for looping.

previous | contents | next