The IA2910A uses innovASIC’s innovative new f 3 Program to provide industry with parts that
other vendors have declared obsolete. By specifying parts through this program a customer is
assured of never having a component become obsolete again. This data sheet assumes the original
part has been designed in, and so provides a summary of capabilities only. For new designs contact
innovASIC for more detailed information.
AMD is a trademark of Advanced Micro Devices, Inc.
The IA2910A is a form, fit and function compatible part to the AMD 2910A microprogram
controller. The IA2910A is an address controller which will sequence through a series of
microinstructions contained in a ROM or PROM. There are four sources of addresses from which
the IA2910A may select. The first is a direct data bus (DIN) input, which is straightforward. The
second is an internal address register. This register contains data loaded during a previous
microinstruction. The third source is a program counter register, which generally contains the
previous address incremented by one. The final source of addresses is a nine word deep stack
register which gives the capability to execute nested subroutine linkages. All internal registers are
clocked on the rising edge of the clock input (CLK). An OEn input enables the YOUT output bus
to be tri-stated. A block diagram is shown in Figure 1.
Functional Block Diagram
Figure 1
DIN
CLK
RLDn
CCn
CCENn
Instruction
PLA
R=0
HOLD/LOAD
DECREMENT/
SELECT
PUSH/POP/
HOLD/CLEAR
Register/Counter
Mux
Zero
Detector
Stack Pointer
9 word X 12 Bit
Stack
Microprogram
counter-register
Incrementer
FULLn
CIN
I(3:0)
PLn
MAPn
CLEAR/COUNT
12
YOUT
VECTn
Copyright 1999, InnovASIC Inc.
Customer Specific IC Solutions
Page 3 of 19
IA2910A Preliminary Data Sheet
Microprogram Controller
Functional Overview
The IA2910A is a 0.8 µm CMOS microprogram controller intended for use in high-speed
microprocessor applications. It allows addressing of up to 4K words of microprogram.
The controller contains a four-input mux that is used to select either the register/counter, direct
data input, microprogram counter, or stack as the source of the next microinstruction address.
The register/counter consists of 12 D-type, edge-triggered flip-flops, with a common clock enable.
When its load control, RLDn, is LOW, new data is loaded on a positive clock transition. A few
instructions include load; in most systems, these instructions will be sufficient, simplifying the
microcode. The output of the register/counter is available to the mux as a source for the next
microinstruction address. The direct input furnishes a source of data for loading the
register/counter.
The IA2910A contains a microprogram counter that is composed of a 12-bit incrementer followed
by a 12-bit register. The counter can be used in either of two ways. When the carry-in to the
incrementer is HIGH, the microprogram register is loaded on the next clock cycle with the current
YOUT output word plus one. Sequential microinstructions are thus executed. When the carry-in is
LOW, the incrementer passes the YOUT output word unmodified so that the counter is reloaded
with the same YOUT word on the next clock cycle. The same microinstruction is thus executed
any number of times.
The third source for the mux is the direct DIN input. This source is used for branching.
The fourth source available at the mux input is a 9-word by 12-bit stack (file). 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 points to the last file word written. This allows stack
reference operations (looping) to be performed without a pop.
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 depth can grow to
nine. After a depth of nine is reached, FULLn goes LOW. Any further PUSHes onto a full stack
overwrite information at the top of the stack, but leave the stack pointer unchanged. This
operation will usually destroy useful information and is normally avoided. A POP from an empty
stack may place non-meaningful data on the YOUT outputs, but is otherwise safe. The stack
Copyright 1999, InnovASIC Inc.
Customer Specific IC Solutions
Page 4 of 19
IA2910A Preliminary Data Sheet
Microprogram Controller
pointer remains at zero whenever a POP is attempted from a stack already empty.
The register/counter is operated during three microinstructions (8, 9, and 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 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.
The device provides three-state YOUT outputs. These can be particularly useful in designs
requiring automatic checkout of the processor. The microprogram controller outputs can be
forced into the high-impedance state, and pre-programmed sequences of microinstructions can be
executed via external access to the address lines.
Copyright 1999, InnovASIC Inc.
Customer Specific IC Solutions
Page 5 of 19
IA2910A Preliminary Data Sheet
Microprogram Controller
I/O Signal Description
Table 1 below describes the I/O characteristics for each signal on the IC. The signal names
correspond to the signal names on the pinout diagrams provided.
Table 1
SymbolTypeDescription
CLKIClock Input - Clock source for address register, microprogram
counter register, and stack file.
I(3:0)IActive high instruction bits. Selects instruction to be executed by the
IA2910A.
CCn
IActive low. Condition code. Used as test criterion, pass is low on
CCn.
CCENnIActive low. Condition code enable. When set high, CCn is ignored
and the IA2910A operates as it CCn were a low.
RLDnIActive low. Clock enable to address register, allows loading of
register/counter regardless of instruction or condition.
OEnIActive low. Output enable, when high tri-states the output bus
YOUT.
CINIActive high. Carry in signal to the incrementer.
FULLnOActive low. Indicates there are nine items on the stack.
DIN(11:0)IActive high. Data bus input to the multiplexer.
YOUT(11:0)OActive high. Data bus output from the IA2910A.
PLnOActive low. Pipeline address enable. Selects source number one
(usually pipeline register) as direct input source.
MAPnOActive low. Map address enable. Selects source number two (usually
mapping PROM or PLA) as direct input source.
VECTnOActive low. Vector address enable. Selects source number three
(usually interrupt starting address) as direct input source.
Theory of Operation
Table 2 shows the result of each instruction in controlling the mux which determines the YOUT
outputs, and in controlling the three enable signals PLn, MAPn, and VECTn. The effect on the
register/counter and the stack after the next positive-going clock edge is also shown. The mux
determines which internal source drives the YOUT outputs. The value loaded into the counter is
Copyright 1999, InnovASIC Inc.
Customer Specific IC Solutions
Page 6 of 19
IA2910A Preliminary Data Sheet
Microprogram Controller
either identical to the YOUT output, or else one greater, as determined by CIn. For each
instruction, one and only one of the three outputs PLn, MAPn, and VECTn is LOW. If these
outputs control three-state enables for the primary source of microprogram jumps (usually part of a
pipeline register), a PROM which maps the instruction to a microinstruction starting location, and
an optional third source (often a vector from a DMA or interrupt source), respectively, the threestate sources can drive the DIN inputs without further logic.
Several inputs, as shown in Table 2, can modify instruction execution. The combination CCn
HIGH and CCENn LOW is used as a test in 9 of the 16 instructions. RLDn, when LOW, causes
the DIN input to be loaded into the register/counter, overriding any HOLD or DEC operation
specified in the instruction. OEn, normally LOW, may be forced HIGH to remove the IA2910A
YOUT outputs from a three-state bus.
The stack, a nine-word last-in, first-out 12-bit memory, has a pointer which addresses the value
presently on the top of the stack. 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 else the stack is empty, the contents of the top of stack is undefined until a PUSH occurs.
Any POPs performed while the stack is empty put undefined data on the F outputs and leave the
stack pointer at zero.
Any time the stack is full (nine more PUSHes than POPs have occurred since the stack was last
empty), the FULLn warning output occurs. This signal first appears on the microcycle after a ninth
PUSH. No additional PUSH should be attempted onto a full stack; if tried, information within the
stack will be overwritten and lost.
Copyright 1999, InnovASIC Inc.
Customer Specific IC Solutions
Loading...
+ 13 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.