Chapter 4 - MP DSB
Chapter 4 - MP DSB
DC Characteristics
Both the 8086 and 8088 microprocessors require a supply voltage of + 5V with a tolerance ±
10%. The 8086 and 8088 can be operated at a supply voltage of 5V with a tolerance of ± 5%.
These microprocessors can be operated in temperature ranging from 0°C to 70°C. Since this
range is insufficient for certain applications there are extended temperature versions of both
these microprocessor which can be operated between temperature ranges from - 40°C to 140°C.
Both these microprocessors draw a maximum supply current of 340 mA. The 8086
draws a maximum supply current of 360 mA. These microprocessors have an average power
dissipation value of about 2.5W.
1
Input and Output Characteristics
The input characteristics are shown in figure 4.2 where the input voltage and current
requirements required to drive the microprocessor as shown.
Symbol Parameters Min Max Units
VIL Input low voltage -0.5 0.8 V
VIH Input high voltage 2.0 Vcc + 0.5 V
IIL Input low current — ±10μA μA
IIH Input high current — ±10μA μA
Figure 4.2. Input characteristics for the 8086 and 8088 microprocessors
Output characteristics are shown in figure 4.3. However the 8086 and 8088 microprocessor have
low noise immunity due to which a 8086 buffered system is preferred when drawing large
number of loads. Buffered 8086 system is discussed in detail later.
Symbol Parameters Min Max Units
VOL Output low voltage — 0.45 V
VOH Output high voltage 2.4 — V
IOL Output low current — 2.0 mA
IOH Outpur high current — -400 μA
Figure 4.3. Output characteristics for the 8086 and 8088 microprocessors
Here we shall briefly explain the 8086 and 8088 microprocessor IC pins, their functions and
names as well as a brief description of their purpose. The following section lists the pin
2
definition as given by Intel Corporation.
Pins Signal Assignments (8086)
Here we shall briefly explain the 8086 and 8088 microprocessor IC pins, their functions and
names as well as a brief description of their purpose
Pin Assignment Pin No. Description
AD15-AD0 39, 2-16 This is the multiplexed data and address bus. These bits contain
16 bits of data or address depending on the ALE logic value.
When ALE = 0, these pins contain 16 bits of data where AD0 is
LSB bit and AD15 is MSB bit of data. When ALE = 1, these pin
contain the right most 16 bits of the memory address. For I/O
operations AD7-AD0 contains the port address when ALE = 1.
A19/S6—A16/S3 35-38 This is the upper order address bus bits multiplexed with status
bits. Initially, these pins contain the upper order address bits
(when ALE = 1). During the next clock after ALE goes, low
these pins contains the status bits as shown in figure 4.4 which
shows the truth table for S6-S3 status bits.
RD 32 This is the 8086 read control signal. The read signal is active
when it goes low. When RD goes low the microprocessor re-
ceives data on AD15-AD0 from memory or I/O devices.
RESET 21 When the RESET pin is held high for four more clock periods, if
resets the microprocessor. This clears all registers and loads the
CS register with FFFFH and the IP register with 0000H. This
also resets the IF flag to zero.
CLK 19 This Pin is used to provide the clock signal for processor
synchronization. The clock signal must have a duty cycle of 33%
as specified by Intel for proper operation.
Vcc 40 This Pin is used to supply the+5.0 V input supply voltage.
GND 1,20 These are the 8086 ground pins. For reliable operation both these
pins must be grounded.
S3 S4 Decoded Function
0 0 Extra Segment being accessed
0 1 Stack Segment being accessed
1 0 Code segment being accessed
1 1 Data segment being accessed
S6 = l(Always)
S5 = IF (Interrupt flag status bit)
Figure 4.4. Function of S3, S4, S5, S6 Status bits
MN/ M X 33 The voltage level at this Pin determines whether the 8086 or
8088 microprocessor will operate in minimum or maximum
mode. For minimum mode operation of the microprocessor this
3
Pin should be connected to + Vcc and for maximum mode
operation this pin should be connected to GND voltage levels.
NMI 17 This is Non-maskable Interrupt Pin. This is a positive edge
triggered input and cannot be disabled.
INTR 18 This is Interrupt Request Pin used for interrupting the 8086.
When the INTR Pin is held high the 8086 checks the interrupt
flag bit in the 8086 flag register (IF), if IF = 1 then the current
instruction execution is completed and then the INTA Pin
becomes active. The processor is then said to have been
interrupted and program execution is relocated to memory
address specified by the interrupt request.
READY 22 This is an input that is used to control 8086 operation. This Pin is
used to synchronize slower peripheral devices to the 8086
microprocessor. When READY = 0, the 8086 microprocessor
enters a wait state where it remains idle, (performing no
operation) when READY = 1, the microprocessor functions
normally.
TEST 23 The TEST Pin is used in conjunction with the WAIT
instruction. On execution of a wait instruction, the 8086
microprocessor checks the TEST pin status. If TEST = 0 the
wait instruction executes as a NOP (No operation) instruction. If
TEST = 1, the wait instruction will cause the microprocessor to
becomes idle until TEST goes low and becomes zero.
BHE /S7 34 The bus high enable Pin is an active low and used to enable the
higher order 8 bits of data bus during a memory operation. The
S7 status bit is always 1.
M/ IO 28 this output Pin is used to select memory or I/O devices. When the
address in the 8086/8088 refers to an I/O device then this Pin is
driven low while if it is accessing a memory location then this
Pin is in high (1) state.
WR 29 This is the write signal output Pin. When this Pin goes low it
indicates that the data bus contains valid data that is to be stored
4
in memory or outputted to an I/O device.
INTA 24 Interrupt Acknowledge Signal. When the INTR goes high the
microprocessor responds to this by issuing low in this pin. This
pin is normally used to gate the interrupt vector number onto the
data bus in response to an interrupt request.
ALE 25 Address Latch Enable Pin goes high when the 8086/8088
multiplexed data bus contains valid address bits i.e., when ALE
is 1, the multiplexed address data bus contains address bits.
When ALE = 0, the multiplexed address data bus is used as a
data bus i.e., the multiplexed address data bus will behave as a
data bus and the data that is presently present on this bus is valid
data bits.
DT/ R 27 Data Transmit/Receive signal: When the 8086 microprocessor is
transmitting data on its bus then DT/ R = 1 and when
microprocessor is receiving data on its buses then DT/ R = 0.
This is used as an enable signal for data buffers that may be used
in an 8086/8088 based system.
DEN 26 Data bus enable signal goes low when the microprocessor
address data bus is to be used as a data bus. It is can be used to
enable buffers for buffering the data bus.
HOLD 31 When the external peripherals request a DMA (Direct Memory
Access), they do so by placing a high signal on this Pin. When
HOLD is 1 the microprocessor stops execution and relinquishes
control of the address, data and control bus by placing them in a
high impedance state. It also tristates AD15 - AD0, A19/S6 -
A16/S3, RD , M/ IO , IO/ M , WR Pins. After doing so HLDA is
set to 1. If Hold = 0, the microprocessor executes normally.
HLDA 30 Hold Acknowledge bit is placed 1 when the processor enters the
DMA state. All Pin that have tri stated remain so till the HOLD
Pin becomes 0.
5
RQ / GT0 & RQ / GT1 30,31 When DMA transfer mode is required during maximum mode
operation then these request/grant Pin are used. They are bi-
directional pins and are used for requesting a DMA. When the
processor grants a DMA it is also conveyed through these bits.
S2 , S1 & S0 26-28 The status bits are used by the bus controller for the current bus
cycle decoding. Their truth table is shown in figure 4.5.
S2 S1 S0 Control Function
0 0 0 Interrupt Acknowledge
0 0 1 I/O Read
0 1 0 I/O Write
0 1 1 Halt
1 0 0 Opcode fetch
1 0 1 Memory Read
1 1 0 Memory Write
1 1 1 Passive
Figure 4.5. Status Bit function
6
microprocessor. The IO/ M , DT/ R and SSO together carry the
function of the current bus cycle the truth table shown in figure
4.7.
Clock Generation
Before we attempt to design an 8086 based computer, we will obviously have to provide basic
input signals such as clock and reset synchronization. The intel designers with the 8086 released
the 8284 clock and Reset synchronization IC. The advantages of using the 8284 clock generator
shall become clear as you go along. It is an important IC and reduces the number of devices
required for generation of a stable clock signal. It also provides RESET and READY
synchronization signals which are required for proper operation of the 8088 and 8086 micro-
processors. Figure 4.8 shows the pin out of the 8284 clock generator IC. The 8284 clock
generator is available in an 18-pin integrated circuit and is for use specifically with the 8086 and
8088 microprocessor. We shall now list each pin and its function.
7
the RDY1 and RDY2 input pins to cause wait states in the microprocessor.
The wait states also require the READY Pin of the 8086 microprocessor to
be attached to the 8284.
RDY1 & RDY2 : The bus ready input pins which cause wait states in an 8086/8088 system,
when synchronized with AEN1 and AEN2 as well as READY output pin
of 8086.
CLK : The clock output Pin which is directly connected to the 8086/8088 CLK Pin
for clock timing. The clock output is one third the crystal or EFI input
frequency that is a 9 MHz EFI input will give an output signal of 3 MHz at
CLK Pin. The output signal has a 33 percent duty cycle as required by the
8086/8088 processor.
GND : This connects to the system ground for the clock generator IC grounding.
RESET : This RESET output pin connects to the 8086 RESET and provide a
synchronized RESET output signal which resets the 8086/8088
microprocessor.
RES : The reset input is an active low input to the 8284 A. It is generally
connected to an RC coupling network which resets the 8086
microprocessor when the complete system is switched on. When the RES
input pin goes low it effectively will send a synchronized reset signal to the
8086 microprocessor and hence reset it.
OSC : The oscillator output Pin is a TTL level signal that is at the same frequency
as the EFI input or crystal frequency and is used to provide EFI input to
other 8284 IC's in a multiprocessor based system.
F/ C : This is a Pin for selection of whether to use an external frequency circuit or
the crystal frequency of the 8284 clock generator to produce the clock out-
put. If this Pin is low the internal cystal oscillator network provides the
signal that is used for timing and when F/C is pulled high the EFI input is
used.
EFI : External frequency input Pin. When F/ C is pulled high the signal that is
supplied to this Pin is used for the 8284 clock output as well as internal
timing of the 8284 IC.
ASYNC : This Pin also called ready synchronization decision input and selects the
number of synchronization levels for RDY1 and RDY2. If this Pin is high
one level of synchronization is chosen for RDY1 and RDY2 signals.
READY : The READY output directly connects to the 8086 microprocessor ready
input pin and is used as output signal which allows the 8086
microprocessor to enter wait states.
X1 and X2 : The crystal oscillator input Pins. These are used to connect a quartz crystal
of thrice the desired clock frequency output i.e., for a 5 MHz clock, a 15
MHz crystal will be connected. This crystal is used as the resonating clock
source for the 8284 clock register and to synchronize all its internal
circuitry.
Vcc : The power supply pin which connects to +5.0V ±10% power source.
8
Operations of 8284
Internally the 8284 clock generator can be divided into three sections as shown in figure 4.9.
These sections are:
1. Reset Section
2. Clock Section
3. Ready Synchronization
Clock Section
When a crystal is attached to terminals X1 and X2 it makes the 8284 internal oscillator
oscillate at the same frequency as the crystal. This generated square wave it fed to an AND
gate which is controlled by the state of F/ C . If F/ C is zero this signal is fed to the divide by
three counter and if F/ C is one, the EFI signal is fed to the counter. The divide by three
counter simply converts the frequency of the square wave to one by third of the input
frequency (crystal or EFI frequency). This signal is buffered and fed to the CLK output giving
us the required clock frequency for driving 8086 microprocessor system. It can be seen the
output of the divide by three counter is referred to a divide by two counter, whose output will
be one sixth the input signal frequency. This is our PCLK signal.
Reset Section
This section is extremely simple to comprehend. It consists of a Schmitt trigger buffer and a D
type flip flop (negative edge trigger). Since the D flip flop is negative edge triggered and is
triggered by the negative transition of the CLK signal it will apply the RESET signal during a
1 to 0 clock transition of the CLK output. Since the 8086 samples the RESET pin on a 0 to 1
(+ve edge) transition of the clock thus this signal will be meet the requirements of the 8086
processor. The figure 4.10 shows an 8086 interfaced with an 8284 IC with RESET and CLK
signal connected. An RC coupling circuit is attached with a time constant 10 msec. This RC
coupling circuit is coupled to RES Pin. When the system is switched on RES signal is low
there by ensuring that the 8284 clock generator resets the 8086/8088. After about 10 ms (the
time constant of the RC circuit) the RES will rise to logic one therefore ensuring that the 8086
RESET Pin goes low thereby enabling normal operation of 8086.
9
Since the RESET Pin of the 8086 require the input to remain at l for at least 50 ms the above
circuit ensures this criteria which is met due to a large time constant of the RC network. Since
the RC network has a time constant of 10 ms the RESET output of 8284 clock generator will
remain high for 10 ms therefore ensuring proper resetting of 8086. An operator reset switch is
also provided. On pressing the switch the capacitor shall discharge therefore repeating the above
process in turn resetting the 8086/8088 microprocessor.
10
The reason is because of reduction of external pins that shall be now present on the 8086
IC. The 8086 will first send the address of the external device on this multiplexed. Also
the data that must be sent by the device to the 8086 will also be sent on the same bus;
therefore it is obvious that the bus changes state. Therefore, buffering is required if we
want this bus to hold valid data for greater time intervals than what, actually is given.
11
12
13
14
Fully buffered 8086 and 8088 systems are shown in figure 4.13 and 4.14. The octal
transceiver are used for buffering the data bus and has its direction signal pin controlled
by the DT/ R . As usual DT/ R is low when a read operation is to take place enabling the
74245 latches to direct data toward the 8086 microprocessor. During write cycles the DT/ R
goes high enabling the 74245 latch to transmit data towards devices. The 74245 is also
15
enabled or disabled by the DEN pin. The use of the 74244 buffer IC's is also required for
control signals because if we use the 8 bit 74373 octal IC that is connected to the upper order
address bus then the control signals will not be able to be transmitted to the devices on this
latch because it will be disabled after the first cycle by the ALE signal. ( RD , WR signals
undergo changes much later).
The 74373 attached to the address bits A8 to A15 in figure 4.13 can be replaced by the 74244 IC
as these bits do not carry any information except the address bits for the 8088 microproces-
sor.
16
During the first time state T1, the microprocessor sends out the 20 bit address of the memory
or I/O locations through the address bus. Control signals such as ALE, DT/ R and IO/ M (or
M/ IO ) are also sent out so that the microprocessor can synchronize the required circuitry for
demultiplexing the address data bus as well as provide sufficient delay time for external devices
to be enabled before the access signals are sent (such as RD , WR etc.).
In the next time state T2, the processor sends out control signals such as RD , WR and
DEN so that the external devices may be caused to perform the operation requested. During
a write cycle the data to be written to memory (or I/O) is also output so that the data bits are
set up on the input pins of the devices as the write ( WR ) signal is listed (Therefore avoid
conflicts of setup time). The READY signal is sampled towards the end of T2 and if the
READY signal is low the microprocessor enters a wait state (i.e., T3 becomes a no operation
time state or wait state. This is used to synchronize slower devices).
During a read bus cycle the data bus is sampled at the end of T3 and the data held on the
bus is transferred to the microprocessor.
17
The T4 time state is the bus reset time state. During this time state all the buses are
deactivated in preparation for the next bus cycle. During this period, the data bus is also in
the process being read (sampled) if the current bus cycle is a read cycle. Also the transition
on the WR , signal (from low to high) is used to activate external devices to be written to (in
case of the write cycle).
The 8086 Read Bus Cycle
Now we shall discuss the read bus cycle which is shown in figure 4.17. It might seem slightly
complicated but on close observation with figure 4.18 (a) and (b) we will start to get a
clearer picture. Fig. 4.18 lists the names of the various time divisions that the read bus cycle
has been broken down into.
Here the procedure for calculating the maximum access time that is allowed for accessing
(read operation) a memory device is described. All memory devices must be able to operate
well within this time frame for proper operation of the 8086 based system.
Now let us calculate the maximum time that can be made available for memory access.
Now we have earlier read that the microprocessor samples the data bus at the end of time
state T3. However in figure 4.17 if you see you shall find a line going straight down at T3.
Observe the data bus you find at this point a time TCLDX which is the Data in hold time
(figure 4.18(a). Therefore, this is the hold time required so that the proper sampling of the
data bus may occur. Now this point which is at the end of T3 is exactly 3 Time states (i.e.,
600ns) from the start of T1.
Now a memory address appears on the address bus after a time TCLAV after the start the
start of time state Tl. Now the memory should be allowed an access time from the time
the address has appeared on the bus to the time it will be sampled. Memory access time =
600ns - TCLAV
However the data must be setup before the sampling period by the microprocessor. Again
observe figure 4.17. Where you shall find the TDVCL or data setup time which is the setup
time required before sampling of data bus. Now the memory obviously has to place its data
before this setup time required by the processor. Therefore the maximum memory access
time allowed will be
Maximum memory access time = 600ns - TCLAV - TDVCL
= 600 - 110 - 30 (From fig. 4.18(a) and (b)) at 5MHz clock)
= 460 ns
Now a memory chip that is to be interfaced to an 8086 microprocessor should have an
access time much lower than the calculated 460 ns. In the buffered system, the buffers too
will introduce a propagation delay therefore ideally memory chips interfaced to the 8086
should have access times well below 400 ns.
18
The 8086 Write Bus Cycle
Figure 4.19 illustrates the 8086 minimum mode write cycle. There are very few differences between
the read and write bus cycles. The RD strobe signal has been here replaced by the WR strobe
while the data bus contains valid data which has to be written to memory. The DT/ R signal
remains at VOH (logic 1) throughout the write bus cycle. The data is written to memory device at
the low to high transition of the WR strobe (during end of T3).
Observe figure 4.19 where we observe that the memory write time has to less than the total time
between the time of the WR strobe transition and the total data hold time after this transition.
Thus memory devices must be able to transfer data in the limiting time period TWHDX which
is equal to TCLCH- 30 = 118 - 30 = 88ns (Figure 4.18(a) and 4.18(b). Therefore memory devices must
be able to written to in times less than 88ns when the 8086 microprocessor is operated at 5 MHz
clock. Most memory IC's available have hold times which range from 1 to 10 ns which is within the
limiting value of 88ns.
A.C. CHARACTERISTICS
(8086: TA - 0°C to 70°C, Vcc = 5V ±10%)
(8086-1: TA - 0°C to 70°C, Vcc = 5V ±5%)
(8086-2: TA - 0°C to 70°C, Vcc = 5V ±5%)
19
MINIMUM COMPLEXITY SYSTEM TIMING REQUIREMENTS
8086 8086-1 8086-2
Symbol Parameter Min. Max. Min. Max. Min. Max. Units Test Conditions
TCLCL CLK Cycle Period 200 500 100 500 125 500 ns
TCLCH CLK Low Time 118 53 68 ns
TCHCL CLK High Time 69 39 44 ns
TCH1CH2 CLK Rise Time 10 10 10 ns
From 1.0V to 3.5V
TCL2CL1 CLK Fall Time 10 10 10 ns
From 3.5V to 1.0V
TDVCL Data in Setup Time 30 5 20 ns
TCHRYX 30 20 20 ns
REAOY Hold Time Into 8088
TRYLCL -8 -10 -8 ns
READY Inactive to CLK (See Note 3)
TINVCH 30 15 15 ns
INTR, NMI. TEST Setup Time (See
Note 2)
TILIH Input Rise Time (Except CLK) 20 20 20 ns From 0.8V to 2.0V
20
A.C. CHARACTERISTICS (Continued)
TIMING RESPONSES
21
Ready and Wait State Cycle Synchronization
As we have read earlier the microprocessor can be made to enter wait states so as to
interface to slower memory and I/O devices. Suppose we have to design a system based
on the 8086 microprocessor and have to interface a memory device where access time is
560ns. Obviously this is not achievable by the normal 8086 read bus cycle (as the time
allocated for a maximum memory access time of 460 ns). However the use of ready input can
cause the microprocessor to enter wait states (which is the insertion of an extra clock period
between T2 and T3) thereby Allowing a memory access time of 600ns (460ns + 200ns due
to extra clock). This is not achievable by the normal 8086 read bus cycle (as the time
allocated for a maximum memory access time of 460 ns). However the vise of ready input can
cause the microprocessor to enter wait states (which is the insertion of an extra clock period
between T2 and T3) thereby allowing a memory access time of 600ns (460ns + 200ns due to
extra clock).
The Ready Input is sampled at the end of T2 time state and again, if applicable, in the
22
middle of TW. If the ready input is a logic zero at this sampling time, T3 is delayed and TW is
inserted between T2 and T3. Again in the middle of TW, the ready input is re-sampled to
determine whether the next clock period is TW or T3 time state. It is tested for a logic 0
during the high to low transition of the clock at the end of T2, and for a logic 1 during the low
to high transition of the 8086 clock as shown in figure 4.20.
Observe figure 4.20 (which can be seen in figure 4.17) the ready input signal has to match
very stringent requirements and must not occur earlier than 35ns before the end of T2
time state nor later than 8ns after T2 time state so as to cause the microprocessor to
enter wait states. Ready input synchronization can be achieved by using the 8284H clock
generator internal ready synchronization circuitry and the RDY1 and RDY2 ready input
pins.
The 8284 clock generator based ready synchronization
The RDY1 and RDY2 are synchronized ready input pins to the ready synchronization cir-
cuitry of the 8284 A as shown in figure 4.9. The time diagram can be observed from figure
4.17 and redrawn as shown in figure 4.21.
We show you the internal functional diagram of 8284 A clock generator in figure 4.22
where the lower half is ready synchronization circuitry. We see that the RDY1 and AEN1
are ANDed and fed to one input of the OR gate while the second input of the OR gate is fed
by the RDY2 and AEN2 signal which are fed to the second AND gate. In order to present a
logic 1 to either of the D-Flip Flop we require either the RDY1 and AEN1 signals to be
active or the RDY2 and AEN2 signals to be active.
23
Now if ASYNC is logic one then the ready synchronization stage is enabled. Figure 4.23
shows simple READY synchronization circuit for introducing single wait states.
We use a T flip flop to generate the RDY1 input the flip flop is set to 1 when the three
control signals are high (till T2 all are high). Therefore the T flip flop can toggle only after
T2 time state when the output of the NAND gate goes low. The T flip flop will toggle when
the positive edge of T2 occurs thereby generating the desired RDY1 input which will
cause the 8284A to generate the synchronized ready signal to the 8086. The OR gate is used
so that only selected devices that require the ready signal will cause the 8284A circuit to
perform the operation.
25
The 8288 Bus Controller
An 8086/8088 system when operated in maximum mode must have an 8288 bus controller to
provide the signals eliminated from the 8086/8088 by the maximum mode operation. The 8288 is
a high performance CMOS Bus Controller manufactured using a self-aligned silicon gate CMOS
process. The 8288 provides the control and command timing signals for 8086, 8088, 80186, and
80188 based systems. The high output drive capability of the 8288 eliminates the need for
additional bus drivers. Static CMOS circuit design insures low operating power.
26
( AIOWC ) write strobes, and the INTA signal. These signals replace the minimum mode ALE,
WR , IO/ M , DT/ R , DEN , INTA , which are lost when the 8086/8088 microprocessors are
operated in the maximum mode.
S0 , S1 , S2 19,3, I STATUS INPUT PINS: These pins are the input pins from the 8086/88 processors.
18 The 8288 decodes these inputs to generate command and control signals at the
appropriate time. When Status pins are not in use (passive), command outputs are
held HIGH (See Table).
CLK 2 I CLOCK: This is a CMOS compatible input which receives a clock signal from the
8284A or 8285 clock generator and serves to establish when command/control
signals are generated.
ALE 5 O ADDRESS LATCH ENABLE: This signal serves to strobe an address into the
address latches. This signal is active HIGH and latching occurs on the falling (HIGH
to LOW) transition. ALE is intended for use with transparent D type latches, such as
the 8282 and 8283H.
DEN 16 O DATA ENABLE: This signal serves to enable data transceivers onto either the local
or system data bus. This signal is active HIGH.
DT/ R 4 O DATA TRANSMIT/RECEIVE: This signal establishes the direction of data flow
through the transceivers. A HIGH on this line indicates Transmit (write to I/O or
memory) and a LOW indicates Receive (read from I/O or memory).
AEN 6 I ADDRESS ENABLE: AEN enables command outputs of the 8288 Bus Controller a
minimum of 110ns (250ns maximum) after it becomes active (LOW). AEN going
inactive immediately three-states the command output drivers. AEN does not affect
the I/O command lines if the 8288 is in the I/O Bus mode (IOB tied HIGH).
CEN 15 I COMMAND ENABLE: When this signal is LOW all 8288 command outputs and
the DEN and PDEN control outputs are forced to their Inactive state. When this
signal is HIGH, these same outputs are enabled.
27
IOB 1 I INPUT/OUTPUT BUS MODE: When the IOB pin is strapped HIGH, the 8288
functions in the I/O Bus mode. When it is strapped LOW, the 8288 functions in the
System Bus mode (See I/O Bus and System Bus sections).
AIOWC 12 O ADVANCED I/O WRITE COMMAND: The AIOWC issues an I/O Write
Command earlier in the machine cycle to give I/O devices an early indication of a
write instruction. Its timing is the same as a read command signal. AIOWC is active
LOW.
IOWC 11 O I/O WRITE COMMAND: This command line instructs an I/O device to read the
data on the data bus. The signal is active LOW.
IORC 13 O I/O READ COMMAND: This command line instructs an I/O device to drive its data
onto the data bus. This signal is active LOW.
MRDC 7 O MEMORY READ COMMAND: This command line instructs the memory to drive
its data onto the data bus. This signal is active LOW.
MCE/ PDEN 17 O This is a dual function pin. MCE (IOB IS TIED LOW) Master Cascade Enable
occurs during an interrupt sequence and serves to read a Cascade Address from a
master 8259A Priority Interrupt Controller onto the data bus. The MCE signal is
active HIGH. PDEN (IOB IS TIED HIGH): Peripheral Data Enable enables the data
bus transceiver for the I/O bus that DEN performs for the system bus. PDEN signal
is active LOW.
Functional Description
The command logic decodes the three 8086, 8088, 80186, 80188 status lines ( S0 , S1 , S2 ) to
determine what command is to be issued.
28
AEN ). When an I/O command is initiated by the processor, the 8288 immediately activates the
command lines using PDEN and DT/ R to control the I/O bus transceiver. The I/O command
lines should not be used to control the system bus in this configuration because no arbitration is
present. This mode allows one 8288 Bus Controller to handle two external busses. No waiting is
involved when the CPU wants to gain access to the I/O bus. Normal memory access requires a
"Bus Ready" signal ( AEN LOW) before it will proceed. It is advantageous to use the IOB mode
if I/O or peripherals dedicated to one processor exist in a multi-processor system.
System Bus Mode
The 8288 is in the System Bus mode if the IOB pin is strapped LOW. In this mode, no command
is issued until a specified time period after the AEN line is activated (LOW). This mode
assumes bus arbitration logic will inform the bus controller (on the AEN line) when the bus is
free for use. Both memory and I/O commands wait for bus arbitration. This mode is used when
only one bus exists. Here, both I/O and memory are shared by more than one processor.
Command Outputs
The advanced write commands are made available to initiate write procedures early in the
machine cycle. This signal can be used to prevent the processor from entering an unnecessary
wait state.
INTA (Interrupt Acknowledge) acts as an I/O read during an interrupt cycle. Its purpose is to
inform an interrupting device that its interrupt is being acknowledged and that it should place
vectoring information onto the data bus.
The command outputs are:
MRDC - Memory Read Command
MWTC - Memory Write Command
IORC - I/O Read Command
IOWC - I/O Write Command
AMWC - Advanced Memory Write Command
AIOWC - Advanced I/O Write Command
INTA - Interrupt Acknowledge
Control Outputs
The control outputs of the 8288 are Data Enable (DEN), Data Transmit/Receive (DT/ R ) and
Master Cascade Enable/ Peripheral Data Enable (MCE/ PDEN ). The DEN signal determines
when the external bus should be enabled onto the local bus and the DT/ R determines the
direction of data transfer. These two signals usually go to the chip select and direction pins of a
transceiver.
The MCE/ PDEN pin changes function with the two modes of the 8288. When the 8288 is in the
IOB mode (IOB HIGH), the PDEN signal serves as a dedicated data enable signal for the I/O or
Peripheral System bus.
29
Interrupt Acknowledge and MCE
The MCE signal is used during an interrupt acknowledge cycle if the 8288 is in the System Bus
mode (IOB LOW). During any interrupt sequence, there are two interrupt acknowledge cycles
that occur back to back. During the first interrupt cycle no data or address transfers take place.
Logic should be provided to mask off MCE during this cycle. Just before the second cycle begins
the MCE signal gates a master Priority Interrupt Controller's (PIC) cascade address onto the
processor's local bus where ALE (Address Latch Enable) strobes it into the address latches. On
the leading edge of the second interrupt cycle, the addressed slave PIC gates an interrupt vector
onto the system data bus where it is read by the processor.
If the system contains only one PIC, the MCE signal is not used. In this case, the second
Interrupt Acknowledge signal gates the interrupt vector onto the processor bus.
Address Latch Enable and Halt
Address Latch Enable (ALE) occurs during each machine cycle and serves to strobe the current
address into the 8282/8283H address latches. ALE also serves to strobe the status ( S0 , S1 , S2 )
into a latch for halt state decoding.
Command Enable
The Command Enable (CEN) input acts as a command qualifier for the 8288. If the CEN pin is
high, the 8288 functions normally. If the CEN pin is pulled LOW, all command lines are held in
their inactive state (not three-state). This feature can be used to implement memory partitioning
and to eliminate address conflicts between system bus devices and resident bus devices.
8282 Address Latch (Working Same as 74LS373)
The 8282 is a high performance CMOS Octal Latching Buffer manufactured using a self-
aligned silicon gate CMOS process. The 8282 provides an eight-bit parallel latch/buffer in a 20
pin package. The active high strobe (STB) input allows transparent transfer of data and latches
data on the negative transition of this signal. The active low output enable ( OE ) permits simple
interface to state-of-the-art microprocessor systems.
30
Figure 4.28 pin out and truth table of 8282
Functional Diagram
Gated Inputs
During normal system operation of a latch, signals on the bus at the device inputs will become high
impedance or make transitions unrelated to the operation of the latch. These unrelated input
transitions switch the input circuitry and typically cause an increase in power dissipation in CMOS
devices by creating a low resistance path between VCC and GND when the signal is at or near the
input switching threshold. Additionally, if the driving signal becomes high impedance ("float"
condition), it could create an indeterminate logic state at the input and cause a disruption in device
operation.
31
The 828X Series of bus drivers eliminates these conditions by turning off data inputs when data is
latched (STB = logic zero for the 8282/83H) and when the device is disabled ( OE = logic one for
8286H/87H). These gated inputs disconnect the input circuitry from the VCC ground power supply
pins by turning off the upper P-channel and lower N-channel (see Figure 4.29). No new current
flow from VCC to GND occurs during input transitions and invalid logic states from floating inputs
are not transmitted. The next stage is held to a valid logic level internal to the device.
DC input voltage levels can also cause an increase in ICC if these input levels approach the
minimum VIH or maximum VIL conditions. This is due to the operation of the input circuitry in
its linear operating region (partially conducting state). The 828X series gated inputs mean that
this condition will occur only during the time the device is in the transparent mode (STB = logic
one). ICC remains below the maximum ICC standby specification of 10mA during the time
inputs are disabled, thereby, greatly reducing the average power dissipation of the 828X series
devices
32
Figure 4.30 pin out and truth table of 8286
Functional Diagram
Gated Inputs
During normal system operation of a latch, signals on the bus at the device inputs will become
high impedance or make transitions unrelated to the operation of the latch. These unrelated input
transitions switch the input circuitry and typically cause an increase in power dissipation in
CMOS devices by creating a low resistance path between VCC and GND when the signal is at or
near the input switching threshold. Additionally, if the driving signal becomes high impedance
(“float” condition), it could create an indeterminate logic state at the inputs and cause a
disruption in device operation.
The Harris 828X series of bus drivers eliminates these conditions by turning off data inputs when
data is latched (STB = logic zero for the 8282/83H) and when the device is disabled ( OE = logic
33
one for the 8286H/87H). These gated inputs disconnect the input circuitry from the VCC and
ground power supply pins by turning off the upper P-channel and lower N-channel (See Figure
4.31). No current flow from VCC to GND occurs during input transitions and invalid logic states
from floating inputs are not transmitted. The next stage is held to a valid logic level internal to
the device.
D.C. input voltage levels can also cause an increase in ICC if these input levels approach the
minimum VIH or maximum VIL conditions. This is due to the operation of the input circuitry in
its linear operating region (partially conducting state). The 828X series gated inputs mean that
this condition will occur only during the time the device is in the transparent mode (STB = logic
one). ICC remains below the maximum ICC standby specification of 10mA during the time
inputs are disabled, thereby greatly reducing the average power dissipation of the 828X series
devices.
34
each unique pattern only one output of the decoder becomes active at one time. Using this fact
we can decode different memory blocks with the use of the decoders. (You have already read
about the decoders in your digital logic course. Please revise it)
Logic Gate Decoders
The decoder which recognizes a particular binary pattern and become active on that particular
input pattern is a logic decoder. For example a two input AND gate produces an active high
output if both of the inputs are high. Similarly a two input NAND gate produces an active-low
output if both of the inputs are high.
Suppose we were to interface an EEPROM of size 8 KB to 8088 microprocessor. Since this is a
memory chip it has its own internal address decoder. The memory has the input address lines
only. Since the size of this memory chip is 8 KB there should be log2(8 * 1024)=log2(213)=13
address input lines. So this means the address inputs A0 to A12 of this memory chip is to be
connected with the A0 to A12 of 8088 microprocessor. If we leave the rest address lines of 8088
microprocessor as it is then this memory device is selected irrespective of the content of the other
address lines. For example since this memory chip is addressed in the range 0 to 1FFFH we can
address another chip in the range 2000H to 3FFFH. Among these two chips, if A13 is 0 first chip
is selected and if A13 is 1 the second chip is selected. But if we ignore the upper lines for the first
chip the first chip is selected even when the second chip is selected. But this situation should not
occur in address decoding. In address decoding only one memory location is to be selected for a
particular binary pattern in the address bus. The address decoding using the fewer address lines
of the microprocessor than the actual lines generates the conflicting situations. The address
decoding scheme using fewer address lines is called non unique address decoding.
So for the first memory chip to be selected in the range 00000H to 01FFFH we also have to
consider the higher address lines A13 to A19 of the microprocessor so that it will not generate the
conflicting situations. So the remaining 7 lines (A13 to A19) are fed to the NAND gate decoder
which is again fed to another NAND gate whose another input is fed with IO/ M allowing the
EEPROM to be selected only when the 8088 wants to read the memory but not I/O. Output of
this NAND is fed to one of the chip enable input. The other chip enable is connected with RD .
Figure 4.32: NAND Gate Decoder Circuit to select the 2864 for memory location 00000K to 01FFFH
In the figure you may observe that the NAND gate output would go low when all the inputs
are low. This would in effect cause the EEPROM device to be accessed for memory
address ranging from 00000H to 1FFFH. The NAND gate output goes low when all the
35
inputs are low and the second NAND gate goes low when the output from the first gate is
low and IO/ M is low the second NAND gate generates low active signal selecting the
EEPROM chip. The EEPROM device is selected in the address of above as it is connected
to the CE pin of the 2864. The address range can be calculated as:
Lower address 0000 0000 0000 0000 0000 = 00000H
Higher address 0000 0001 1111 1111 1111 = 01000H
To NAND decoder
If it is desired that the EEPROM be placed at the last address of 8088 address space then the
address ranges from FEFFFH to FFFFFH. The EEPROM at the last address is decoded as
follows.
Figure 4.33 NAND Gate Decoder Circuit to select the 2864 for memory location FEFFFH to FFFFFH.
Observe that the NAND gate decoder circuit will give a low output when all inputs are high. This is
due to the inverters attached after the address lines and before the NAND gate. Therefore the
EEPROM would be selected when the inputs A13 – A19 are high and IO/ M is low.
Interfacing RAM for 8088 is easy because the bus of memory is of 8-bit and that of the 8088
microprocessor is 8-bit. But interfacing memory with 8086 is different than interfacing memory
with 8088 because the bus for a memory consists of 8-bit while the bus for 8086 consists of 16-
bit.
So let’s take example of interfacing HM62864 SRAM memory chip. This is a 64 K Byte
memory chip. This ram has three active-low control inputs labeled CS1 (chip select 1), WE
(write enable), OE (output enable) and one active-high control input labeled CS2 (chip select 2).
Since the input/output pins of the SRAM are 8-bit and the data bus of 8088 microprocessor is 8-bit
so all the data pins of the 8088 are connected directly and the memory read and write lines to OE
and WE pins respectively.
36
Figure 4.34 64 KB SRAM interface with 8088 (only a single memory chip is required)
The 8088 has a 20-bit address bus; the HM62864, however, has only 16 address pins. If we
connect address lines A0-A15 to the memory, what is to be done with the four remaining
address lines—A16-A19? The Figure shows these lines connected to a box labeled decoder. The
decoder is shown in the following figure using NAND gate and inverter. Notice, however, that
the output of this NAND gate drives the CS1 input of the RAM chip. Because the RAM is
enabled only when this input is low and CS2 high, we can conclude that the memory will be
enabled only when A16 is low and A17-A19 are high.
37
Figure 4.36 8086 SRAM interface with two RAM modules
A0 address line is used to select even or the odd memory banks. To allow the processor to access
the individual bytes as well as 16-bit words BHE is used. When this line is low, the processor is
accessing a word or an odd memory byte. In both these cases, the high order part of the data bus
(D8-D15) is involved. On the other hand, when A0 is low the processor is either accessing a
word or an even memory byte. In this case the low-order part of the data bus (D0-D7) is
involved. This is clearly shown in the figure 4.36 above. The decoder verifies the high-order
address lines mathc the addresss assigned to this circuit. A0 and BHE are then used to enable
the even (A0=0) or odd ( BHE =0) SRAM chip. Both chips are enabled for a word access. Note
that this implies that words must befin at an even memory address (that is address with A0=0).
Words that begin at an odd address will require two memory cycles; one to access the odd byte
and the second to access the even byte.
Exercise: Design the address decoding circuit for the figure in 4.36 to interface at address
E0000H.
Block Decoders
In a practical microcomputer the memory array often consists of several blocks of memory chips.
This will require a separate decoder for each memory block unless a special block decoder is
built.
A 256K-byte memory array is shown in Fig. 4.37. It consists of four 64K-byte blocks of memory
and a 74LS138 (Intel part number 8205) 3-to-8-line decoder. The low- order address lines AB0-
AB15 select one of 64K bytes in each memory bank. However, the decoder allows only one bank
to be enabled at a time. For example, output 0 will be active when AB19 = 0 (enabling the
decoder) and AB18-AB16 = 000 (selecting the 0 output). This corresponds to the address range
00000-OFFFFH.
38
Figure 4.37 The 74LS138 3-to-8 decoder to select different memory blocks
The decoder in Fig. 4.37 provides eight block select outputs and thus can be used to decode up to
512K bytes of memory. So with the use of the 4-to-16 decoders we can decode 16 blocks of
memory.
To decode the address of the memory for 8086 for the same type of the memory chip BHE and
address A0-to-A16 are used by the memory blocks for their internal decoding and the even and
odd memory address decoding. The output from the block decoder are connected to the even and
odd memory as a single chip and the chip select of the both the even and odd memory are
connected together. The even and odd are selected according to the value of A0 and BHE as
discussed above.
PROM Decoders
It is somewhat dissimilar to have the 50,000-transistor 8086 microprocessor sitting beside
several SSI and MSI TTL devices providing address decoding and other miscellaneous gating
functions. These chips, with 15 to 100 transistors per package, may collectively require as much
board space as the more complex processor they support. There ought to be a better way.
And, of course, there is. One solution is to replace all of this combinational TTL logic with a
high-speed PROM. After all, a PROM is nothing more than an elaborate truth-table generator. As
you have already studied in your digital logic, it stores one w-bit output word for each of its 2n
input combinations.
As an example, consider the design of an address decoder to implement the 8086 system whose
memory is mapped in Fig. 4.38. What makes the design of this decoder difficult is the three
different block sizes—IK, 16K, and 64K. A block decoder is impractical because the smallest
block size—IK bytes—would require a decoder with 10 inputs and therefore 210, or 1024
outputs! It appears that we are stuck having to build three separate decoder circuits.
39
Figure 4.38: memory map for 8086 microcomputer system featuring three different block sizes
But now consider using a PROM with 10 inputs. Assuming an 8-bit word size, a lK-byte PROM
would be required, not a particularly exotic or expensive component. The 77/87S180 series of
fusible-link PROMs of 1K-byte could be used for this purpose.
Selecting the 87S181A with tri-state outputs, the memory interface in Fig. 4.39 can be drawn.
The low-order address lines are connected to the memory chips, with the PROM used to decode
the 1024 1K-byte block boundaries. Q1-Q4 have arbitrarily been selected to provide the four
memory select signals.
These outputs should be programmed so that each is low when its address range is applied to the
PROM. For example, Q4, the RAM0 select signal, should be low for addresses in the range
00000H-0FFFFH. Over this range, AB19-AB10 vary from 0000000000B to 0000111111B, that is,
location 0 to location 63D in the PROM. This corresponds to the first 64 IK blocks. Addresses
outside this range should cause Q4 to be high (inactive). Similar calculations can be made for
the other three blocks.
The PROM decoder offers several advantages over its discrete logic TTL counterpart. Most
important, it replaces several TTL packages with one 24-pin package. It also offers the
versatility of allowing the system's memory map to be programmable. A new memory
configuration can be obtained by simply inserting a new PROM. Finally, the circuit is fast.
Typical access time (decoder delay) is 25 ns—probably faster than the TTL gates it replaces.
40
Figure 4.39: Using a PROM to provide four different address select signals
41
Figure 4.40: PROMs, PLAs and PALs can be used to implement logic functions expressed in standard sum-of-
products form. Each device consists of an AND array whose outputs can be used to drive an OR array
There are two alternatives to the ROM. They are called the PL A and PAL (for "programmable
logic array" and "programmable array logic"): The PLA is the most versatile. It allows the entire
AND array (see fig. 4.40) to be programmed. Thus the term ABC required in the example above
could be programmed. The PLA also allows the OR array to be programmed. This means that
each OR gate has as many inputs as there are product terms.
A PAL is similar to a PLA but its OR array is limited so that each OR gate has a fixed number of
inputs. The "wasted" storage space of the ROM is reduced in the PLA and PAL by limiting each
to fewer than 2n product terms.
Electrically, PALs and PLAs are available with TTL-compatible inputs and outputs. The
PAL10L8 has a maximum propagation delay of 35 ns. A FAST series is available with typical
delays of only 15 ns.
PALs are programmed using a fusible-link technique similar to that of a bipolar PROM. This
makes the parts extremely I versatile. A designer can quickly design and fabricate his or her own
"custom" integrated circuit in a matter of hours. And there need not be a high volume to justify
the part, as would be the case in the conventional four-to eight-month custom IC development
cycle.
PLAs and PALs are now the choice of most designers for replacement of combinational (and
sequential) logic. PLAs are the most versatile but also the most expensive. They require special
programmers, whereas PALs can be programmed with a conventional (fusible-link) PROM
programmer. PROMs are chosen when all 2n product terms are required—microprocessor
memory applications, primarily.
42