ETC MAS2910CB

MA2910
APRIL 1995
DS3578-2.5
MA2910
RADIATION HARD MICROPROGRAM CONTROLLER
The industry standard MA2910 Microprogram Controller
forms part of the MA2900 family of devices.
Offering a building block approach to microcomputer and
controller design, each device in the range is expandable
permitting efficient emulation of any microcode-controlled
machine. The family has been designed for operation in
severe environments such as space, and is qualified to the
highest levels of reliability.
The MA2910 Micro-program Controller is an address
sequencer intended for sequence control of microinstructions
stored in microprogram memory in high speed microprocessor applications.
All internal elements are full 12 bits wide and address up to
4096 words with one chip. The device has an integral settable
12 bit internal loop counter for repeating instructions and
counting loop iterations.
The MA2910 has four address sources which allow
Microprogram Address to be selected from the microgram
counter, branch address bus, 9 level push/pop stack, or
internal holding register.
The MA2910 supports 100ns cycle times and has an
integral decoder function to enable external devices onto
branch address bus which eliminates the requirement for an
external decoder.
FEATURES
■ Fully Compatible with Industry Standard 2910A
■ CMOS SOS Technology
■ Radiation Hard and High SEU Immunity
■ High Speed / Low Power
■ Fully TTL Compatible
Figure 1: Block Diagram
1
MA2910
OPERATION
The MA2910 is a SOS microprogram controller intended
for use in high speed microprocessor applications. Besides the
capability of sequential access, it provides conditional
branching to any microinstruction within its 4096-microword
range.
A last-in, first-out stack provides microsubroutine return
linkage and looping capability; there are nine nesting levels of
microsubroutines. Microinstruction loop count control is
provided with a count capacity of 4096.
The device is controlled by 16, 4-bit microinstructions. The
PLA decodes the microinstructions on I(3:P) and produces
select control codes for the multiplexer, register/counter,
microprogram counter register, and stack. The 4-bit
microinstructions also generate three active low enable
signals (PL, VECT, and MAP) for external use. The operation
of each device block is detailed below:
MULTIPLEXER
The MA2910 contains a four-input multiplexer that is used
to select either the register/counter, direct input, microprogram
counter, or stack as the source of the next microinstruction
address.
REGISTER/COUNTER
points to the last file word written. This allows stack reference
operations (looping) to be performed without a POP.
Explicit control of the stack pointer occurs during
instruction 0 (RESET), which makes the stack empty by
resetting the SP to zero. After a RESET, and whenever the
stack is empty, the contents of the top of the stack are
undefined until a push occurs. Any POPs performed while the
stack is empty put undefined data on the outputs and leave the
stack at zero.
The stack pointer operates as an up/down counter. During
microinstructions 1,4, and 5, the PUSH operation may occur.
This causes the stack pointer to increment and the file to be
written with the required return linkage. On the cycle following
the PUSH, the return data is at the new location pointed to by
the stack pointer.
During five microinstructions, a POP operation may occur.
The stack pointer decrements at the next rising clock edge
following a POP, effectively removing old information from the
top of the stack.
The stack pointer linkage is such that any sequence of
pushes, pops, or stack references can be achieved. At RESET
(instruction 0), the depth of nesting becomes zero. For each
PUSH, the nesting depth increases by one; for each POP, the
depth decreases by one.
The register/counter consists of 12 D-type, edgetriggered
flip-flops, with a common clock enable. It is operated during
microinstructions (8,9,15) as a 12-bit down counter, with result
= zero available as a microinstruction branch test criterion.
This provides efficient iteration of microinstructions.
The register/ counter is arranged such that if it is preloaded
with a number N and is then used as a loop termination
counter, the sequence will be executed exactly N+1 times.
During instruction 15, a three way branch under combined
control of the loop counter and the condition code is available.
When its load control, RLD, is LOW, new data is loaded on the
next positive control transition.
The output of the register/counter is available to the
multiplexer as a source for the next microinstruction address.
The direct input furnishes a source of data for loading the
register /counter.
D (0 to 11) (Direct input)
These connections provide direct input to the register/
counter, and the multiplexer. D0 is the least significant bit and
D1 the most significant
MICROPROGRAM COUNTER-REGISTER
CC (Condition Code)
This active low input is used to determine the result of
conditional instructlon. LOW indicates a TRUE conditlon.
The Microprogram Counter Register (µPC) is composed of
a 12-bit incrementer followed by a 12-bit register. The (µPC)
can be used in one of two ways: When the carry-in to the
incrementer is HIGH, the microprogram register is loaded onto
the next clock cycle with the current Y output word plus one
(Y + 1 ➝ µPC). Sequential microinstructions are thus
executed. When the carry-in is LOW, the incrementer passes
the Y output unmodified so that the µPC is reloaded with the
same Y word on the next clock cycle (Y ➝ µPC). The same
microinstruction is thus executed any number of times.
STACK AND STACK POINTER
The third source available at the multiplexer input is a
9-word by 12-bit stack. The stack is used to provide return
address linkage when executing microsubroutines or loops.
The stack contains a built-in stack pointer (SP) which always
2
PIN DESCRIPTIONS
VDD and GND (Power and Ground)
The MA2910 operates from a single supply voltage of
5V + 10%
I (0 to 3) (instruction bus)
The data on these inputs is read on the rising edge of CP. It
determlnes the instruction to be executed in accordance with
table 1.
CCEN (Condition code enable)
This active low input enables the CC input. When CCEN is
HIGH, CC is ignored and a conditional operation executed as
though CC were LOW (TRUE).
CI (Carry input)
When HIGH this input causes the microprogramme
counter register to increment on the rising edge of CP. When
LOW the counter remains unchanged.
RLD (Register load)
This active low input loads the register/counter from the D
bus on the rising edge of CP. It will override any HOLD or DEC
instruction specified by data on the I bus.
MA2910
Y (0 to 11) (Microcode address)
This is a 12 bit wide tristate output bus. It carries the
microcode address generated according to the instruction
read in from the I bus. OE can be used to put the bus in a high
impedance state. This allows another to take control of the
microcode address bus.
OE (Output enable)
This active low input is used to enable the 12 lines of the Y
bus.
CP (Clock Pulse)
A LOW-to-HlGH transition on this input is used to trigger all
state changes within the device.
I3 - I0
FULL (stack full)
The active low output FULL indicates that 9 items have
been loaded onto the stack .
PL, MAP & VECT (pipeline, map and vector)
These active low outputs are set according to the
instruction being executed. At any time only one is active.
They may be used to select from one of three possible
external sources for microprogramme jumps, being used
directly as three-state enables for these sources.
Typically: PL enables the primary source of
microprogramme jumps, usually part of a pipeline register;
MAP enables a PROM which maps an instruction to a
microcode starting location; VECT enables an optional third
source, after a vector from DMA or interrupt source.
FAIL CCEN =
LOW & CC =
HIGH
Y
STACK
PASS CCEN =
HIGH & CC =
LOW
Y
STACK
X
0
CLEAR
O
CLEAR
HOLD
PL
X
PC
HOLD
D
PUSH
HOLD
PL
JUMP MAP
X
D
HOLD
D
HOLD
HOLD
MAP
CJP
COND JUMP PL
X
PC
HOLD
D
HOLD
HOLD
PL
PUSH
PUSH/COND LD
X
PC
PUSH
PC
PUSH
Note 1
PL
X
R
PUSH
D
PUSH
HOLD
PL
MNEMONIC
NAME
REGISTER
/CONTROL
0
JZ
JUMP ZERO
1
CJS
COND JS P PL
2
JMAP
3
4
REGISTER/
CONTROL
ENABLE
CNTR
5
JSRP
COND JSB R/PL
VECTOR
6
CJV
COND JUMP
X
PC
HOLD
D
HOLD
HOLD
7
JRP
COND JUMP R/PL
X
R
HOLD
D
HOLD
HOLD
8
RFCT
VECT
PL
REPEAT LOOP
≠0
F
HOLD
F
HOLD
DEC
PL
CNTR ≠ 0
=0
PC
POP
PC
POP
HOLD
PL
≠0
D
HOLD
D
HOLD
DEC
PL
.
9
RPCT
REPEAT PL,
CNTR ≠ 0
=0
PC
HOLD
PC
HOLD
HOLD
PL
10
CRTN
COND RTN
X
PC
HOLD
F
POP
HOLD
PL
11
CJPP
COND JUMP PL
X
PC
HOLD
D
POP
HOLD
PL
12
LDCT
X
PC
HOLD
PC
HOLD
LOAD
PL
& POP
LD CNTR &
CONTINUE
13
LOOP
TEST END LOOP
X
F
HOLD
PC
POP
HOLD
PL
14
CONT
CONTINUE
X
PC
HOLD
PC
HOLD
HOLD
PL
15
TWB
THREE-WAY
≠0
F
HOLD
PC
POP
DEC
PL
BRANCH
=0
D
PO P
PC
POP
HOLD
PL
Note 1: If CCEN = LOW & CC = HIGH, hold, else load.
Figure 2: Table of Instructions
3
MA2910
INSTRUCTION SET
The MA2910 provides 16 instructions which select the
address of the next microinstruction to be executed. 4 of the
instructions are unconditional and their effect depends only on
the instruction. 10 of the instructions have an effect which is
partially controlled by external conditions. 3 of the instructions
have an effect which is partially controlled by the contents of
the internal register/counter. In this discussion it is assumed
the Cl is tied HIGH.
In the 10 conditional instructions, the result of the datadependent test is applied to CC. If the CC input is LOW, the
test is considered passed, and the action specified in the name
occurs; otherwise, the test has failed and an alternate (often
simply the execution of the next sequential microinstruction)
occurs. Testing of CC may be disabled for a specific
microinstruction by setting CCEN HIGH, which unconditionally
forces the action specified in the name; that is it forces a
pass.Other ways of using CCEN include; (1) tying it HIGH,
which is useful if no microinstruction is data-dependent; (2)
tying it LOW if data-dependent instructions are never forced
unconditionally; or (3) tying it to the source of MA2910
instruction bit I0, which leaves instructions 4,6 and 10 as datadependent but leaves others unconditional. All of these tricks
save one bit of microcode width
The effect of three instructions depend upon the contents
of the register/counter. Unless the counter holds a value of
zero, it is decremented; if it does hold zero, it is held and a
different microprogram next address is selected.These
instructions are useful for executing a microinstruction loop a
finite number of times. Instruction 15 is affected both by the
external condition code and the internal register/counter.
The most effective technique for understanding the
MA2910 is to simply take each instruction and review its
operation. In order to provide some feel for the actual
execution of these instructions, examples of all 16 instructions
are included.
The examples given should be interpreted in the following
manner: The intent is to show microprogram flow as various
microprogram memory words are executed.
For example, the CONTINUE instruction (number 14)
simply means that the contents of the microprogram memory
word 50 are executed, then the contents of word 51 are
executed. This is followed by the contents of 52 and 53 The
microprogram addresses used in the examples were arbitrarily
chosen and have no meaning other than to show instruction
flow. The exception to this is the first example, JUMP ZERO,
which forces the microprogram location counter to address
ZERO. Each dot refers to the time that the contents of the
microprogram memory word is in the pipeline register. While
no special symbology is used for the conditional instructions,
the following text will explain what the conditional choices are
in each example.
Instruction 0: JZ (Jump to Zero, or Reset).
This instruction unconditionally specifies that the address
of the next microinstruction is zero. Many designs use this
feature for power-up sequences and provide the power-up
firmware beginning at microprogram memory word location 0.
4
Figure 3: 0 JUMP ZERO (JZ)
Instruction 1: Conditional Jump-to-Subroutine.
This instruction is a conditional Jump-to-Subroutine via the
address provided in the pipeline register. As shown in figure 4,
the machine might have executed words at address 50, 51,
and 52. When the contents of address 52 is in the pipeline
register the next address control function is the
CONDITIONAL JUMP-TO-SUBROUTINE. Here, if the test is
passed, the next instruction executed will be the contents of
microprogram memory location 90. If the test has failed, the
JUMP-TO-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 the
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 would be found at location
93.
Figure 4: COND JSB PL (CJS)
Instruction 2: Jump-Map.
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.
MA2910
Figure 5: 2 JUMP MAP (JMAP)
In the example of Figure 5, 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.
This instruction derives its branch address from the
pipeline register branch address value (BR0-BR 11). 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 functions. This usually has the effect of resetting
the input under test until some point in the future.
The example shows the conditional jump via the pipeline
register address at location 52. When the contents of
mlcroprogram memory word 52 are in the pipeline register, the
next address will be either location 53 or 30, in this example. If
the test is passed, the value currently in the pipeline register
(30) will be selected. If the test fails, the next address selected
will be contained in the microprogram counter which, in this
example, is location 53.
Instruction 4: Push/Conditional, Load Counter.
This instruction is used primarily for setting up loops in
microprogram firmware. In this example, when instruction 52 is
in the pipeline register, a PUSH will be made onto the stack
and the counter will be loaded based on 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.
Figure 7: 4 PUSH/COND LD CNTR (PUSH)
Instruction 5: Conditional Jump-to-Subroutine.
This instruction is a Conditional Jump-to-Subroutine via the
register/counter of the contents of the PIPELINE register. A
PUSH is always performed and one of two subroutines
executed. In this example, either the subroutine beginning at
address 80 or the subroutine beginning at address 90 will be
performed. A RETURN-FROM-SUBROUTINE (instruction
number 10) returns the microprogram flow to address 55.
In order for this microinstruction control sequence to
operate correctly, both the next address fields of instruction 53
and the next address fields of instruction 54 would have to
contain the proper value. Lets assume that the branch address
Figure 6: 3 COND JUMP PL (CLP)
Figure 8: 5 COND JSB R/PL (JSRP)
5
MA2910
fields of instruction 53 contain the value 90 so that it will be in
the MA2910 register/counter when the contents of the address
54 are in the pipeline register.
This requires that the instruction at address 53 loads the
register/counter. Now,during the execution of instruction 5 (at
address 54), if the test failed, the contents of the register
(value=90) will select the address of the next microinstruction.
If the test input passes, the pipeline register contents
(value=80) will determine the address of the next
microinstruction. Therefore, this instruction provides the ability
to select one of two subroutines to be executed based on a test
condition.
Instruction 6: Conditional Jump Vector.
This instruction provides the capability to take the branch
address from a third source heretofore not discussed. In order
for this instruction to be useful, the MA2910 output VECT is
used to control a three-state control input of a register, buffer,
or PROM containing the next microprogram address. This
instruction provides one technique for performing interrupt
type branching at the microprogram level. Since this
instruction is conditional, a pass causes the next address to be
taken from the vector source, while failure causes the next
address to be taken from the microprogram counter.
In the example, if the Conditional Jump Vector instruction is
contained at location 52, execution will continue at vector
address 20 if the CC input is LOW and the microinstruction at
address 53 will be executed if the CC input is HIGH.
Figure 9: 6 COND JUMP VECTOR (CJV)
Instruction 7: Conditional Jump.
Conditional Jump via the contents of the MA2910 Register/
Counter or the contents of the Pipeline register. This
instruction is very similar to instruction 5; the Conditional
Jump-to-subroutine via R or PL. The major difference between
instruction 5 and instruction 7 is that no push onto the stack is
performed with 7.
The example depicts this instruction as a branch to one of
the two locations depending on the test condition. The
example assumes the pipeline register contains the value 70
when the contents of address 52 are being executed. As the
contents of address 53 are clocked into the pipeline register,
the value 70 is loaded into the register/counter in the MA2910.
The value 80 is available when the contents of the address 53
are in the pipeline register. Thus, control is transferred to either
address 70 or address 80 depending on the test condition.
6
Figure 10: 7 COND JUMP R/PL (JRP)
Instruction 8: Repeat Loop, Counter ≠ Zero.
This microinstruction makes use of the decrementing
capability of the register/counter. To be useful, some previous
instruction, such as 4, must have loaded a count value into the
register/counter. This instruction checks to see whether the
register/counter contains a non-zero value. If so, the register/
counter is decremented, and the address of the next
microinstruction is taken from the top of the stack.
If the register/counter contains zero, the loop exit condition
is occurring; control falls through to the next sequential
microinstruction by selecting µPC; the stack is POP’d by
decrementing the stack pointer, but the contents of the top of
the stack are thrown away.
In this example, location 50 is most likely to have contained
a Push/Conditional Load Counter instruction which would
have caused address 51 to be PUSHed on the stack and the
counter to be loaded with the proper value for looping the
desired number of times.
In this example, since the loop test is made at the end of
the instructions to be repeated (microaddress 54), the proper
value to be loaded by the instructions at address 50 is one less
than the desired number of passes through the loop .
This method allows a loop to be executed 1 to 4096 times.
If it desired to execute the loop from 0 to 4095 times, the
firmware should be written to make the loop exit test
immediately after loop entry.
Single-microinstruction loops provide a highly efficient
capability for executing a specific microinstruction a fixed
number of times. Examples include fixed rotates, byte swap,
fixed point multiply, and fixed point divide.
Figure 11: 8 ERPEAT LOOP, CNTR ≠ 0 (RFCT)
MA2910
Instruction 9: Repeat Pipeline Register, Counter ≠ Zero
This instruction is similar to instruction 8 except that the
branch address now comes from the pipeline register rather
than the file. In some cases, this instruction may be thought of
as a one-word file extension; that is, by using this instruction, a
loop with the counter can still be performed when subroutines
are nested nine deep. This instruction’s operation is very
similar to that of instruction 8. The differences are that on this
instruction, a failed test condition causes the source of the next
microinstruction address to be the D inputs; and, when the test
condition is passed, this instruction does not perform a POP
because the stack is not being used.
In this example, the REPEAT PIPELINE, COUNTER J
ZERO instruction is instruction 52 and is shown as a single
microinstruction loop. The address in the pipeline register
would be 52. Instruction 51 in this example could be the LOAD
COUNTER AND CONTINUE instruction (number 12). While
the example shows a single microinstruction loop, by simply
changing the address in a pipeline register, multi-instruction
loops can be performed in this manner for a fixed number of
times as determined by the counter.
Figure 12: 9 REPEAT PL, CNTR ≠ 0 (RPCT)
Instruction 10: Conditional return form Subroutine.
As the name implies, this instruction is used to branch from
the subroutine back to the next microinstruction address
following the subroutine call. Since this instruction is
conditional, the return is performed only if the test is passed.
If the test is failed, the next sequential microinstruction is
performed. This example depicts the use of the conditional
RETURN-FROM-SUBROUTINE instruction in both the
conditional and the unconditional modes.
This example first shows a JUMP-TO-ROUTINE at
instruction location 52 where control is transferred to location
90. At location 93, a conditional RETURN-FROMSUBROUTINE instruction is performed. If the test is passed,
the stack is accessed and the program will transfer to the next
instruction at address 53. If the test is failed, the next
microinstruction at address 94 will be executed, the program
will continue to address 97 where the subroutine is complete.
To perform an unconditional RETURN-FROM-SUBROUTINE,
the conditional RETURN-FROM-SUBROUTINE instruction is
executed unconditionally; the microinstruction at address 97 is
programmed to force CCEN HIGH, disabling the test and the
forced PASS causes an unconditional return.
Figure 13: 10 COND RETURN (CRTN)
Instruction 11: Conditional Jump Pipeline register
address and POP stack.
This instruction provides another technique for loop
termination and stack maintenance. The example shows a
loop being performed from address 55 back to address 51.
The instructions at locations 52,53, and 54 are all conditional
JUMP and POP instructions. At address 52, if the CC input is
LOW, a branch will be made to address 70 and the stack will
be properly maintained via a POP. Should the test fail, the
instruction at location 53 ( the next sequential instruction) will
be executed. Likewise, at address 53, either the instruction at
90 or 54 will be subsequently executed, respective to the test
being passed or failed. The instruction at 54 follows the same
rules, going to either 80 or 55.
An instruction sequence as described here, using the
Conditional Jump Pipeline and POP instruction, is very useful
when several inputs are being tested and the microprogram is
looping waiting for any of the inputs being tested to occur
before proceeding to another sequence of instructions. This
provides the powerful jump-table programming technique at
the firmware level .
Figure 12: 9 REPEAT PL, CNTR ≠ 0 (RPCT)
7
MA2910
Instruction 12: Load Counter and Continue.
This instruction simply enables the counter to be loaded
with the value at its parallel inputs. These inputs are normally
connected to the pipeline branch address field which (in the
architecture being described here) serves to supply either a
branch address or a counter value depending upon the
microinstruction being executed.
Altogether there are three ways of loading the counter: the
explicit load by this instruction 12; the conditional load included
as part of instruction 4; and use of RLD input along with any
instructions.
The use of RLD with any instruction overrides any counting
or decrementation specified in the instruction, calling for a load
instead. Its use provides additional microinstruction power, at
the expense of one bit of microinstruction width
Instruction 12 is exactly equivalent to the combination of
instruction 14 and RLD LOW. Its purpose is to provide a simple
capability to load the register/counter in those implementations
which do not provide microprogrammed control for RLD.
The example shows the TEST END-OF-LOOP
microinstruction at address 56. If the test fails, the
microprogram will branch to address 52. Address 52 is on the
stack because a PUSH instruction had been executed at
address 51. If the test is passed at instruction 56, the loop is
terminated and the next sequential microinstruction at address
57 is executed which also causes the stack to be POP’d; thus
accomplishing the required stack maintenance.
Instruction 14: CONTINUE.
This simply causes the microprogram counter to increment
so that the next sequential microinstruction is executed. This is
the simplest microinstruction of all and should be the default
instruction which the firmware requests whenever there is
nothing better to do.
Figure 17: 14 CONTINUE (CONT)
Figure 15: 12 LD CNTR & CONTINUE (LDCT)
Instruction 13: Test End-of-Loop.
This instruction provides the capability of conditionally
exiting a loop at the bottom; that is, this is a conditional
instruction that will cause the microprogram to loop via the file
if the test is failed, else to continue to the next sequential
instruction.
Figure 16: 13 TEST END LOOP (LOOP)
8
Instruction 15: Three-Way-Branch.
This instruction is the most complex and provides for
testing of both a data-dependent condition and the counter
during one microinstruction and provides for selecting among
one of three microinstruction addresses as the next
microinstruction to be performed. Like instruction 8, a previous
instruction will have loaded a count into the register/counter
while pushing a microbranch address onto the stack.
Instruction 15 performs a decrement-and-branch-until-zero
function similar to instruction 8. The next address is taken from
the top of the stack until the count reaches zero. When the
counter reaches zero the next address comes from the
pipeline register. The above action continues as long as the
test condition fails. If at any execution of instruction 15 the test
condition is passed, no branch is taken and the microprogram
counter register furnishes the next address. When the loop is
ended, either by a count becoming zero, or by passing the
conditional test, the stack is POP’d by decrementing the stack
pointer, since interest in the value contained at the top of the
stack is then complete.
The application of instruction 15 can enhance
performance of a variety of machine-level instructions. For
instance: (1) a memory search instruction to be terminated
either by finding a desired memory content or by reaching the
search limit; (2) variable-field-length arithmetic terminated
early upon finding that the content of the portion of the field still
unprocessed is all zeroes; (3) key search in a disc controller
processing variable length records; (4) normalization of a
floating point number.
MA2910
As one example, consider the case of a memory search
instruction. As shown, the instruction at microprogram address
63 can be instruction 4 (PUSH), which will push the value 64
onto the microprogram stack and load the number N, which is
one less than the number of memory locations to be searched
before ending the search. Location 64 contains a
microinstruction which fetches the next operand from the
memory area being searched and compares it with the search
key. Location 65 contains a microinstruction which tests the
result of the comparison and is a THREE-WAY BRANCH for
microprogram control. If no match is found, the test fails and
the microprogram goes back to location 64 for the next
operand address.
When the count becomes zero, the microprogram
branches to location 72, and carries out the instruction at
location 72, if no match is found. If a match occurs on any
execution of the THREE-WAY BRANCH at location 65, control
falls through to location 66 which handles the case. Whether
the instruction ends by finding a match or not, the stack will
have been POP’d once thus removing the value 64 from the
top of the stack.
ARCHITECTURE
ONE LEVEL PIPELINE BASED (RECOMMENDED)
One level pipeline provides better speed than most other
architectures as the Microprogram Memory and the MA2901
array are in parallel paths.
This is the recommended architecture for all MA2900
designs.
Figure 19a: One level Pipeline Based
Figure 18: 15 THREE-WAY BRANCH (TWB)
Figure 19b: Timing relationship in the CCU
9
MA2910
Instruction Based
A Register at the Microprogram Memory output contains
the microinstruction being executed. The Microprogram
Memory and MA2901 delay are in series. Conditional
branches are executed on the same cycle as the ALU
operation generating the condition.
Address Based
The Register at the MA2910 output contains the
microinstruction being executed. The Microprogram Memory
and MA2901 are in series within the critical path. This
architecture is of comparable speed to the Instruction Based
architecture, but requires fewer register bits, since only the
address (typically 10 to 12 bits) is stored instead of the
instruction.
Figure 20: Instruction Based
Data Based
The Status Register provides conditional branch control
based on results of the previous ALU cycle. The Microprogram
memory and the MA2901 are in series within the critical path.
Figure 22: Address Based
Two Level pipeline Based
This architecture provides the highest possible speed. It is,
however, more difficult to program as the selection of a
microinstruction occurs two instructions ahead of its execution.
Figure 21: Data Based
Figure 23: Two Level Pipeline Based
10
MA2910
DC CHARACTERISTICS AND RATINGS
Parameter
Min
Max
Units
Supply Voltage
-0.5
7
V
Input Voltage
-0.3
VDD+0.3
V
Current Through Any Pin
-20
+20
mA
Operating Temperature
-55
125
°C
Storage Temperature
-65
150
°C
Note: Stresses above those listed may cause permanent
damage to the device. This is a stress rating only and
functional operation of the device at these conditions, or at
any other condition above those indicated in the operations
section of this specification, is not implied. Exposure to
absolute maximum rating conditions for extended periods
may affect device reliability.
Figure 24: Absolute Maximum Ratings
Subgroup
Definition
1
Static characteristics specified in Figure 26 at +25°C
2
Static characteristics specified in Figure 26 at +125°C
3
Static characteristics specified in Figure 26 at -55°C
9
Switching characteristics specified in Figures 27 to 29 at +25°C
10
Switching characteristics specified in Figures 27 to 29 at +125°C
11
Switching characteristics specified in Figures 27 to 29 at -55°C
Figure 25: Definition of Subgroups
Symbol
Parameter
Conditions
Total dose radiation not exceeding
3x105 Rad (Si)
Min.
Typ.
Max .
Units
VDD
Supply voltage
-
45
5.0
55
V
VIH
Input high voltage
-
2.0
-
-
V
VIL
Input low voltage
-
-
-
08
V
VOH
Output high voltage
IOH = -2mA
2.4
-
-
V
VOL
Output low voltage
IOL = 5mA
-
-
0.4
V
IIN
Input leakage current (Note 1)
VDD = 5.5V,
VIN = VSS or VDD
-
-
±10
µA
IOZ
Tristate leakage current (Note 1)
VDD = 5.5V,
VIN = VSS Or VDD
-
-
±50
µA
IDD
Power supply current
Static, VDD = 5.5V
-
0.1
10
mA
Mil-Std-883, method 5005, subgroups 1, 2, 3
VDD = 5V ±10%, over full operating temperature range.
Note 1: Worst case at TA = +125°C, guaranteed at TA = -55°C. 300K Rad(Si) values at higher radiation levels are available on
request.
Figure 26: Operating Electrical Characteristics
11
MA2910
AC ELECTRICAL PARAMETERS
1. VDD = 5V ±10%. CCL = 50pF
2. Operating temperature is specified when ordering (see ordering information section on last page).
3. Enable/Disable times measured to 0.5V change on output voltage level with CL = 50pF.
4. Time measurement Reference Level = 1.5 Volts.
5. Input Pulse = VSS to 3.0 Volts.
6. Set-up and hold times measured relative to CP.
Input
ts
th
Di → R
Di → PC
I0-I3
CC
CCEN
CI
RLD
16
20
30
35
35
15
15
5
5
5
0
0
5
5
Minimum Clock LOW Time
Minimum Clock HIGH Time
Minimum Clock Period
20ns
35ns
55ns
Figure 28: Clock Requirements
Figure 27: Set-up and
Hold Times
Y
PL, VECT, MAP
FULL
D0-D11
I0-I3
CC
CCEN
CP
OE Enable
(Note 1)
OE Disable
(Note 1)
30
45
45
45
60
25
30
-
32
-
25
-
-
Figure 29: Combinational Delays
Mil-Std-883, method 5005, subgroups 9, 10, 11
Figure 30: AC Timings
12
Input
MA2910
OUTLINES & PIN ASSIGNMENTS
Millimetres
Ref
Inches
Min.
Nom.
Max.
Min.
Nom.
Max.
A
-
-
5.715
-
-
0.225
Y4
1
40 D3
A1
0.38
-
1.53
0.015
-
0.060
D4
2
39 Y3
b
0.35
-
0.59
0.014
-
0.023
Y5
3
38 D2
c
0.20
-
0.36
0.008
-
0.014
D5
4
37 Y2
VECT
5
36 D1
PL
6
35 Y1
MAP
7
34 D0
I3
8
33 Y0
I2
9
D
-
-
51.31
-
-
2.020
e
-
2.54 Typ.
-
-
0.100 Typ.
-
e1
-
15.24 Typ.
-
-
0.600 Typ.
-
H
4.71
-
5.38
0.185
-
0.212
Me
-
-
15.90
-
-
0.626
Z
-
-
1.27
-
-
0.050
W
-
-
1.53
-
-
0.060
XG405
D
Top
View
VDD 10
1
21
31 CP
I1 11
30 GND
I0 12
29 OE
CCEN 13
28 Y11
CC 14
27 D11
RLD 15
26 Y10
FULL 16
25 D10
D6 17
20
32 CI
24 Y9
Y6 18
23 D9
D7 19
22 Y8
Y7 20
21 D8
40
W
ME
Seating Plane
A1
A
C
H
e
b
Z
e1
15°
Figure 31: 40-Lead Ceramic DIL (Solder Seal) - Package Style C
13
MA2910
RADIATION TOLERANCE
Total Dose (Function to specification)*
3x105 Rad(Si)
Total Dose Radiation Testing
Transient Upset (Stored data loss)
5x1010 Rad(Si)/sec
Transient Upset (Survivability)
>1x1012 Rad(Si)/sec
Neutron Hardness (Function to specification)
>1x1015 n/cm2
Single Event Upset**
1x10-10 Errors/bit day
Latch Up
Not possible
For product procured to guaranteed total dose radiation
levels, each wafer lot will be approved when all sample
devices from each lot pass the total dose radiation test.
The sample devices will be subjected to the total dose
radiation level (Cobalt-60 Source), defined by the ordering
code, and must continue to meet the electrical parameters
specified in the data sheet. Electrical tests, pre and post
irradiation, will be read and recorded.
GEC Plessey Semiconductors can provide radiation
testing compliant with Mil-Std-883 method 1019 Ionizing
Radiation (total dose) test.
* Other total dose radiation levels available on request
** Worst case galactic cosmic ray upset - interplanetary/high altitude orbit
Figure 32: Radiation Hardness Parameters
ORDERING INFORMATION
Unique Circuit Designator
Radiation Tolerance
S
R
Q
MAx2910xxxxx
Radiation Hard Processing
100 kRads (Si) Guaranteed
300 kRads (Si) Guaranteed
QA/QCI Process
(See Section 9 Part 4)
Test Process
(See Section 9 Part 3)
Package Type
C
N
Ceramic DIL (Solder Seal)
Naked Die
Assembly Process
(See Section 9 Part 2)
Reliability Level
For details of reliability, QA/QC, test and assembly
options, see ‘Manufacturing Capability and Quality
Assurance Standards’ Section 9.
14
L
C
D
E
B
S
Rel 0
Rel 1
Rel 2
Rel 3/4/5/STACK
Class B
Class S
MA2910
HEADQUARTERS OPERATIONS
CUSTOMER SERVICE CENTRES
GEC PLESSEY SEMICONDUCTORS
Cheney Manor, Swindon,
Wiltshire, SN2 2QW, United Kingdom.
Tel: (01793) 518000
Fax: (01793) 518411
• FRANCE & BENELUX Les Ulis Cedex Tel: (1) 64 46 23 45 Fax: (1) 64 46 06 07
• GERMANY Munich Tel: (089) 3609 06-0 Fax: (089) 3609 06-55
• ITALY Milan Tel: (02) 66040867 Fax: (02) 66040993
• JAPAN Tokyo Tel: (03) 5276-5501 Fax: (03) 5276-5510
• NORTH AMERICA Scotts Valley, USA Tel: (408) 438 2900 Fax: (408) 438 7023
• SOUTH EAST ASIA Singapore Tel: (65) 3827708 Fax: (65) 3828872
• SWEDEN Stockholm Tel: 46 8 702 97 70 Fax: 46 8 640 47 36
• TAIWAN, ROC Taipei Tel: 886 2 5461260 Fax: 886 2 7190260
• UK, EIRE, DENMARK, FINLAND & NORWAY Swindon, UK Tel: (01793) 518527/518566
GEC PLESSEY SEMICONDUCTORS
P.O. Box 660017,
1500 Green Hills Road, Scotts Valley,
California 95067-0017,
United States of America.
Tel: (408) 438 2900
Fax: (408) 438 5576
Fax: (01793) 518582
These are supported by Agents and Distributors in major countries world-wide.
© GEC Plessey Semiconductors 1995 Publication No. DS3578-2.5 April 1995
TECHNICAL DOCUMENTATION - NOT FOR RESALE. PRINTED IN UNITED KINGDOM.
This publication is issued to provide information only which (unless agreed by the Company in writing) may not be used, applied or reproduced for any purpose nor form part of any order or contract nor to
be regarded as a representation relating to the products or services concerned. No warranty or guarantee express or implied is made regarding the capability, performance or suitability of any product or
service. The Company reserves the right to alter without prior notice the specification, design or price of any product or service. Information concerning possible methods of use is provided as a guide only
and does not constitute any guarantee that such methods of use will be satisfactory in a specific piece of equipment. It is the user's responsibility to fully determine the performance and suitability of any
equipment using such information and to ensure that any publication or data used is up to date and has not been superseded. These products are not suitable for use in any medical products whose
failure to perform may result in significant injury or death to the user. All products and materials are sold and services provided subject to the Company's conditions of sale, which are available on request.
15
For more information about all Zarlink products
visit our Web Site at
www.zarlink.com
Information relating to products and services furnished herein by Zarlink Semiconductor Inc. trading as Zarlink Semiconductor or its subsidiaries (collectively “Zarlink”)
is believed to be reliable. However, Zarlink assumes no liability for errors that may appear in this publication, or for liability otherwise arising from the application or
use of any such information, product or service or for any infringement of patents or other intellectual property rights owned by third parties which may result from
such application or use. Neither the supply of such information or purchase of product or service conveys any license, either express or implied, under patents or
other intellectual property rights owned by Zarlink or licensed from third parties by Zarlink, whatsoever. Purchasers of products are also hereby notified that the use
of product in certain ways or in combination with Zarlink, or non-Zarlink furnished goods or services may infringe patents or other intellectual property rights owned
by Zarlink.
This publication is issued to provide information only and (unless agreed by Zarlink in writing) may not be used, applied or reproduced for any purpose nor form part
of any order or contract nor to be regarded as a representation relating to the products or services concerned. The products, their specifications, services and other
information appearing in this publication are subject to change by Zarlink without notice. No warranty or guarantee express or implied is made regarding the capability,
performance or suitability of any product or service. Information concerning possible methods of use is provided as a guide only and does not constitute any guarantee
that such methods of use will be satisfactory in a specific piece of equipment. It is the user’ s responsibility to fully determine the performance and suitability of any
equipment using such information and to ensure that any publication or data used is up to date and has not been superseded. Manufacturing does not necessarily
include testing of all functions or parameters. These products are not suitable for use in any medical products whose failure to perform may result in significant injury
or death to the user. All products and materials are sold and services provided subject to Zarlink’ s conditions of sale which are available on request.
Purchase of Zarlink s I2C components conveys a licence under the Philips I2C Patent rights to use these components in and I2C System, provided
that the system conforms to the I2C Standard Specification as defined by Philips.
Zarlink and the Zarlink Semiconductor logo are trademarks of Zarlink Semiconductor Inc.
Copyright 2001, Zarlink Semiconductor Inc. All Rights Reserved.
TECHNICAL DOCUMENTATION - NOT FOR RESALE