IA2910A-CD40M INNOVASIC [InnovASIC, Inc], IA2910A-CD40M Datasheet - Page 3

no-image

IA2910A-CD40M

Manufacturer Part Number
IA2910A-CD40M
Description
Microprogram Controller
Manufacturer
INNOVASIC [InnovASIC, Inc]
Datasheet
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

Related parts for IA2910A-CD40M