Page 1 of 19
IA2910A
Microprogram Controller
FEATURES
•
•
•
•
•
Preliminary
Data Sheet
Form, Fit, and Function Compatible with the AMD
™
Am2910A
Packaging options available: 40 Pin Plastic or Ceramic DIP, 44 Pin Plastic
Leaded Chip Carrier
Twelve Bits Wide
Internal Loop Counter
Four Address Sources
- push/pop stack counter
- internal holding register
- microprogram counter
- branch address bus
9 Word Deep Stack Register
- push/pop control for nesting subroutines
16 Sequence Control Microinstructions
Output Enable controls 3 Branch Address Sources
•
•
•
The IA2910A uses
innovASIC’
innovative new
f
3
Program
to provide industry with parts that
s
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.
YOUT5
YOUT4
YOUT3
YOUT2
(41)
VECTn
DIN5
DIN4
DIN3
DIN2
DIN4
YOUT5
DIN5
VECTn
PLn
MAPn
I3
I2
VCC
I1
I0
CCENn
CCn
RLDn
FULLn
DIN6
YOUT6
DIN7
YOUT7
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
40 Pin DIP
(39)
(38)
(37)
(36)
(35)
(34)
(33)
(32)
(31)
(30)
(29)
(28)
(27)
(26)
(25)
(24)
(23)
(22)
(21)
YOUT3
DIN2
(44)
(43)
(42)
DIN1
YOUT1
DIN0
YOUT0
CIN
CLK
VDD
OEn
YOUT11
DIN11
YOUT10
DIN10
YOUT9
DIN9
(40)
(6)
(5)
(4)
(3)
(2)
(1)
YOUT2
PLn
MAPn
I3
I2
VCC
I1
I0
CCENn
CCn
RLDn
N.C.
DIN1
N. C.
YOUT4
(1)
IA2910A
(40)
DIN3
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(39)
(38)
YOUT1
DIN0
YOUT0
N. C.
CIN
CLK
VDD
N. C.
OEn
YOUT11
DIN11
IA2910A
44 Pin LCC
(37)
(36)
(35)
(34)
(33)
(32)
(31)
(30)
(29)
FULLn
YOUT7
YOUT8
DIN10
DIN7
DIN8
YOUT8
DIN8
Copyright
©
1999, InnovASIC Inc.
Customer Specific IC Solutions
YOUT10
YOUT6
YOUT9
DIN6
DIN9
Page 2 of 19
IA2910A
Microprogram Controller
Preliminary
Data Sheet
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
FULLn
Register/Counter
Stack Pointer
Zero
Detector
9 word X 12 Bit
Stack
DECREMENT/
R=0
HOLD/LOAD
Mux
Microprogram
counter-register
SELECT
CCn
CCENn
Instruction
CIN
Incrementer
PLA
I(3:0)
PUSH/POP/
HOLD/CLEAR
CLEAR/COUNT
12
PLn
VECTn
MAPn
YOUT
Copyright
©
1999, InnovASIC Inc.
Customer Specific IC Solutions
Page 3 of 19
IA2910A
Microprogram Controller
Functional Overview
Preliminary
Data Sheet
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
Microprogram Controller
Preliminary
Data Sheet
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
Microprogram Controller
I/O Signal Description
Table 1
Symbol
CLK
I(3:0)
CCn
CCENn
RLDn
OEn
CIN
FULLn
DIN(11:0)
YOUT(11:0)
PLn
MAPn
VECTn
Type
I
I
I
I
I
I
I
O
I
O
O
O
O
Description
Preliminary
Data Sheet
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.
Clock Input - Clock source for address register, microprogram
counter register, and stack file.
Active high instruction bits. Selects instruction to be executed by the
IA2910A.
Active low. Condition code. Used as test criterion, pass is low on
CCn.
Active low. Condition code enable. When set high, CCn is ignored
and the IA2910A operates as it CCn were a low.
Active low. Clock enable to address register, allows loading of
register/counter regardless of instruction or condition.
Active low. Output enable, when high tri-states the output bus
YOUT.
Active high. Carry in signal to the incrementer.
Active low. Indicates there are nine items on the stack.
Active high. Data bus input to the multiplexer.
Active high. Data bus output from the IA2910A.
Active low. Pipeline address enable. Selects source number one
(usually pipeline register) as direct input source.
Active low. Map address enable. Selects source number two (usually
mapping PROM or PLA) as direct input source.
Active 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