1. Purpose
The address decoder determines which motherboard device owns each CPU
bus cycle. The decoder implements the frozen memory map without
transferring data itself.
2. Design Rules
- The motherboard uses a 16-bit external bus.
- 8-bit peripherals connect to D7..D0 and use /LDS.
-
The CL-GD5428 uses a 16-bit interface with swapped byte lanes.
-
A leading slash in this document, or an
_n suffix in a
signal name, marks an active-low signal.
-
Any address or register change requires a new memory map revision.
-
Normal memory and I/O devices must not respond to CPU-space cycles.
- Address decoding uses discrete 74-series logic.
- The processor and motherboard logic run at +5 V.
- The processor clock is 10 MHz.
- The computer does not support DMA or bus arbitration.
-
RESET_n is the external reset-source signal, not the
processor's bidirectional /RESET pin.
-
Peripheral documents define register-level decoding and adapter
timing. This document defines the motherboard selects and response
contract presented to those adapters.
3. CPU Bus Signals
The address decoder uses a subset of the MC68EC000 bus signals to
determine the address being accessed, the type of bus cycle, the data
width of the transfer, and when the transfer is active.
MC68EC000 signals used by the address decoder
| Signal |
Direction |
Active level or encoding |
Purpose |
Source |
A23..A0 |
CPU output |
Binary |
Carries the bus address. In 16-bit mode, the CPU drives A0 high;
/UDS and /LDS select the byte lanes.
|
MC68000UM, p. 3-4 |
D15..D0 |
Bidirectional |
Binary |
16-bit data bus shared between the CPU, memory, and peripherals.
|
MC68000UM, p. 3-4 |
/AS |
CPU output |
Low |
Indicates that the CPU has placed a valid address and function
code on the bus.
|
MC68000UM, p. 3-4 |
/UDS |
CPU output |
Low |
Selects the upper byte lane, D15..D8. |
MC68000UM, p. 3-4 |
/LDS |
CPU output |
Low |
Selects the lower byte lane, D7..D0. |
MC68000UM, p. 3-4 |
R/W |
CPU output |
High: read; low: write |
Sets the direction of the data transfer. |
MC68000UM, p. 3-4 |
FC2..FC0 |
CPU output |
Binary |
Identifies the address space used by the current bus cycle.
|
MC68000UM, p. 3-9 |
CLK |
Motherboard input |
10 MHz |
Clocks the CPU and the bus-timeout counter. |
Clock circuit |
RESET_n |
Motherboard input |
Low |
Marks an external board reset and presets the boot overlay. The
clock-and-reset circuit drives the processor's bidirectional
/RESET pin without feeding processor-generated
reset pulses back into this signal.
|
Clock and reset circuit |
/DTACK |
CPU input |
Low |
Indicates that the selected device has provided or accepted the
data, allowing the CPU to complete the transfer.
|
MC68000UM, p. 3-5 |
/BERR |
CPU input |
Low |
Signals a bus error and terminates the current bus cycle. |
MC68000UM, p. 3-7 |
4. Bus Arbitration
This computer has one bus master. DMA and external bus arbitration are
not supported.
Unused arbitration connections
| CPU signal |
Connection |
Reason |
/BR |
10 kohm pull-up to +5 V |
Prevents an external bus request. |
/BGACK |
10 kohm pull-up to +5 V |
Prevents an external bus-grant acknowledgement. |
/BG |
No connection |
The motherboard has no second bus master. |
5. Simplified Bus Cycle
The MC68EC000 uses an asynchronous bus. A transfer begins when the CPU
places an address and control information on the bus, then asserts
/AS. The selected device or motherboard asserts
/DTACK when the data has been provided or accepted.
Read Cycle
- The CPU places the address and function code on their buses.
- The CPU sets
R/W high to indicate a read.
-
The CPU asserts
/AS to indicate that the address is
valid.
-
The CPU asserts
/UDS, /LDS, or both,
depending on which byte lanes are being accessed.
- The address decoder selects the target device.
-
The selected device drives the requested data onto the data bus.
-
The selected device or motherboard asserts
/DTACK.
- The CPU latches the data and completes the bus cycle.
-
The CPU releases
/AS and the data strobes, and the
selected device stops driving the data bus.
Write Cycle
- The CPU places the address and function code on their buses.
- The CPU sets
R/W low to indicate a write.
-
The CPU asserts
/AS to indicate that the address is
valid.
- The CPU drives the value being written onto the data bus.
-
The CPU asserts
/UDS, /LDS, or both,
depending on which byte lanes are being written.
- The address decoder selects the target device.
- The selected device accepts the data.
-
The selected device or motherboard asserts
/DTACK.
- The CPU completes the bus cycle and releases the bus strobes.
This is a logical description of a transfer. Section 24 covers the
timing of the shared decoder. Each device page covers the timing
between its request input and completion output.
6. CPU Space Detection
The processor function-code outputs identify the address space used by
the current bus cycle. CPU space is selected when FC2,
FC1, and FC0 are all high. The motherboard
decodes this combination as the active-high internal signal
CPU_SPACE (MC68000UM, p. 3-9).
CPU_SPACE = FC2 AND FC1 AND FC0
Implementation
Two gates in U_AND, an SN74HCT08N, implement
the three-input function. A third gate in the same package generates
ROM_CYCLE_n later in the decode chain.
CPU_SPACE_STAGE1 = FC2 AND FC1
CPU_SPACE = CPU_SPACE_STAGE1 AND FC0
CPU-space decoder gate assignments
| Gate and pins |
Gate inputs |
Gate output |
Function |
U_AND gate 1: inputs 1, 2; output 3 |
FC2, FC1 |
CPU_SPACE_STAGE1 |
First AND stage. |
U_AND gate 2: inputs 4, 5; output 6 |
CPU_SPACE_STAGE1, FC0 |
CPU_SPACE |
Final AND stage. |
Gate 4, pins 12 and 13 in and pin 11 out, combines the two bus-error
sources as BERR_n = TIMEOUT_BERR_n AND INT_BERR_n; see
Bus Error and Timeout. Pin 7
connects to ground and pin 14 connects to +5 V. A 100 nF capacitor and
a 1 uF capacitor are placed in parallel between pins 14 and 7 near the
package.
CPU-space decode truth table
| FC2 |
FC1 |
FC0 |
CPU_SPACE |
| 0 |
0 |
0 |
0 |
| 0 |
0 |
1 |
0 |
| 0 |
1 |
0 |
0 |
| 0 |
1 |
1 |
0 |
| 1 |
0 |
0 |
0 |
| 1 |
0 |
1 |
0 |
| 1 |
1 |
0 |
0 |
| 1 |
1 |
1 |
1 |
CPU_SPACE prevents ordinary memory and I/O devices from
responding to CPU-space cycles such as interrupt acknowledge cycles.
7. Normal Bus-Cycle Qualification
Ordinary memory and I/O devices respond only during an active,
non-CPU-space bus cycle. The motherboard identifies that condition
with the active-low internal signal NORMAL_CYCLE_n. In
the equation below, AS_n is the motherboard name for the
processor's /AS pin.
NORMAL_CYCLE_n = AS_n OR CPU_SPACE
Normal-cycle qualification truth table
| AS_n |
CPU_SPACE |
NORMAL_CYCLE_n |
Meaning |
| 0 |
0 |
0 |
Normal memory or I/O bus cycle. |
| 0 |
1 |
1 |
CPU-space bus cycle; normal decoding is disabled. |
| 1 |
0 |
1 |
No active bus cycle. |
| 1 |
1 |
1 |
No active bus cycle. |
Normal-Cycle Distribution
U_NORMAL_BUF, an SN74HCT244N, prevents the
normal-cycle gate from driving every request gate directly. Three
noninverting outputs distribute identical copies of the qualifier.
NORMAL_MEM_n = NORMAL_CYCLE_n
NORMAL_EXP_n = NORMAL_CYCLE_n
NORMAL_MISC_n = NORMAL_CYCLE_n
Normal-cycle buffer connections
| Pin |
Connection |
| 1 |
1/OE to ground |
| 2 |
1A1 to NORMAL_CYCLE_n |
| 18 |
1Y1 produces NORMAL_MEM_n |
| 4 |
1A2 to NORMAL_CYCLE_n |
| 16 |
1Y2 produces NORMAL_EXP_n |
| 6 |
1A3 to NORMAL_CYCLE_n |
| 14 |
1Y3 produces NORMAL_MISC_n |
| 8 |
Unused 1A4 input to ground |
| 12 |
Unused 1Y4 output open |
| 19 |
2/OE to +5 V |
| 11, 13, 15, 17 |
Unused inputs to ground |
| 3, 5, 7, 9 |
Disabled outputs open |
| 10 |
Ground |
| 20 |
+5 V |
NORMAL_MEM_n drives the RAM, CL-GD5428, and top-I/O
request gates. NORMAL_EXP_n drives the four expansion
memory request gates. NORMAL_MISC_n drives the ROM-alias
qualifier and timeout reset. No buffer output drives more than four
HCT inputs.
8. Primary Address Decoder
The primary address decoder divides the processor's 16 MiB address
space into eight regions of 2 MiB each. CPU address lines
A23..A21 select one region through an
SN74HCT138N 3-line-to-8-line decoder/demultiplexer with
active-low outputs.
Address Bit Selection
A 2 MiB region contains 2^21 byte addresses. Address bits
below A21 vary within a region, while
A23..A21 identify which of the eight regions is selected.
Primary decoder select inputs
| SN74HCT138N input |
CPU signal |
Purpose |
A |
A21 |
Least-significant region-select bit. |
B |
A22 |
Middle region-select bit. |
C |
A23 |
Most-significant region-select bit. |
Enable Inputs
The primary decoder remains enabled continuously. Its outputs describe
the address currently present on the CPU address bus and are not
themselves qualified by /AS. This configuration matches
the enable conditions in SN74HCT138 table 7-1.
Primary decoder enable connections
| Enable input |
Connection |
G1 |
Logic high (+5 V) |
/G2A |
Logic low (GND) |
/G2B |
Logic low (GND) |
Region Decode
Primary decoder outputs and memory-map regions
| A23 |
A22 |
A21 |
Decoder output |
Internal signal |
Address range |
Function |
| 0 |
0 |
0 |
/Y0 |
REGION0_n |
$000000-$1FFFFF |
DRAM bank 0 / boot ROM alias |
| 0 |
0 |
1 |
/Y1 |
REGION1_n |
$200000-$3FFFFF |
DRAM bank 1 |
| 0 |
1 |
0 |
/Y2 |
REGION2_n |
$400000-$5FFFFF |
Expansion memory |
| 0 |
1 |
1 |
/Y3 |
REGION3_n |
$600000-$7FFFFF |
Expansion memory |
| 1 |
0 |
0 |
/Y4 |
REGION4_n |
$800000-$9FFFFF |
CL-GD5428 VGA host-memory window |
| 1 |
0 |
1 |
/Y5 |
REGION5_n |
$A00000-$BFFFFF |
Expansion memory |
| 1 |
1 |
0 |
/Y6 |
REGION6_n |
$C00000-$DFFFFF |
Expansion memory |
| 1 |
1 |
1 |
/Y7 |
REGION7_n |
$E00000-$FFFFFF |
I/O and firmware |
Physical Connections
SN74HCT138N PDIP pin connections
| Pin |
SN74HCT138N signal |
Connection |
| 1 |
A |
CPU A21 |
| 2 |
B |
CPU A22 |
| 3 |
C |
CPU A23 |
| 4 |
/G2A |
GND |
| 5 |
/G2B |
GND |
| 6 |
G1 |
+5 V |
| 7 |
/Y7 |
REGION7_n |
| 8 |
GND |
Ground |
| 9 |
/Y6 |
REGION6_n |
| 10 |
/Y5 |
REGION5_n |
| 11 |
/Y4 |
REGION4_n |
| 12 |
/Y3 |
REGION3_n |
| 13 |
/Y2 |
REGION2_n |
| 14 |
/Y1 |
REGION1_n |
| 15 |
/Y0 |
REGION0_n |
| 16 |
VCC |
+5 V |
A 100 nF capacitor and a 1 uF capacitor are placed in parallel between
VCC and GND near U_PRIMARY. The
SN74HCT138 datasheet recommends 100 nF and notes that 100 nF and 1 uF
are commonly used in parallel.
The region outputs are raw address-decode signals. A region output
being active does not by itself indicate that a CPU bus cycle is in
progress. Device-specific requests combine these outputs with
bus-cycle qualification, as shown below.
9. Qualified Region Requests
An OR gate combines a raw region-select signal with the appropriate
buffered normal-cycle qualifier. The request goes low only when the
address is in the selected region and a normal bus cycle is active.
DRAM Bank 1 Request
DRAM bank 1 occupies $200000-$3FFFFF, which corresponds
to REGION1_n. The DRAM controller receives a bank 1
request when that region is selected during a normal bus cycle.
RAM1_REQ_n = REGION1_n OR NORMAL_MEM_n
DRAM bank 1 request truth table
| REGION1_n |
NORMAL_MEM_n |
RAM1_REQ_n |
Meaning |
| 0 |
0 |
0 |
Valid DRAM bank 1 request. |
| 0 |
1 |
1 |
Address is in bank 1, but no valid normal cycle is active.
|
| 1 |
0 |
1 |
Normal cycle, but address is not in bank 1. |
| 1 |
1 |
1 |
No bank 1 access. |
RAM1_REQ_n goes to the DRAM controller, which generates
the required timing for the DRAM /RAS input.
CL-GD5428 VGA Host-Memory Request
The CL-GD5428 VGA host-memory window occupies
$800000-$9FFFFF, corresponding to REGION4_n.
The CL-GD5428 expects little-endian byte ordering, while the MC68EC000
uses big-endian byte ordering. The host interface connects CPU
D15..D8 to CL-GD5428 D7..D0 and CPU
D7..D0 to CL-GD5428 D15..D8. The matching
byte-enable connections are swapped with the data lanes. This wiring
also applies to the controller's I/O-register interface.
VGA_MEM_n = REGION4_n OR NORMAL_MEM_n
CL-GD5428 VGA host-memory request truth table
| REGION4_n |
NORMAL_MEM_n |
VGA_MEM_n |
Meaning |
| 0 |
0 |
0 |
Valid CL-GD5428 VGA host-memory access. |
| 0 |
1 |
1 |
CL-GD5428 VGA region address present, but no valid normal cycle.
|
| 1 |
0 |
1 |
Normal cycle, but address is outside the CL-GD5428 VGA window.
|
| 1 |
1 |
1 |
No CL-GD5428 VGA memory access. |
VGA_MEM_n is the motherboard-level CL-GD5428 VGA
memory-window select. The CL-GD5428 host interface may decode the
address further if needed.
Expansion Memory Requests
The decoder produces four qualified 2 MiB expansion-region requests.
EXP_MEM2_n goes to front slot 1 and
EXP_MEM3_n goes to front slot 2.
EXP_MEM5_n and EXP_MEM6_n remain on the
motherboard and have no connector destination.
EXP_MEM2_n = REGION2_n OR NORMAL_EXP_n
EXP_MEM3_n = REGION3_n OR NORMAL_EXP_n
EXP_MEM5_n = REGION5_n OR NORMAL_EXP_n
EXP_MEM6_n = REGION6_n OR NORMAL_EXP_n
Expansion memory selects
| Signal |
Address range |
EXP_MEM2_n |
$400000-$5FFFFF |
EXP_MEM3_n |
$600000-$7FFFFF |
EXP_MEM5_n |
$A00000-$BFFFFF |
EXP_MEM6_n |
$C00000-$DFFFFF |
10. Top I/O Slot Decoder
The top 2 MiB region, $E00000-$FFFFFF, contains the
motherboard's I/O devices and firmware. This region is divided into
sixteen slots of 128 KiB each.
Top I/O Cycle Qualification
An OR gate combines the raw REGION7_n address decode with
NORMAL_MEM_n. The resulting TOP_IO_n signal
goes low only during a normal bus cycle in region 7.
TOP_IO_n = REGION7_n OR NORMAL_MEM_n
Top I/O region qualification truth table
| REGION7_n |
NORMAL_MEM_n |
TOP_IO_n |
Meaning |
| 0 |
0 |
0 |
Valid cycle in the top I/O and firmware region. |
| 0 |
1 |
1 |
Region 7 address present, but no normal cycle is active. |
| 1 |
0 |
1 |
Normal cycle outside region 7. |
| 1 |
1 |
1 |
No top I/O access. |
Slot Address Bits
Each I/O slot is 128 KiB, or 2^17 byte addresses. Address
lines A20..A17 select one of the sixteen slots; lower
address lines do not affect slot selection. In 16-bit mode,
A0 remains high and /UDS and
/LDS select the byte lane.
Address line A20 selects the group: low for slots 0
through 7 and high for slots 8 through 15. Address lines
A19..A17 select one slot within that group.
Low-Half Decoder
U_IO_LOW is an SN74HCT138N that generates
IO0_n through IO7_n.
Low-half slot decoder connections
| SN74HCT138N signal |
Connection |
A |
CPU A17 |
B |
CPU A18 |
C |
CPU A19 |
G1 |
+5 V |
/G2A |
TOP_IO_n |
/G2B |
CPU A20 |
U_IO_LOW is enabled only when TOP_IO_n is
low and A20 is low.
Low-half I/O slot assignments
| Output |
Internal signal |
Address range |
Device |
/Y0 |
IO0_n |
$E00000-$E1FFFF |
MC68901 MFP |
/Y1 |
IO1_n |
$E20000-$E3FFFF |
Intel 82077AA-1 |
/Y2 |
IO2_n |
$E40000-$E5FFFF |
Yamaha YMF262 OPL3 |
/Y3 |
IO3_n |
$E60000-$E7FFFF |
CL-GD5428 VGA I/O registers |
/Y4 |
IO4_n |
$E80000-$E9FFFF |
System control registers |
/Y5 |
IO5_n |
$EA0000-$EBFFFF |
MC6850 MIDI ACIA |
/Y6 |
IO6_n |
$EC0000-$EDFFFF |
Front expansion slot 1 I/O |
/Y7 |
IO7_n |
$EE0000-$EFFFFF |
Front expansion slot 2 I/O |
High-Half Decoder
U_IO_HIGH is a second SN74HCT138N that
generates IO8_n through IO15_n.
High-half slot decoder connections
| SN74HCT138N signal |
Connection |
A |
CPU A17 |
B |
CPU A18 |
C |
CPU A19 |
G1 |
CPU A20 |
/G2A |
TOP_IO_n |
/G2B |
GND |
U_IO_HIGH is enabled only when TOP_IO_n is
low and A20 is high.
High-half I/O slot assignments
| Output |
Internal signal |
Address range |
Device |
/Y0 |
IO8_n |
$F00000-$F1FFFF |
DS1285 RTC |
/Y1 |
IO9_n |
$F20000-$F3FFFF |
Reserved |
/Y2 |
IO10_n |
$F40000-$F5FFFF |
Reserved |
/Y3 |
IO11_n |
$F60000-$F7FFFF |
Reserved |
/Y4 |
IO12_n |
$F80000-$F9FFFF |
Reserved |
/Y5 |
IO13_n |
$FA0000-$FBFFFF |
Reserved |
/Y6 |
IO14_n |
$FC0000-$FDFFFF |
Reserved |
/Y7 |
IO15_n |
$FE0000-$FFFFFF |
Firmware EEPROM |
IO9_n..IO14_n remain on the motherboard and have no
connector destination under memory-map revision 1.0.
Each decoder has a 100 nF capacitor and a 1 uF capacitor in parallel
between VCC and GND, placed near the IC.
11. System Register Decoder
I/O slot 4, covering $E80000-$E9FFFF, contains
motherboard control and status registers.
U_SYSREG, an SN74HCT138N, decodes eight
lower-byte registers. CPU address lines A3..A1 select the
register number.
Register Address Selection
The motherboard's 8-bit registers use the lower data byte,
D7..D0, and are accessed using /LDS.
Consecutive registers are therefore located two CPU byte addresses
apart. In the tables below, LDS_n is the motherboard name
for the processor's /LDS pin.
System-register address decode
| A3 |
A2 |
A1 |
Decoder output |
Register select |
Canonical address |
| 0 |
0 |
0 |
/Y0 |
SYSREG0_n |
$E80001 |
| 0 |
0 |
1 |
/Y1 |
SYSREG1_n |
$E80003 |
| 0 |
1 |
0 |
/Y2 |
SYSREG2_n |
$E80005 |
| 0 |
1 |
1 |
/Y3 |
SYSREG3_n |
$E80007 |
| 1 |
0 |
0 |
/Y4 |
SYSREG4_n |
$E80009 |
| 1 |
0 |
1 |
/Y5 |
SYSREG5_n |
$E8000B |
| 1 |
1 |
0 |
/Y6 |
SYSREG6_n |
$E8000D |
| 1 |
1 |
1 |
/Y7 |
SYSREG7_n |
$E8000F |
Decoder Connections
System-register decoder connections
| SN74HCT138N signal |
Connection |
Purpose |
A |
CPU A1 |
Least-significant register-select bit. |
B |
CPU A2 |
Middle register-select bit. |
C |
CPU A3 |
Most-significant register-select bit. |
G1 |
+5 V |
Active-high decoder enable. |
/G2A |
IO4_n |
Enables the decoder only inside system-register I/O slot 4.
|
/G2B |
LDS_n |
Enables the decoder only for lower-byte accesses. |
Register Assignments
System-register functions
| Register |
Address |
Function |
SYSREG0 / SYSCTRL |
$E80001 |
Any write disables the boot ROM overlay. |
SYSREG1 / DEBUG |
$E80003 |
Write-only 8-bit hexadecimal debug display register. The upper
and lower nibbles are continuously shown on two internal
seven-segment displays.
|
SYSREG2 |
$E80005 |
Reserved. |
SYSREG3 |
$E80007 |
Reserved. |
SYSREG4 |
$E80009 |
Reserved. |
SYSREG5 |
$E8000B |
Reserved. |
SYSREG6 |
$E8000D |
Reserved. |
SYSREG7 |
$E8000F |
Reserved. |
Address Mirroring
Within I/O slot 4, the local decoder ignores address lines
A16..A4. The eight registers repeat every 16 bytes
throughout the 128 KiB slot. Software uses only the eight canonical
odd addresses from $E80001 through $E8000F.
U_SYSREG has a 100 nF capacitor and a 1 uF capacitor in
parallel between VCC and GND, placed near
the IC.
12. System Register Write Qualification
The system-register decoder identifies the selected register. An OR
gate combines its active-low output with the MC68EC000
R/W signal to produce an active-low write qualifier.
R/W is high during a read and low during a write.
Boot Overlay Register Write
SYSREG0 / SYSCTRL controls the boot ROM overlay. A write
to this register generates OVERLAY_WRITE_n.
OVERLAY_WRITE_n = SYSREG0_n OR R/W
Debug Register Write
SYSREG1 / DEBUG is the write-only 8-bit hexadecimal debug
display register. A write to this register generates
DEBUG_WRITE_n.
DEBUG_WRITE_n = SYSREG1_n OR R/W
A spare inverter produces the positive edge required by the debug
register. The edge occurs when the fully decoded write becomes active,
while the CPU is still driving the data bus.
DEBUG_CLK = NOT DEBUG_WRITE_n
Write Qualification Truth Table
System-register write qualification truth table
| SYSREGx_n |
R/W |
WRITE_n |
Meaning |
| 0 |
0 |
0 |
The register is selected for a write. |
| 0 |
1 |
1 |
The register is selected for a read. |
| 1 |
0 |
1 |
Write direction, but this register is not selected. |
| 1 |
1 |
1 |
Read direction; this register is not selected. |
The SYSREGx_n signals already include bus-cycle
qualification through IO4_n. The write equations do not
need another /AS term.
System-Register Acknowledgement
Every lower-byte write in I/O slot 4 is acknowledged. Writes to
SYSREG2..SYSREG7 are ignored. Reads and upper-byte-only
accesses receive no system-register acknowledgement and reach the bus
timeout.
SYSREG_ACK_STAGE_n = IO4_n OR LDS_n
SYSREG_DTACK_n = SYSREG_ACK_STAGE_n OR R/W
System-register access behavior
| Access |
SYSREG_DTACK_n |
Result |
Lower-byte write to SYSREG0 |
0 |
Overlay disabled and write acknowledged. |
Lower-byte write to SYSREG1 |
0 |
Debug byte stored and write acknowledged. |
Lower-byte write to SYSREG2..SYSREG7 |
0 |
Write acknowledged and ignored. |
| Read from any system register |
1 |
The timeout asserts /BERR. |
| Upper-byte-only access |
1 |
The timeout asserts /BERR. |
Debug Byte Storage
U_DEBUG, an SN74HCT574N, stores the debug
byte. Its data inputs connect to CPU D7..D0, its clock
connects to DEBUG_CLK, and its active-low output enable
connects to ground. The rising edge at the start of the qualified
write stores the byte. The outputs feed the hexadecimal seven-segment
decoder described in the
debug display document.
13. Low 128 KiB Address Decoder
The boot ROM alias occupies the lowest 128 KiB of the processor
address space, from $000000 through $01FFFF.
A 128 KiB region contains 2^17 byte addresses. Address
lines A16..A1 may vary within the region. The processor
also exposes A0, but drives it high in 16-bit mode;
/UDS and /LDS select the byte lane. Address
lines A23..A17 must all be low.
Existing REGION0 Decode
REGION0_n is already generated by the primary address
decoder. When REGION0_n is active, address lines
A23..A21 are known to be zero.
The low-128-KiB decoder therefore only needs to test address lines
A20..A17.
Implementation
U_LOW128 is an SN74HCT138N. CPU address
lines A18, A19, and A20 drive
its select inputs. A17 and REGION0_n drive
its active-low enables.
Low-128-KiB decoder connections
| SN74HCT138N signal |
Connection |
Purpose |
A |
CPU A18 |
Least-significant decoder-select bit. |
B |
CPU A19 |
Middle decoder-select bit. |
C |
CPU A20 |
Most-significant decoder-select bit. |
G1 |
+5 V |
Active-high enable permanently asserted. |
/G2A |
REGION0_n |
Enables the decoder only while the address lies inside
REGION0.
|
/G2B |
CPU A17 |
Enables the decoder only while A17 is low. |
/Y0 |
LOW128_n |
Active when the address lies within
$000000-$01FFFF.
|
Address Condition
LOW128_n becomes active only when all of the following
conditions are true:
REGION0_n = 0
A20 = 0
A19 = 0
A18 = 0
A17 = 0
Since REGION0_n already guarantees that
A23..A21 are zero, this is equivalent to:
A23..A17 = 0000000
The resulting address range is exactly:
$000000-$01FFFF
Boundary Examples
Low-128-KiB decoder boundary checks
| Address |
LOW128_n |
Meaning |
$000004 |
0 |
Inside the boot ROM alias range. |
$01FFFF |
0 |
Last address inside the boot ROM alias range. |
$020000 |
1 |
First address above the boot ROM alias range. |
$100000 |
1 |
Inside REGION0, but outside the boot ROM alias
range.
|
Qualification Note
LOW128_n is a raw address-decode signal. It does not by
itself select the firmware EEPROM and is not qualified by
NORMAL_CYCLE_n.
The final ROM alias selection combines this signal with the boot
overlay state and normal-cycle qualification.
U_LOW128 has a 100 nF capacitor and a 1 uF capacitor in
parallel between VCC and GND, placed near
the IC.
14. Boot Overlay State
One bit of motherboard state controls the boot ROM overlay. Hardware
reset enables the overlay. A write to SYSREG0 / SYSCTRL
disables it until the next hardware reset.
Overlay State Signals
The active-high signal OVERLAY_EN represents the current
overlay state.
OVERLAY_EN = 1 -> boot ROM alias enabled
OVERLAY_EN = 0 -> boot ROM alias disabled
The complementary active-low signal is named
OVERLAY_n.
OVERLAY_n = NOT OVERLAY_EN
Required Behavior
Required boot overlay state transitions
| Event |
Previous OVERLAY_EN |
New OVERLAY_EN |
| Hardware reset |
X |
1 |
Write to SYSREG0 / SYSCTRL |
1 |
0 |
Write to SYSREG0 / SYSCTRL |
0 |
0 |
| Any other bus cycle |
1 |
1 |
| Any other bus cycle |
0 |
0 |
Implementation
U_OVERLAY, an SN74HCT74N, stores the overlay
state. The first flip-flop uses its asynchronous preset and clear
inputs, so no decode signal is used as a clock.
Boot overlay flip-flop connections
| Pin |
SN74HCT74N signal |
Connection |
Purpose |
| 1 |
1/CLR |
OVERLAY_WRITE_n |
A register write clears the overlay state. |
| 2 |
D |
Ground |
Defines the unused synchronous data input. |
| 3 |
1CLK |
Ground |
Prevents synchronous state changes. |
| 4 |
1/PRE |
RESET_n |
Enables the boot overlay during reset. |
| 5 |
Q |
OVERLAY_EN |
Active-high overlay state. |
| 6 |
/Q |
OVERLAY_n |
Complementary active-low overlay state. |
| 7 |
GND |
Ground |
Package ground. |
| 8, 9 |
2/Q, 2Q |
No connection |
Unused outputs. |
| 10, 13 |
2/PRE, 2/CLR |
+5 V |
Holds both unused asynchronous inputs inactive. |
| 11, 12 |
2CLK, 2D |
Ground |
Defines both unused synchronous inputs. |
| 14 |
VCC |
+5 V |
Package supply. |
RESET_n and OVERLAY_WRITE_n must not be low
together during normal operation. An asynchronous reset can arrive
during an existing overlay-clear write. Verify that clear returns
inactive while preset remains asserted and that the boot state is
restored before CPU reset release. The
boot-overlay reset checks
include the two-stage SN74LS14 conditioner and the remaining loaded
preset-edge check. RESET_RAW_n is confined to the supervisor, switch,
capacitor, and first Schmitt input; RESET_n is the conditioned
board-reset signal. A processor-generated /RESET pulse
does not reach U_OVERLAY.
Write Behavior
The value written to SYSREG0 / SYSCTRL is ignored. Any
valid write to the register disables the boot overlay.
write SYSREG0 / SYSCTRL -> OVERLAY_EN = 0
The register is intentionally one-way. Software cannot re-enable the
boot overlay after it has been disabled. Only an external reset
restores OVERLAY_EN to one.
Asynchronous State Change
Hardware reset drives 1/PRE low and sets
OVERLAY_EN. A qualified write drives
1/CLR low and clears OVERLAY_EN. Releasing
either asynchronous input leaves the stored state unchanged.
RESET_n = 0 -> OVERLAY_EN = 1
OVERLAY_WRITE_n = 0 -> OVERLAY_EN = 0
The
clock-and-reset document defines
the circuit that generates RESET_n. This decoder treats
it as an active-low input.
Address Mirroring
Because the system-register decoder uses partial address decoding,
SYSREG0 / SYSCTRL is electrically mirrored throughout I/O
slot 4. A write to any mirror has the same hardware effect. Software
uses $E80001 as the canonical overlay-control address.
The SN74HCT74N has a 100 nF capacitor and a 1 uF
capacitor in parallel between VCC and GND,
placed near the IC.
15. Boot ROM Alias Generation
The firmware EEPROM is temporarily mapped into the lowest 128 KiB of
the processor address space while the boot overlay is enabled.
ROM_ALIAS_ADDR_n records the address and overlay state
condition. ROM_ALIAS_n adds normal-cycle qualification.
Alias Address Condition
LOW128_n is active when the CPU address lies between
$000000 and $01FFFF.
OVERLAY_n is active when the boot overlay is enabled. An
OR gate combines the two active-low signals, so its output is low only
when the address is inside the alias range and the overlay is enabled.
ROM_ALIAS_ADDR_n = LOW128_n OR OVERLAY_n
Boot ROM alias address condition truth table
| LOW128_n |
OVERLAY_n |
ROM_ALIAS_ADDR_n |
Meaning |
| 0 |
0 |
0 |
The low 128 KiB address range belongs to the firmware ROM alias.
|
| 0 |
1 |
1 |
The address is inside the alias range, but the overlay is
disabled.
|
| 1 |
0 |
1 |
The overlay is enabled, but the address is outside the alias
range.
|
| 1 |
1 |
1 |
The address is outside the low 128 KiB and the overlay is
disabled.
|
Bus Cycle Qualification
ROM_ALIAS_ADDR_n does not indicate an active CPU bus
cycle. A second OR gate combines it with NORMAL_MISC_n to
generate the qualified boot ROM alias request.
ROM_ALIAS_n = ROM_ALIAS_ADDR_n OR NORMAL_MISC_n
Qualified boot ROM alias request truth table
| ROM_ALIAS_ADDR_n |
NORMAL_MISC_n |
ROM_ALIAS_n |
Meaning |
| 0 |
0 |
0 |
Valid firmware ROM access through the low boot alias. |
| 0 |
1 |
1 |
The alias address condition is present, but no valid normal bus
cycle is active.
|
| 1 |
0 |
1 |
A normal bus cycle is active, but the alias address condition is
inactive.
|
| 1 |
1 |
1 |
No boot ROM alias access. |
Reset Vector Example
Immediately after reset, OVERLAY_EN is high and
OVERLAY_n is low.
A CPU access to $000004 activates LOW128_n.
During a normal bus cycle the resulting signals are:
LOW128_n = 0
OVERLAY_n = 0
ROM_ALIAS_ADDR_n = 0
NORMAL_CYCLE_n = 0
ROM_ALIAS_n = 0
The firmware EEPROM owns the reset-vector access.
After Overlay Disable
After software writes to SYSREG0 / SYSCTRL,
OVERLAY_EN becomes zero and
OVERLAY_n becomes one.
An access to the same low address then produces:
LOW128_n = 0
OVERLAY_n = 1
ROM_ALIAS_ADDR_n = 1
NORMAL_CYCLE_n = 0
ROM_ALIAS_n = 1
The firmware EEPROM no longer responds through the low alias.
Signal Roles
Boot ROM alias signal roles
| Signal |
Meaning |
Active level |
LOW128_n |
The current address lies within
$000000-$01FFFF.
|
Low |
OVERLAY_n |
The boot overlay is enabled. |
Low |
ROM_ALIAS_ADDR_n |
The low address range currently belongs to the boot ROM alias.
|
Low |
ROM_ALIAS_n |
A valid normal CPU bus cycle is accessing the boot ROM alias.
|
Low |
16. Firmware ROM Cycle Selection
The firmware EEPROM has two address mappings. The permanent mapping
occupies $FE0000-$FFFFFF. The temporary boot alias
occupies $000000-$01FFFF while the boot overlay is
enabled.
ROM_CYCLE_n combines both qualified selections into one
active-low firmware request.
Input Signals
Firmware ROM selection inputs
| Signal |
Meaning |
Active level |
IO15_n |
Valid access to the permanent firmware mapping at
$FE0000-$FFFFFF.
|
Low |
ROM_ALIAS_n |
Valid access to the temporary firmware alias at
$000000-$01FFFF.
|
Low |
Logic Equation
An AND gate combines the two active-low inputs. Its output is low when
either mapping selects the firmware EEPROM.
ROM_CYCLE_n = IO15_n AND ROM_ALIAS_n
Truth Table
Firmware ROM cycle selection truth table
| IO15_n |
ROM_ALIAS_n |
ROM_CYCLE_n |
Meaning |
| 0 |
0 |
0 |
Both firmware selections are active. This state cannot occur
during a stable bus cycle because the mappings do not overlap.
|
| 0 |
1 |
0 |
Firmware accessed through its permanent high-memory mapping.
|
| 1 |
0 |
0 |
Firmware accessed through the temporary low boot alias. |
| 1 |
1 |
1 |
No firmware access. |
Bus Cycle Qualification
ROM_CYCLE_n does not need another normal-cycle term.
IO15_n is already generated by the qualified top I/O
decoder, and ROM_ALIAS_n already includes
NORMAL_MISC_n.
Permanent Mapping Example
During a normal access to $FE0100:
IO15_n = 0
ROM_ALIAS_n = 1
ROM_CYCLE_n = 0 AND 1
= 0
The firmware EEPROM is selected through its permanent mapping.
Boot Alias Example
Immediately after reset, a normal access to
$000004 produces:
IO15_n = 1
ROM_ALIAS_n = 0
ROM_CYCLE_n = 1 AND 0
= 0
The firmware EEPROM is selected through the low boot alias.
After Overlay Disable
After the boot overlay has been disabled, an access to
$000004 produces:
IO15_n = 1
ROM_ALIAS_n = 1
ROM_CYCLE_n = 1 AND 1
= 1
The firmware EEPROM no longer responds to the low address.
Implementation
Gate 3 in U_AND, an SN74HCT08N, generates
ROM_CYCLE_n. Pins 9 and 10 are the inputs and pin 8 is
the output.
ROM Bank and Byte-Lane Selection
Four AT28C256-15PU EEPROMs form a 128 KiB, 16-bit ROM.
A16 selects one of two 64 KiB halves. Within each half,
/UDS selects the upper-byte EEPROM and /LDS
selects the lower-byte EEPROM.
A16_n = NOT A16
READ_n = NOT R/W
ROM_BANK0_n = ROM_CYCLE_n OR A16
ROM_BANK1_n = ROM_CYCLE_n OR A16_n
ROM0_UDS_n = ROM_BANK0_n OR UDS_n
ROM0_LDS_n = ROM_BANK0_n OR LDS_n
ROM1_UDS_n = ROM_BANK1_n OR UDS_n
ROM1_LDS_n = ROM_BANK1_n OR LDS_n
Firmware EEPROM assignments
| Device |
64 KiB half |
CPU data lane |
/CE |
U_ROM0U |
A16 = 0 |
D15..D8 |
ROM0_UDS_n |
U_ROM0L |
A16 = 0 |
D7..D0 |
ROM0_LDS_n |
U_ROM1U |
A16 = 1 |
D15..D8 |
ROM1_UDS_n |
U_ROM1L |
A16 = 1 |
D7..D0 |
ROM1_LDS_n |
CPU A1..A15 connect to EEPROM A0..A14 on all
four devices. On an upper-byte EEPROM, I/O0..I/O7 connect
to CPU D8..D15. On a lower-byte EEPROM they connect to
CPU D0..D7. Every EEPROM /OE input connects
to READ_n, and every /WE input connects to
+5 V.
A write to either firmware mapping cannot alter the EEPROM because
/WE is held high. The firmware interface does not assert
ROM_DTACK_n for a write, so the timeout ends the cycle
with /BERR. Read timing and generation of
ROM_DTACK_n belong in the
firmware ROM document.
17. DRAM Bank 0 Overlay Suppression
DRAM bank 0 normally occupies
$000000-$1FFFFF. During boot, however, the lowest 128 KiB
of this region is temporarily occupied by the firmware ROM alias.
DRAM bank 0 must remain inactive while the boot ROM alias owns an
address.
Base DRAM Bank 0 Request
Without overlay suppression, a normal access to
REGION0 would generate:
RAM0_BASE_n = REGION0_n OR NORMAL_MEM_n
This signal cannot be the final DRAM bank 0 request because it would
also become active during accesses to the boot ROM alias.
Alias Suppression Signal
ROM_ALIAS_ADDR_n is active low whenever the current
address lies inside the low 128 KiB and the boot overlay is enabled.
An inverter produces an active-high version of this condition:
ALIAS_ACTIVE = NOT ROM_ALIAS_ADDR_n
When ALIAS_ACTIVE is high, DRAM bank 0 must remain
inactive.
Final DRAM Bank 0 Request
RAM0_REQ_n = RAM0_BASE_n OR ALIAS_ACTIVE
Substituting the base request gives:
RAM0_REQ_n =
REGION0_n
OR NORMAL_MEM_n
OR ALIAS_ACTIVE
DRAM bank 0 overlay suppression truth table
| REGION0_n |
NORMAL_MEM_n |
ALIAS_ACTIVE |
RAM0_REQ_n |
Meaning |
| 0 |
0 |
0 |
0 |
Valid DRAM bank 0 request. |
| 0 |
0 |
1 |
1 |
The boot ROM alias owns the address, so DRAM bank 0 is
suppressed.
|
| 0 |
1 |
X |
1 |
No valid normal bus cycle is active. |
| 1 |
X |
X |
1 |
The address is outside DRAM bank 0. |
Boot Vector Example
Immediately after reset, a CPU access to
$000004 occurs inside the boot ROM alias.
REGION0_n = 0
NORMAL_CYCLE_n = 0
ROM_ALIAS_ADDR_n = 0
ALIAS_ACTIVE = 1
RAM0_REQ_n = 1
DRAM bank 0 remains inactive while the firmware EEPROM supplies the
reset-vector data.
Access Above the Alias During Boot
The boot overlay affects only the lowest 128 KiB. An access to
$100000 while the overlay is enabled produces:
REGION0_n = 0
NORMAL_CYCLE_n = 0
ROM_ALIAS_ADDR_n = 1
ALIAS_ACTIVE = 0
RAM0_REQ_n = 0
DRAM bank 0 remains usable above the boot ROM alias before the overlay
is disabled.
Low Memory After Overlay Disable
After software disables the boot overlay, a CPU access to
$000004 produces:
REGION0_n = 0
NORMAL_CYCLE_n = 0
ROM_ALIAS_ADDR_n = 1
ALIAS_ACTIVE = 0
RAM0_REQ_n = 0
DRAM bank 0 now owns the low address.
Implementation
ALIAS_ACTIVE requires one inversion of
ROM_ALIAS_ADDR_n. The two-stage bank 0 request requires
two 2-input OR gates.
One gate in U_INVERT, an SN74HCT04N,
generates ALIAS_ACTIVE. Two gates in the
SN74HCT32N OR-gate bank generate
RAM0_BASE_n and RAM0_REQ_n.
Section 23 lists the package and pin assignments.
DRAM Controller Interface
RAM0_REQ_n is a request to the DRAM controller and is not
connected directly to a DRAM /RAS or /CAS
input.
DRAM row/column multiplexing, /RAS and
/CAS timing, refresh, write control, and bus-cycle
termination belong in the DRAM document.
18. Worked Decode Examples
These examples trace an address through each decoder that applies to
it. A zero on a signal ending in _n means that the signal
is active.
DRAM Bank 1 Read at $300000
For a normal read, AS_n is low and
CPU_SPACE is low. Address bits
A23..A21 = 001 select primary-decoder output
/Y1.
AS_n = 0
CPU_SPACE = 0
NORMAL_CYCLE_n = 0 OR 0 = 0
NORMAL_MEM_n = 0
A23..A21 = 001
REGION1_n = 0
RAM1_REQ_n = REGION1_n OR NORMAL_MEM_n
= 0 OR 0
= 0
RAM1_REQ_n requests the transfer from the DRAM
controller.
Debug Register Write at $E80003
This lower-byte write passes through the primary decoder, the low-half
I/O decoder, and the system-register decoder.
AS_n = 0
CPU_SPACE = 0
NORMAL_CYCLE_n = 0
NORMAL_MEM_n = 0
A23..A21 = 111
REGION7_n = 0
TOP_IO_n = REGION7_n OR NORMAL_MEM_n
= 0 OR 0
= 0
A20 = 0 low-half I/O decoder enabled
A19..A17 = 100 /Y4 selected
IO4_n = 0
LDS_n = 0 system-register decoder enabled
A3..A1 = 001 /Y1 selected
SYSREG1_n = 0
R/W = 0
DEBUG_WRITE_n = SYSREG1_n OR R/W
= 0 OR 0
= 0
The active DEBUG_WRITE_n signal identifies a write to
SYSREG1 / DEBUG. The register captures data from
D7..D0 when DEBUG_CLK rises during the
write.
Upper-Byte Access at $E80002
The address still selects I/O slot 4, but an upper-byte access leaves
LDS_n high. That disables U_SYSREG through
its /G2B input.
IO4_n = 0
UDS_n = 0
LDS_n = 1
SYSREG0_n..SYSREG7_n = 1
DEBUG_WRITE_n = 1
No motherboard system register responds to this access.
Firmware Read at $FE0100
The permanent firmware mapping uses I/O slot 15. The boot-overlay
state does not affect this mapping.
AS_n = 0
CPU_SPACE = 0
NORMAL_CYCLE_n = 0
NORMAL_MEM_n = 0
A23..A21 = 111
REGION7_n = 0
TOP_IO_n = 0
A20 = 1 high-half I/O decoder enabled
A19..A17 = 111 /Y7 selected
IO15_n = 0
ROM_ALIAS_n = 1
ROM_CYCLE_n = IO15_n AND ROM_ALIAS_n
= 0 AND 1
= 0
ROM_CYCLE_n selects the firmware interface. The state of
A16 and the byte strobes select one of the four EEPROMs.
CPU-Space Cycle at $E80003
The primary decoder always follows the address bus, so it still
activates REGION7_n. The normal-cycle qualifier prevents
the address from reaching either I/O slot decoder.
AS_n = 0
FC2..FC0 = 111
CPU_SPACE = 1
NORMAL_CYCLE_n = AS_n OR CPU_SPACE
= 0 OR 1
= 1
NORMAL_MEM_n = 1
REGION7_n = 0
TOP_IO_n = REGION7_n OR NORMAL_MEM_n
= 0 OR 1
= 1
IO0_n..IO15_n = 1
SYSREG0_n..SYSREG7_n = 1
Normal memory, I/O, and system-register logic does not respond. The
interrupt logic handles the CPU-space transaction separately.
19. Bus Cycle Termination
Address decoding determines which motherboard subsystem owns a CPU bus
cycle. Bus-cycle termination tells the processor when that subsystem
has completed the transfer.
The MC68EC000 uses the active-low /DTACK input to
acknowledge completion of a normal bus transfer. The processor waits
until the selected subsystem or its interface logic produces a valid
termination response.
Selection and Completion
A device-select signal does not by itself indicate that the transfer
is complete.
address decode -> target selected -> transfer
-> completion response -> /DTACK -> cycle complete
Each subsystem can assert /DTACK when its transfer
completes, so slower subsystems add wait states without imposing the
same delay on faster devices.
Subsystem Termination Responsibility
Bus-cycle termination responsibilities
| Subsystem |
Request or select |
Termination source |
Implementation |
| DRAM bank 0 |
RAM0_REQ_n |
DRAM_DTACK_n |
DRAM controller |
| DRAM bank 1 |
RAM1_REQ_n |
DRAM_DTACK_n |
DRAM controller |
| CL-GD5428 VGA host memory |
VGA_MEM_n |
VGA_DTACK_n |
CL-GD5428 host interface |
| System registers |
IO4_n, LDS_n, and R/W
|
SYSREG_DTACK_n |
Motherboard logic |
| MC68901 MFP |
IO0_n |
MFP_DTACK_n |
MFP interface |
| Floppy controller |
IO1_n |
FDC_DTACK_n |
Floppy interface |
| YMF262 OPL3 |
IO2_n |
OPL3_DTACK_n |
OPL3 interface |
| CL-GD5428 VGA I/O |
IO3_n |
VGA_DTACK_n |
CL-GD5428 host interface |
| MC6850 MIDI ACIA |
IO5_n |
MIDI_DTACK_n |
MC6850 bus adapter |
| RTC |
IO8_n |
RTC_DTACK_n |
RTC interface |
| Firmware EEPROM |
ROM_CYCLE_n |
ROM_DTACK_n |
Firmware ROM interface |
| Expansion hardware |
Expansion-region or I/O-select signal |
EXP_DTACK_n |
Expansion interface |
Internal Completion Signals
Each subsystem generates one internal active-low completion signal. An
adapter may generate the signal when the device does not provide a
68k-compatible acknowledgement output.
DRAM_DTACK_n
ROM_DTACK_n
SYSREG_DTACK_n
MFP_DTACK_n
FDC_DTACK_n
OPL3_DTACK_n
VGA_DTACK_n
MIDI_DTACK_n
RTC_DTACK_n
EXP_DTACK_n
An unselected subsystem must keep its completion signal inactive. A
subsystem must never terminate a bus cycle that it does not own. Once
asserted, a completion signal remains low until AS_n
returns high.
Final /DTACK Combination
Two SN74F21N packages combine the ten completion signals
through four-input AND gates. No device outputs are connected
together. The SN74F21N is a period-correct 5 V TTL dual
four-input AND in a 14-pin PDIP; its TI data sheet dates from 1987 and
was revised in 1993. FAST rather than HCT is required here so that the
acknowledgement-release path fits inside the MC68EC000FN10 requirement
of 110 ns from AS_n or the data strobes negating to
/DTACK negating.
Because the individual completion signals are active low, the logical
behavior is equivalent to an AND of the inactive-high responses:
DTACK_GROUP0_n =
DRAM_DTACK_n AND ROM_DTACK_n
AND SYSREG_DTACK_n AND MFP_DTACK_n
DTACK_GROUP1_n =
FDC_DTACK_n AND OPL3_DTACK_n
AND VGA_DTACK_n AND MIDI_DTACK_n
DTACK_GROUP2_n = RTC_DTACK_n AND EXP_DTACK_n AND 1 AND 1
DTACK_RAW_n =
DTACK_GROUP0_n AND DTACK_GROUP1_n
AND DTACK_GROUP2_n AND 1
DTACK_n = DTACK_RAW_n OR TIMEOUT_ACTIVE
The MC68901 MFP_DTACK_n input in group 0 terminates both
ordinary MFP register cycles and level-6 interrupt-acknowledge cycles.
The completion tree remains active during CPU space, while the normal
bus timeout does not run there.
SN74F21N acknowledgement-tree connections
| Package and gate |
Input pins |
Output pin |
Signal |
U_DTACK_A gate 1 |
1: DRAM_DTACK_n; 2: ROM_DTACK_n; 4:
SYSREG_DTACK_n; 5: MFP_DTACK_n
|
6 |
DTACK_GROUP0_n |
U_DTACK_A gate 2 |
9: FDC_DTACK_n; 10: OPL3_DTACK_n; 12:
VGA_DTACK_n; 13: MIDI_DTACK_n
|
8 |
DTACK_GROUP1_n |
U_DTACK_B gate 1 |
1: RTC_DTACK_n; 2: EXP_DTACK_n; 4 and
5: +5 V
|
6 |
DTACK_GROUP2_n |
U_DTACK_B gate 2 |
9: DTACK_GROUP0_n; 10: DTACK_GROUP1_n;
12: DTACK_GROUP2_n; 13: +5 V
|
8 |
DTACK_RAW_n |
Pin 7 of each package connects to ground and pin 14 connects to +5 V.
The three unused gate inputs shown as logic one connect to +5 V: pins
4 and 5 on U_DTACK_B gate 1 and pin 13 on gate 2.
EXP_DTACK_n has a 10 kohm pull-up at the motherboard and
the expansion card may only pull it low. The timeout circuit masks
DTACK_RAW_n after a bus error and drives the CPU
/DTACK pin with DTACK_n.
The final DTACK_n = DTACK_RAW_n OR TIMEOUT_ACTIVE mask is
one gate of U_OR_DTACK, an SN74F32N. It is a
dedicated FAST-family OR package rather than a gate of the
SN74HCT32N bank, so the release edge is not slowed by the
slower HCT part. SN74F32N is period-correct, 5 V, and
available in PDIP.
Acknowledgement Release Path
The MC68EC000FN10 requires /DTACK to negate no later than
110 ns after AS_n and the data strobes negate. When a
subsystem releases its completion signal, that rising edge propagates
to the CPU /DTACK pin through the FAST tree only:
subsystem DTACK_n rises
-> SN74F21 level 1 (group AND) <= 5.3 ns tPLH
-> SN74F21 level 2 (final AND) <= 5.3 ns tPLH
-> SN74F32 timeout OR mask <= 6.6 ns tPLH
-> CPU DTACK_n rises
global release-tree logic delay <= 17.2 ns
Each stage uses the low-to-high datasheet maximum because release is a
rising edge at every node in the path:
tPLH(SN74F21) = 5.3 ns and
tPLH(SN74F32) = 6.6 ns. Assertion is the falling-edge
direction and uses tPHL(SN74F21) = 5.5 ns and
tPHL(SN74F32) = 6.3 ns; assertion delay is allowed to add
a CPU wait state, so it is not on the 110 ns critical path.
The 17.2 ns figure is the shared motherboard logic only. It does not
by itself prove the full CPU /DTACK negation timing. Each
subsystem still adds its own local release-qualification logic, and
PCB trace, connector, and loading delay must be added on top. Those
contributions are accounted for on the individual subsystem pages and
in the final board timing review.
Subsystem Timing
Each subsystem document defines the earliest safe assertion of its
completion response. This gives each device the shortest safe bus
cycle instead of imposing one wait-state count on the whole board.
For example, the DRAM controller asserts its response only after the
required row and column sequence has completed, while the firmware ROM
interface must allow sufficient time for EEPROM read data to become
valid.
CPU Space Cycles
The normal motherboard termination paths described in this section
apply to ordinary memory and I/O cycles. The
interrupt interface handles CPU-space
transactions such as interrupt acknowledge.
Unanswered Cycles
If no selected subsystem produces a completion response, the processor
is not left waiting indefinitely. The bus-timeout circuit terminates
the unanswered cycle using /BERR.
Section 20 documents bus error and timeout behavior.
20. Bus Error and Timeout
A normal CPU bus cycle may target an address for which no installed
motherboard or expansion device can respond. If no subsystem asserts
/DTACK, a bus timeout must terminate the transaction with
/BERR.
Successful and Failed Termination
/DTACK and /BERR represent two different
outcomes of a bus transaction.
Normal and bus error termination
| Signal |
Meaning |
Result |
/DTACK |
The selected subsystem completed the transfer. The timeout logic
keeps /BERR inactive, and /HALT also
remains inactive.
|
Normal bus-cycle completion. |
/BERR |
The timeout aborts the transfer instead of asserting
/DTACK. /HALT remains inactive.
|
Bus-error termination and exception processing. |
Timeout Behavior
The timeout mechanism begins monitoring when a normal bus cycle
becomes active.
normal bus cycle begins -> start timeout monitoring
If /DTACK is asserted before the timeout expires, the
transfer completes normally. The CPU then releases AS_n,
which resets the counter.
/DTACK before timeout -> normal completion
-> AS_n released -> timeout counter reset
If the bus cycle remains active and no /DTACK response is
received before the timeout expires, the timeout logic generates a bus
error.
no /DTACK before timeout -> TIMEOUT_BERR_n = 0
-> /BERR asserted
Timeout Bus Error Source
The internal active-low signal TIMEOUT_BERR_n represents
a bus error caused specifically by an unanswered normal bus cycle.
TIMEOUT_BERR_n = 0
-> current normal bus cycle exceeded the allowed response time
TIMEOUT_BERR_n is combined with
INT_BERR_n from the interrupt logic in
U_AND gate 4; the result BERR_n drives the
processor's physical /BERR input. The timeout does not
assert /HALT.
Normal Cycle Qualification
Timeout monitoring starts only when NORMAL_CYCLE_n goes
low.
Raw address-decoder outputs such as REGION2_n do not
start timeout monitoring because they do not by themselves indicate
that a CPU bus cycle is active.
Unmapped Address Example
Consider a normal CPU access to $500000 with no expansion
hardware installed in the corresponding address region.
normal bus cycle begins
REGION2_n = 0
no installed target responds
no subsystem generates /DTACK
timeout expires
TIMEOUT_BERR_n = 0
/BERR asserted
The CPU receives a bus error instead of waiting for nonexistent
hardware.
Timeout Duration
The timeout uses 512 falling edges of the 10 MHz clock. Depending on
the phase of AS_n, TIMEOUT_ACTIVE rises
about 51.1 to 51.2 microseconds after a normal cycle begins, plus
counter propagation delay.
Each valid device adapter must assert its completion response before
this boundary. Software-visible device busy times do not extend a bus
cycle; software polls the device status instead.
Implementation
U_TIMEOUT, a CD74HCT4040E counter, counts
falling edges of the 10 MHz clock while a normal cycle is active. Its
master reset connects to NORMAL_MISC_n.
TIMEOUT_ACTIVE = U_TIMEOUT Q10
TIMEOUT_BERR_n = NOT TIMEOUT_ACTIVE
BERR_n = TIMEOUT_BERR_n AND INT_BERR_n
DTACK_n = DTACK_RAW_n OR TIMEOUT_ACTIVE
INT_BERR_n is the spurious-interrupt-acknowledge abort
from the interrupt logic. It is inactive
during normal cycles. U_AND gate 4 combines the two
active-low bus-error sources; either one asserts the processor
/BERR input.
CD74HCT4040E timeout connections
| Pin |
Signal |
Connection |
| 8 |
GND |
Ground |
| 10 |
CP |
10 MHz CLK |
| 11 |
MR |
NORMAL_MISC_n |
| 14 |
Q10 |
TIMEOUT_ACTIVE |
| 16 |
VCC |
+5 V |
| All other Q outputs |
Unused counter outputs |
No connection |
Once TIMEOUT_ACTIVE rises, the U_OR_DTACK
SN74F32N gate forces DTACK_n high even if a
late device response arrives. The inverter asserts
BERR_n low. When the CPU releases AS_n,
NORMAL_MISC_n resets the counter, releases
BERR_n, and removes the acknowledgement mask.
CPU Space Cycles
The timeout mechanism described here applies to normal memory and I/O
cycles. The interrupt interface handles
CPU-space transactions, including interrupt acknowledge.
21. Interrupt Acknowledge Separation
Interrupt acknowledge is a CPU-space transaction, so it is excluded
from normal memory and I/O requests. The MC68000 function-code table
assigns FC2..FC0 = 111 to CPU space.
CPU_SPACE = FC2 AND FC1 AND FC0
Section 7 defines the normal bus qualifier as:
NORMAL_CYCLE_n = AS_n OR CPU_SPACE
During an active CPU-space transaction,
CPU_SPACE is high. This forces
NORMAL_CYCLE_n inactive even while /AS is
asserted.
CPU Space Example
AS_n = 0
FC2..FC0 = 111
CPU_SPACE = 1
NORMAL_CYCLE_n = 0 OR 1
= 1
Qualified memory and I/O requests remain inactive during the CPU-space
transaction.
Effect on Qualified Device Requests
Because normal device requests are qualified using
NORMAL_CYCLE_n, ordinary motherboard devices do not
respond during CPU-space cycles.
This includes DRAM, firmware ROM, CL-GD5428 VGA memory, the I/O slot
decoder, and motherboard system registers.
CPU-space cycle -> NORMAL_CYCLE_n inactive
-> normal RAM, ROM, and I/O requests remain inactive
Interrupt Acknowledge Handling
Interrupt-acknowledge transactions are handled by separate interrupt
logic rather than by the normal address decoder.
The interrupt document defines the
/IPL2..IPL0 priority inputs, the acknowledge decode, and
vector generation. Interrupt logic must never assert
/DTACK and /AVEC at the same time.
Three signals from the interrupt logic reach the processor through
this document's circuits:
Interrupt-logic signals into the motherboard
| Signal |
Route to the processor |
/AVEC |
Direct net from U_AVEC_OR to the MC68EC000
/AVEC pin, with a 10 kohm pull-up so it is inactive
when the interrupt logic is idle. This pin has no other driver.
|
MFP_DTACK_n |
U_DTACK_A gate 1 pin 5. The direct MC68901
acknowledgement terminates register and vectored level-6 cycles.
|
INT_BERR_n |
U_AND gate 4, combined with
TIMEOUT_BERR_n to form BERR_n. See
Bus Error and Timeout.
|
The interrupt logic also adds one input load to
CPU_SPACE, AS_n, and CPU address lines
A1..A3 and A16..A19. The bus timeout does
not run during a CPU-space cycle, so the interrupt logic provides the
only acknowledge-cycle backstop through INT_BERR_n.
22. Device Interface Boundaries
The motherboard decoder supplies one request or slot select to each
subsystem. Each subsystem document defines its local register map,
read and write strobes, data-bus wiring, and the earliest safe
completion response.
Bus signals assigned to subsystem documents
| Subsystem |
Document |
Motherboard request |
Completion response |
| DRAM |
DRAM |
RAM0_REQ_n, RAM1_REQ_n |
DRAM_DTACK_n |
| Firmware ROM |
Firmware ROM |
ROM_CYCLE_n |
ROM_DTACK_n |
| MC68901 MFP |
MFP |
IO0_n |
MFP_DTACK_n |
| Intel 82077AA-1 |
Floppy controller |
IO1_n |
FDC_DTACK_n |
| Yamaha YMF262 |
OPL3 |
IO2_n |
OPL3_DTACK_n |
| CL-GD5428 |
VGA |
VGA_MEM_n, IO3_n |
VGA_DTACK_n |
| System control and display |
System control |
IO4_n |
SYSREG_DTACK_n |
| MC6850 MIDI ACIA |
MIDI |
IO5_n |
MIDI_DTACK_n |
| DS1285 RTC |
RTC |
IO8_n |
RTC_DTACK_n |
| Expansion slots |
Expansion interface |
Slot 1: EXP_MEM2_n and IO6_n; slot 2:
EXP_MEM3_n and IO7_n
|
EXP_DTACK_n |
| Interrupt controller |
Interrupts |
CPU-space interrupt-acknowledge cycle |
/AVEC, or MFP_DTACK_n with an MFP
vector, or INT_BERR_n for a spurious acknowledge
|
The fixed-device slots use their low address bits for local register
selection and otherwise mirror through the slot. Reserved selects do
not reach the connectors. Empty expansion ranges produce no
EXP_DTACK_n response, so the motherboard timeout reports
a bus error.
23. Glue-Logic Package Assignments
The assignments below cover the motherboard bus and decoder. They do
not include the DRAM controller, device adapters, expansion buffers,
interrupt logic, or hexadecimal display decoder.
Decoder and Storage Packages
Bus and decoder package list
| Reference |
Part |
Function |
U_PRIMARY |
SN74HCT138N |
Primary 2 MiB region decoder |
U_IO_LOW |
SN74HCT138N |
I/O slots 0 through 7 |
U_IO_HIGH |
SN74HCT138N |
I/O slots 8 through 15 |
U_SYSREG |
SN74HCT138N |
System-register selects |
U_LOW128 |
SN74HCT138N |
Low 128 KiB alias decode |
U_AND |
SN74HCT08N |
CPU-space, ROM-cycle, and bus-error combine logic |
U_OR1..U_OR6 |
SN74HCT32N |
Request, write, ROM, and termination logic |
U_NORMAL_BUF |
SN74HCT244N |
Normal-cycle qualifier distribution |
U_INVERT |
SN74HCT04N |
Address, read, overlay, debug-clock, and timeout inversion
|
U_OVERLAY |
SN74HCT74N |
Boot-overlay state |
U_DEBUG |
SN74HCT574N |
Debug-byte storage |
U_DTACK_A, U_DTACK_B |
SN74F21N |
Completion-response AND tree |
U_OR_DTACK |
SN74F32N |
Final DTACK_n = DTACK_RAW_n OR TIMEOUT_ACTIVE
timeout mask
|
U_TIMEOUT |
CD74HCT4040E |
51.2 microsecond bus timeout |
SN74HCT32N Gate Map
On each OR-gate package, gate 1 uses input pins 1 and 2 with output
pin 3; gate 2 uses pins 4 and 5 with output pin 6; gate 3 uses pins 9
and 10 with output pin 8; and gate 4 uses pins 12 and 13 with output
pin 11. Pin 7 is ground and pin 14 is +5 V.
OR-gate allocation
| Package |
Gate 1 |
Gate 2 |
Gate 3 |
Gate 4 |
U_OR1 |
NORMAL_CYCLE_n |
RAM1_REQ_n |
VGA_MEM_n |
TOP_IO_n |
U_OR2 |
OVERLAY_WRITE_n |
DEBUG_WRITE_n |
ROM_ALIAS_ADDR_n |
ROM_ALIAS_n |
U_OR3 |
RAM0_BASE_n |
RAM0_REQ_n |
ROM_BANK0_n |
ROM_BANK1_n |
U_OR4 |
ROM0_UDS_n |
ROM0_LDS_n |
ROM1_UDS_n |
ROM1_LDS_n |
U_OR5 |
EXP_MEM2_n |
EXP_MEM3_n |
EXP_MEM5_n |
EXP_MEM6_n |
U_OR6 |
SYSREG_ACK_STAGE_n |
SYSREG_DTACK_n |
Unused |
Unused |
Pins 9, 10, 12, and 13 of U_OR6 connect to ground and its
unused output pins 8 and 11 remain open. The final
DTACK_n timeout mask has its own FAST package,
U_OR_DTACK (SN74F32N), described in the
SN74F32N gate map below.
SN74F21N Acknowledgement-Tree Gate Map
On each SN74F21N, gate 1 uses input pins 1, 2, 4, and 5
with output pin 6; gate 2 uses input pins 9, 10, 12, and 13 with
output pin 8. Pin 3 and pin 11 are not connected internally. Pin 7 is
ground and pin 14 is +5 V. The pin-by-pin signal assignment is in the
acknowledgement-tree connections table above. Unused inputs shown as
logic one connect to +5 V.
SN74F32N Gate Map
U_OR_DTACK uses gate 1 only: input pins 1 and 2 carry
DTACK_RAW_n and TIMEOUT_ACTIVE, and output
pin 3 is DTACK_n to the processor /DTACK
pin. Gates 2 through 4 are unused; their input pins 4, 5, 9, 10, 12,
and 13 connect to ground and their output pins 6, 8, and 11 remain
open. Pin 7 is ground and pin 14 is +5 V.
SN74HCT04N Gate Map
Inverter allocation
| Gate |
Input pin |
Output pin |
Output signal |
| 1 |
1 |
2 |
A16_n |
| 2 |
3 |
4 |
READ_n |
| 3 |
5 |
6 |
ALIAS_ACTIVE |
| 4 |
9 |
8 |
TIMEOUT_BERR_n |
| 5 |
11 |
10 |
DEBUG_CLK |
| 6 |
13 |
12 |
Unused; input GND, output open |
Gate 5 input pin 11 connects to DEBUG_WRITE_n. Gate 6 is
unused: tie pin 13 to ground and leave pin 12 open. The DRAM page owns
both divider-reset functions because normal refresh starts only after
initialization. Pin 7 is ground and pin 14 is +5 V.
SN74HCT574N Debug Register
Debug-register pin groups
| Pins |
Connection |
| 1 |
/OE to ground |
| 2 through 9 |
D0..D7 to CPU D0..D7 |
| 10 |
Ground |
| 11 |
CLK to DEBUG_CLK |
| 12 through 19 |
Q7..Q0 to the hexadecimal display decoder |
| 20 |
+5 V |
Power and Sockets
Every logic IC is socketed. Each package has a 100 nF ceramic
capacitor and a 1 uF capacitor in parallel between its supply pins,
placed beside the socket. Every unused logic input is tied to ground
or +5 V as listed above; unused outputs remain open.
24. Decoder Timing Verification
This section records the maximum propagation delay through the current
address-decoder design. It covers the shared glue logic. Each device
page adds its target access time, wait-state generation, and local
/DTACK timing.
Conditions and Method
The motherboard uses a nominal +5 V supply. The SN74HCT calculations
use the TI switching limits at VCC = 4.5 V,
CL = 50 pF, and TA = -40 C to +85 C. The 4.5
V limits are the conservative datasheet values for the permitted
SN74HCT supply range. The SN74F21N and
SN74F32N in the acknowledgement path are FAST-family TTL
parts; their delays below are the commercial SN74F21 (SDFS006A) and SN74F32 (SDFS044B)
MIN-to-MAX-column maxima at CL = 50 pF,
RL = 500 ohm, and VCC = 4.5 V to 5.5 V. That
column is characterized only over TA = 0 C to +70 C: the
N-package SN74F parts do not carry the
-40 C to +85 C rating used for the SN74HCT glue; see the
FAST-family temperature note in section 25. Each complete-path total
is the sum of the applicable maximum delays; it does not include trace
delay, output loading above 50 pF, or input skew.
Datasheet timing values used in the decoder calculations
| Device |
Input path |
Symbol |
Maximum |
Datasheet source |
| SN74HCT138 |
A, B, or C to any
Y
|
tpd |
45 ns |
SN74HCT138, section 5.5 |
| SN74HCT138 |
Any enable to any Y |
tpd |
42 ns |
SN74HCT138, section 5.5 |
| SN74HCT32 |
A or B to Y |
tpd |
30 ns |
SN74HCT32, section 5.5 |
| SN74HCT08 |
A or B to Y |
tpd |
30 ns |
SN74HCT08, section 4.5 |
| SN74HCT04 |
A to Y |
tpd |
25 ns |
SN74HCT04, section 5.5 |
| SN74HCT244 |
A to Y |
tpd |
42 ns |
SN74HCT244, section 5.5 |
| SN74F21 |
Any input to Y, low-to-high |
tPLH |
5.3 ns |
SN74F21, SDFS006A,
switching characteristics, SN74F21 MAX
|
| SN74F21 |
Any input to Y, high-to-low |
tPHL |
5.5 ns |
SN74F21, SDFS006A,
switching characteristics, SN74F21 MAX
|
| SN74F32 |
Any input to Y, low-to-high |
tPLH |
6.6 ns |
SN74F32, SDFS044B,
switching characteristics, SN74F32 MAX
|
| SN74F32 |
Any input to Y, high-to-low |
tPHL |
6.3 ns |
SN74F32, SDFS044B,
switching characteristics, SN74F32 MAX
|
| CD74HCT4040 |
CP to Q1 |
tpd |
50 ns |
CD74HCT4040, section 5.6 |
| CD74HCT4040 |
Qn to Qn+1 |
tpd |
19 ns |
CD74HCT4040, section 5.6 |
| SN74HCT574 |
Data setup / hold at rising CLK |
tsu / th |
25 ns / 5 ns |
SN74HCT574, section 4.5 |
| AT28C256-15PU |
Address or /CE to valid data |
tACC / tCE |
150 ns |
AT28C256, section 6.2 |
The SN74HCT tables specify tpd, defined by the
measurement diagram as the greater of tPLH and
tPHL. Therefore one maximum value safely covers assertion
and release for each HCT stage. The SN74F21 and
SN74F32 rows list tPLH and
tPHL separately; the acknowledgement-release (negation)
path is a rising edge at every node, so it uses the
tPLH figures, and the assertion path uses
tPHL.
Single-Stage Delays
Maximum delay of each decoder stage
| Path |
Device or logic |
Timing path |
Symbol |
Maximum |
Status |
A23..A21 -> REGIONx_n |
U_PRIMARY, SN74HCT138N |
Select to output |
tpd |
45 ns |
Verified |
AS_n -> NORMAL_CYCLE_n |
SN74HCT32 OR gate |
Input to output |
tpd |
30 ns |
Verified |
FC2..FC0 -> CPU_SPACE |
Two cascaded SN74HCT08N gates |
Input through two AND stages |
2 x tpd |
60 ns |
Verified; longest path is from FC2 or
FC1
|
CPU_SPACE -> NORMAL_CYCLE_n |
SN74HCT32 OR gate |
Input to output |
tpd |
30 ns |
Verified |
NORMAL_CYCLE_n -> NORMAL_*_n |
SN74HCT244 buffer |
Input to output |
tpd |
42 ns |
Verified |
REGION1_n -> RAM1_REQ_n |
SN74HCT32 OR gate |
Input to output |
tpd |
30 ns |
Verified |
REGION4_n -> VGA_MEM_n |
SN74HCT32 OR gate |
Input to output |
tpd |
30 ns |
Verified |
REGION7_n -> TOP_IO_n |
SN74HCT32 OR gate |
Input to output |
tpd |
30 ns |
Verified |
A19..A17 -> IOx_n |
U_IO_LOW or U_IO_HIGH, SN74HCT138N
|
Select to output |
tpd |
45 ns |
Verified |
TOP_IO_n -> IOx_n |
U_IO_LOW or U_IO_HIGH, SN74HCT138N
|
Enable to output |
tpd |
42 ns |
Verified |
A3..A1 -> SYSREGx_n |
U_SYSREG, SN74HCT138N |
Select to output |
tpd |
45 ns |
Verified |
IO4_n -> SYSREGx_n |
U_SYSREG, SN74HCT138N |
Enable to output |
tpd |
42 ns |
Verified |
SYSREG0_n -> OVERLAY_WRITE_n |
SN74HCT32 OR gate |
Input to output |
tpd |
30 ns |
Verified |
SYSREG1_n -> DEBUG_WRITE_n |
SN74HCT32 OR gate |
Input to output |
tpd |
30 ns |
Verified |
DEBUG_WRITE_n -> DEBUG_CLK |
SN74HCT04 inverter |
Input to output |
tpd |
25 ns |
Verified |
A20..A18 -> LOW128_n |
U_LOW128, SN74HCT138N |
Select to output |
tpd |
45 ns |
Verified |
REGION0_n or A17 -> LOW128_n |
U_LOW128, SN74HCT138N |
Enable to output |
tpd |
42 ns |
Verified |
LOW128_n -> ROM_ALIAS_ADDR_n |
SN74HCT32 OR gate |
Input to output |
tpd |
30 ns |
Verified |
ROM_ALIAS_ADDR_n -> ROM_ALIAS_n |
SN74HCT32 OR gate |
Input to output |
tpd |
30 ns |
Verified |
IO15_n or
ROM_ALIAS_n -> ROM_CYCLE_n
|
SN74HCT08 AND gate |
Input to output |
tpd |
30 ns |
Verified |
ROM_ALIAS_ADDR_n -> ALIAS_ACTIVE |
SN74HCT04 inverter |
Input to output |
tpd |
25 ns |
Verified |
ALIAS_ACTIVE -> RAM0_REQ_n |
SN74HCT32 OR gate |
Input to output |
tpd |
30 ns |
Verified |
ROM_CYCLE_n -> ROMx_xDS_n |
Two cascaded SN74HCT32 gates |
Bank select and byte-lane select |
2 x tpd |
60 ns |
Verified |
A16 -> ROM1_xDS_n |
SN74HCT04 plus two SN74HCT32 gates |
Inversion, bank select, and byte-lane select |
tpd + 2 x tpd |
85 ns |
Verified longest A16 route |
R/W -> READ_n |
SN74HCT04 inverter |
Input to output |
tpd |
25 ns |
Verified |
Any completion input to DTACK_RAW_n, release |
Two cascaded SN74F21 gates |
Rising edge through group and final AND stages |
2 x tPLH |
10.6 ns |
Verified, SN74F21 SDFS006A (tPLH 5.3 ns) |
Any completion input to DTACK_RAW_n, assertion
|
Two cascaded SN74F21 gates |
Falling edge through group and final AND stages |
2 x tPHL |
11.0 ns |
Verified, SN74F21 SDFS006A (tPHL 5.5 ns) |
DTACK_RAW_n -> DTACK_n, release |
U_OR_DTACK, SN74F32 OR gate |
Rising edge through timeout mask |
tPLH |
6.6 ns |
Verified, SN74F32 SDFS044B (tPLH 6.6 ns) |
TIMEOUT_ACTIVE -> TIMEOUT_BERR_n |
SN74HCT04 inverter |
Input to output |
tpd |
25 ns |
Verified |
TIMEOUT_BERR_n or
INT_BERR_n -> BERR_n
|
SN74HCT08 AND gate, U_AND gate 4 |
Input to output |
tpd |
30 ns |
Verified |
The full TIMEOUT_ACTIVE to BERR_n path is
now 55 ns through the inverter and the combining gate. The bus timeout
is a 51.2 microsecond event, so this added stage does not affect when
the processor sees /BERR.
The CPU_SPACE delay is 60 ns from FC2 or
FC1 because those inputs pass through both gates. The
delay from FC0 is 30 ns because it passes through only
the final gate.
Multi-Stage Decode Paths
Conservative totals for complete address-decode paths
| Complete path |
Maximum stage delays |
Total |
Status |
FC2..FC0 -> NORMAL_*_n |
60 ns + 30 ns + 42 ns |
132 ns |
Verified |
AS_n -> NORMAL_*_n |
30 ns + 42 ns |
72 ns |
Verified |
FC2..FC0 -> IOx_n |
60 ns + 30 ns + 42 ns + 30 ns + 42 ns |
204 ns |
Verified longest qualification route |
FC2..FC0 -> SYSREGx_n |
204 ns + 42 ns |
246 ns |
Verified longest qualification route |
FC2..FC0 -> DEBUG_CLK |
246 ns + 30 ns + 25 ns |
301 ns |
Verified longest qualification route |
A23..A21 -> IOx_n |
45 ns + 30 ns + 42 ns |
117 ns |
Verified |
A23..A21 -> SYSREGx_n |
45 ns + 30 ns + 42 ns + 42 ns |
159 ns |
Verified |
A23..A21 -> DEBUG_CLK |
45 ns + 30 ns + 42 ns + 42 ns + 30 ns + 25 ns |
214 ns |
Verified |
A23..A17 -> ROM_ALIAS_n |
45 ns + 42 ns + 30 ns + 30 ns |
147 ns |
Verified longest input route |
A23..A17 -> RAM0_REQ_n |
45 ns + 42 ns + 30 ns + 25 ns + 30 ns |
172 ns |
Verified longest alias-suppression route |
A23..A17 -> ROM_CYCLE_n |
45 ns + 42 ns + 30 ns + 30 ns + 30 ns |
177 ns |
Verified longest alias route |
A23..A17 -> ROMx_xDS_n |
177 ns + 30 ns + 30 ns |
237 ns |
Verified longest ROM chip-select route |
FC2..FC0 -> ROMx_xDS_n |
60 ns + 30 ns + 42 ns + 30 ns + 30 ns + 30 ns + 30 ns |
252 ns |
Verified longest ROM qualification route |
Completion input to CPU /DTACK, release |
5.3 ns + 5.3 ns + 6.6 ns |
17.2 ns |
FAST tree only; see the Acknowledgement Release Path discussion.
Verified, SN74F21 SDFS006A and SN74F32 SDFS044B
|
Completion input to CPU /DTACK, assertion |
5.5 ns + 5.5 ns + 6.3 ns |
17.3 ns |
FAST tree only; assertion may add a CPU wait state. Verified,
SN74F21 SDFS006A and SN74F32 SDFS044B
|
Clock falling edge to TIMEOUT_ACTIVE |
50 ns + (9 x 19 ns) |
221 ns |
Verified worst-case Q10 ripple delay |
Each broad address range above reports its longest input route. For
example, an A20..A18 change reaches
ROM_ALIAS_n through the 45 ns select path of
U_LOW128, while an A23..A21 change first
passes through U_PRIMARY and then uses the 42 ns enable
path of U_LOW128.
Timing Boundary
The totals above end at the motherboard request outputs or begin at a
subsystem completion input. Each subsystem document adds its local
decode, device access time, and completion generation. Every adapter
must keep its full response below the 51.1 microsecond minimum timeout
boundary.
For the acknowledgement-release direction the constraint is the
MC68EC000FN10 limit of 110 ns from AS_n or the data
strobes negating to /DTACK negating. The shared
motherboard contribution is the 17.2 ns FAST release tree (SN74F21
+ SN74F21 + SN74F32, all low-to-high). This
is logic delay only and does not on its own prove the CPU-pin timing:
each subsystem adds its own local release-qualification logic ahead of
its completion output, and PCB trace, connector, and receiver loading
delay must be added. Those are resolved on the subsystem pages and in
the final board timing review.
Measure each complete release path on the assembled board at the CPU
pin. The pass limit is 110 ns from AS_n or both data
strobes negating to DTACK_n high. The DRAM path has 28.5
ns of verified logic delay and an 81.5 ns allowance for receiver,
interconnect, and loading; see
DRAM release timing.
The firmware chip select takes at most 237 ns from the address path or
252 ns from the function-code qualification path. The AT28C256 then
needs as much as 150 ns to produce valid data. The firmware interface
therefore supplies the required wait states instead of acknowledging
the cycle directly from ROM_CYCLE_n.
These calculations use the SN74HCT -40 C to +85 C values
and a 50 pF test load, except the SN74F21 and
SN74F32 release-tree stages, which use the
0 C to +70 C SN74F N-package limits (see the FAST-family
temperature note in section 25). Section 25 also defines how socket,
trace, and receiver capacitance are checked when each subsystem
schematic is completed.
25. Electrical Compatibility and Fanout
This section verifies logic levels and static-current fanout within
the address-decode network. It does not include memory, peripheral,
expansion, connector, or PCB trace loading.
Verification Rules
HIGH noise margin = VOH(min) - VIH(min)
LOW noise margin = VIL(max) - VOL(max)
A connection is statically compatible when both margins are zero or
greater. Fanout is checked by comparing the sum of receiver input
currents with the output current at which the driver guarantees its
stated VOH or VOL.
Datasheet Limits
Worst-case electrical values used in this section
| Device |
Parameter |
Guaranteed value |
Condition |
Source |
| MC68EC000 |
VOH(min) |
VCC - 0.75 V, or 4.00 V at minimum VCC
|
IOH = -400 uA; VCC = 5 V +/-5% |
MC68000UM, section 10.13 |
| MC68EC000 address and function-code outputs |
VOL(max) |
0.50 V |
IOL = 3.2 mA |
MC68000UM, section 10.13 |
| MC68EC000 bus-control outputs |
VOL(max) |
0.50 V |
IOL = 5.3 mA for AS_n,
R/W, UDS_n, and LDS_n
|
MC68000UM, section 10.13 |
| SN74HCT input |
VIH(min) / VIL(max) |
2.00 V / 0.80 V |
VCC = 4.5 V to 5.5 V |
TI recommended operating conditions |
| SN74HCT output |
VOH(min) / VOL(max) |
3.84 V / 0.33 V |
VCC = 4.5 V; IOH = -4 mA;
IOL = 4 mA
|
TI electrical characteristics |
| SN74HCT input |
II(max) |
+/-1 uA |
VI = VCC or 0 V; VCC = 5.5 V |
TI electrical characteristics |
| SN74HCT input |
Ci(max) |
10 pF |
VCC = 4.5 V to 5.5 V |
TI electrical characteristics |
MC68EC000 input (/DTACK group) |
VIH(min) / VIL(max) |
2.00 V / 0.80 V |
VCC = 5 V +/-5% |
MC68000UM, section 10.13 |
MC68EC000 input (/DTACK group) |
Iin(max) / Cin(max) |
+/-2.5 uA / 20 pF |
/DTACK is in the listed leakage group;
Vin = 0 V, 1 MHz for Cin
|
MC68000UM, section 10.13 |
| SN74F input (F10, F21, F32) |
VIH(min) / VIL(max) |
2.00 V / 0.80 V |
VCC = 4.5 V to 5.5 V |
SN74F21 SDFS006A,
SN74F32 SDFS044B,
SN74F10 SDFS039A (identical
recommended operating conditions)
|
| SN74F output (F10, F21, F32) |
VOH(min) / VOL(max) |
2.50 V / 0.50 V |
VCC = 4.5 V; IOH = -1 mA;
IOL = 20 mA (VOH = 2.7 V at
VCC = 4.75 V)
|
SN74F electrical characteristics (identical across the three)
|
| SN74F input (F10, F21, F32) |
IIH(max) / IIL(max) |
20 uA / -0.6 mA |
VCC = 5.5 V; VI = 2.7 V /
VI = 0.5 V; II = 0.1 mA at
VI = 7 V
|
SN74F electrical characteristics (identical across the three)
|
| SN74F output drive (F10, F21, F32) |
IOH / IOL at rated VOH /
VOL
|
1 mA source / 20 mA sink |
From recommended operating conditions |
SN74F recommended operating conditions |
| MC68EC000 output |
CL(max) |
130 pF |
All outputs used here |
MC68000UM, section 10.13 |
| SN74HCT output timing |
Published switching test load |
50 pF |
Includes probe and fixture capacitance |
TI switching characteristics |
| SN74F output timing (F10, F21, F32) |
Published switching test load |
50 pF, RL = 500 ohm |
Includes probe and fixture capacitance |
SN74F switching characteristics |
The HCT values above are common to the project datasheets for the
SN74HCT04, SN74HCT08, SN74HCT32, and SN74HCT138 at the stated test
conditions. The SN74F input and output values are common to the
SN74F10,
SN74F21, and
SN74F32 data sheets; the
N-package parts state no input capacitance and are characterized only
over TA = 0 C to +70 C.
CPU-to-HCT Compatibility
MC68EC000 output to SN74HCT input noise margins
| Driver |
Receiver |
VOH(min) |
VIH(min) |
High margin |
VOL(max) |
VIL(max) |
Low margin |
Status |
| MC68EC000 address, function-code, or bus-control output |
SN74HCT input |
4.00 V |
2.00 V |
2.00 V |
0.50 V |
0.80 V |
0.30 V |
Compatible |
The high-level calculation uses the minimum CPU supply of 4.75 V:
4.75 V - 0.75 V = 4.00 V. The low-level voltage is the
same for the CPU output groups used by the decoder, although their
guaranteed sink currents differ.
HCT-to-HCT Compatibility
SN74HCT output to SN74HCT input noise margins
| Driver |
Receiver |
VOH(min) |
VIH(min) |
High margin |
VOL(max) |
VIL(max) |
Low margin |
Status |
| SN74HCT output |
SN74HCT input |
3.84 V |
2.00 V |
1.84 V |
0.33 V |
0.80 V |
0.47 V |
Compatible |
FAST-Family Compatibility
The acknowledgement AND tree (U_DTACK_A,
U_DTACK_B, SN74F21N) and the timeout OR mask
(U_OR_DTACK, SN74F32N) are FAST TTL. The
DRAM completion driver U_DRAM_DTACK_GATE
(SN74F10N, documented on the
DRAM page) shares the same DC limits. The
voltage checks below use the rated-current worst-case values from the
Datasheet Limits table.
FAST acknowledgement-path noise margins
| Driver |
Receiver |
VOH(min) |
VIH(min) |
High margin |
VOL(max) |
VIL(max) |
Low margin |
Status |
SN74F output (DRAM_DTACK_n,
DTACK_GROUPx_n, DTACK_RAW_n)
|
SN74F input (F21 or F32) |
2.50 V |
2.00 V |
0.50 V |
0.50 V |
0.80 V |
0.30 V |
Compatible |
SN74F output (DTACK_n, U_OR_DTACK)
|
MC68EC000 /DTACK input |
2.50 V |
2.00 V |
0.50 V |
0.50 V |
0.80 V |
0.30 V |
Compatible |
MC68EC000 bus-control output (AS_n,
UDS_n, LDS_n)
|
SN74F input (F10 completion gate) |
4.00 V |
2.00 V |
2.00 V |
0.50 V |
0.80 V |
0.30 V |
Compatible |
SN74HCT output (TIMEOUT_ACTIVE, CD74HCT4040 Q10)
|
SN74F input (U_OR_DTACK) |
3.84 V |
2.00 V |
1.84 V |
0.33 V |
0.80 V |
0.47 V |
Compatible |
The high margin uses the 2.50 V FAST VOH(min) at
VCC = 4.5 V; at a nominal 5 V rail the guaranteed
VOH is 2.7 V or higher, so 0.50 V is a floor. Every FAST
driver in the path also meets the CPU's VIL(max) with
0.30 V of low-side margin, the same figure the CPU-to-HCT check
carries.
FAST acknowledgement-path static-current fanout
| Signal |
Driver |
FAST loads |
Load current (LOW / HIGH) |
Driver guaranteed drive |
Status |
DRAM_DTACK_n and each other subsystem completion
signal
|
Subsystem completion driver |
1 (one U_DTACK_A / U_DTACK_B input)
|
0.6 mA / 20 uA |
SN74F10N for DRAM: 20 mA sink, 1 mA source. Other
subsystems verify their own driver on their page.
|
Pass for the FAST-driven completion inputs |
DTACK_GROUP0_n..DTACK_GROUP2_n |
U_DTACK_A / U_DTACK_B, SN74F21N |
1 (one U_DTACK_B gate-2 input) |
0.6 mA / 20 uA |
20 mA sink; 1 mA source |
Pass; ratio 33 sink, 50 source |
DTACK_RAW_n |
U_DTACK_B gate 2, SN74F21N |
1 (one U_OR_DTACK input) |
0.6 mA / 20 uA |
20 mA sink; 1 mA source |
Pass |
TIMEOUT_ACTIVE |
CD74HCT4040 Q10 |
1 FAST (U_OR_DTACK) plus 1 HCT
(U_INVERT)
|
0.6 mA + 1 uA / 20 uA + 1 uA |
HCT 4 mA sink / 4 mA source; the 0.6 mA FAST IIL is
well inside it
|
Pass; HCT VOL stays below the 0.8 V FAST limit
|
DTACK_n |
U_OR_DTACK, SN74F32N |
MC68EC000 /DTACK (2.5 uA leakage) |
2.5 uA / 2.5 uA |
20 mA sink; 1 mA source |
Pass with large margin |
The binding FAST current is the 0.6 mA LOW input current
(IIL) that each SN74F input can pull from its driver. No
net in the acknowledgement tree presents more than one FAST load to an
SN74F21 or SN74F32 output, and each of those outputs sinks 20 mA, so
the sink ratio never falls below about 33. AS_n,
UDS_n, and LDS_n gain FAST loads at
U_DRAM_DTACK_GATE; that budget is on the
DRAM page because those strobes are decoded
there.
FAST-Family Temperature Range
The N-package SN74F10, SN74F21, and
SN74F32 are characterized only over
TA = 0 C to +70 C. This is the motherboard's specified
operating range because the design requires plastic through-hole FAST
parts. The HCT devices have wider published ranges, but that does not
widen the assembled motherboard rating.
Static-Current Fanout
Each HCT input contributes at most 1 uA of leakage magnitude. The
current checks below cover the documented decode-network loads only.
Each named stage is one of the package assignments above.
Static-current fanout within the address-decode network
| Signal |
Driver |
HCT loads |
Maximum load current |
Guaranteed driver current |
Status |
A23, A22, or A21 |
MC68EC000 |
3 |
3 uA |
400 uA source; 3.2 mA sink |
Pass |
A20, A19, A18, or
A17
|
MC68EC000 |
5 |
5 uA |
400 uA source; 3.2 mA sink |
Pass |
FC2, FC1, or FC0 |
MC68EC000 |
1 |
1 uA |
400 uA source; 3.2 mA sink |
Pass for the normal decode network |
AS_n |
MC68EC000 |
3 |
3 uA |
400 uA source; 5.3 mA sink |
Pass |
UDS_n |
MC68EC000 |
4 |
4 uA |
400 uA source; 5.3 mA sink |
Pass within the ROM decoder |
LDS_n |
MC68EC000 |
6 |
6 uA |
400 uA source; 5.3 mA sink |
Pass within the shared decoder |
R/W |
MC68EC000 |
10 |
10 uA |
400 uA source; 5.3 mA sink |
Pass with six expansion-interface inputs |
CPU_SPACE_STAGE1 |
SN74HCT08N |
1 |
1 uA |
4 mA source or sink |
Pass |
CPU_SPACE |
SN74HCT08N |
2 |
2 uA |
4 mA source or sink |
Pass; one load is the interrupt acknowledge qualifier |
REGION0_n |
U_PRIMARY, SN74HCT138N |
2 |
2 uA |
4 mA source or sink |
Pass |
NORMAL_CYCLE_n |
U_OR1, SN74HCT32N |
3 |
3 uA |
4 mA source or sink |
Pass |
NORMAL_MEM_n or NORMAL_EXP_n |
U_NORMAL_BUF, SN74HCT244N |
4 |
4 uA |
6 mA source or sink |
Pass |
NORMAL_MISC_n |
U_NORMAL_BUF, SN74HCT244N |
2 |
2 uA |
6 mA source or sink |
Pass |
TOP_IO_n |
U_OR1, SN74HCT32N |
2 |
2 uA |
4 mA source or sink |
Pass |
ROM_ALIAS_ADDR_n |
U_OR2, SN74HCT32N |
2 |
2 uA |
4 mA source or sink |
Pass |
ROM_CYCLE_n |
U_AND, SN74HCT08N |
2 |
2 uA |
4 mA source or sink |
Pass |
The smallest calculated CPU source-current ratio is on
R/W: 400 uA / 10 uA, or 40. The smallest HCT
current ratio is on a four-load normal-cycle copy:
6000 uA / 4 uA, or 1500. Static-current fanout is
therefore not the limiting factor for the defined network.
Capacitive Loading
Receiver capacitance before PCB trace and probe loading
| Signal group |
HCT inputs |
Maximum receiver capacitance |
Comparison value |
Status |
A23..A21 |
3 per signal |
30 pF per signal |
MC68EC000 CL(max) = 130 pF |
Pass within documented network |
FC2..FC0 |
1 per signal |
10 pF per signal |
MC68EC000 CL(max) = 130 pF |
Pass within documented network |
A20..A17 |
5 per signal |
50 pF per signal |
MC68EC000 CL(max) = 130 pF |
Pass within documented network |
AS_n, UDS_n, or LDS_n
|
3 to 6 per signal |
30 pF to 60 pF per signal |
MC68EC000 CL(max) = 130 pF |
Pass within the shared decoder |
R/W |
10 |
100 pF |
MC68EC000 CL(max) = 130 pF |
30 pF remains for PCB loading |
CPU_SPACE_STAGE1 |
1 |
10 pF |
HCT timing characterized at 50 pF |
40 pF remains for traces and probing |
CPU_SPACE |
2 |
20 pF |
HCT timing characterized at 50 pF |
30 pF remains for traces and probing; second load is the
interrupt acknowledge qualifier
|
REGION0_n, TOP_IO_n, or
ROM_ALIAS_ADDR_n
|
2 |
20 pF |
HCT timing characterized at 50 pF |
30 pF remains for traces and probing |
NORMAL_CYCLE_n |
3 |
30 pF |
HCT timing characterized at 50 pF |
20 pF remains for socket, trace, and probe loading |
NORMAL_MEM_n or NORMAL_EXP_n |
4 |
40 pF |
HCT timing characterized at 50 pF |
10 pF remains for socket, trace, and probe loading |
NORMAL_MISC_n |
2 |
20 pF |
HCT timing characterized at 50 pF |
30 pF remains for socket, trace, and probe loading |
ROM_CYCLE_n |
2 |
20 pF |
HCT timing characterized at 50 pF |
30 pF remains for socket, trace, and probe loading |
The capacitance totals use the 10 pF maximum for each HCT input. They
exclude package sockets, traces, vias, connectors, and measurement
probes. The four-load normal-cycle copies have the least remaining
margin. Keep each completed HCT net at or below 50 pF, or add another
HCT buffer and recalculate its timing.
Each of A16..A1 also gains two HCT244 inputs from the
expansion interface, for at most 20 pF added receiver capacitance and
2 uA added leakage per line. Add these to the line's device-specific
consumers when checking the complete motherboard.
The SN74F10, SN74F21, and
SN74F32 data sheets state no input capacitance. The FAST
acknowledgement nets each carry one FAST load and a short motherboard
trace, so they stay well inside the 50 pF, 500 ohm switching-test
load; the exact receiver plus trace figure is confirmed in the final
board load audit alongside the HCT nets.
Subsystem Integration Rules
Loading rules for the remaining subsystem schematics
| Item |
Rule |
Where it is checked |
| CPU outputs |
Keep total direct loading at or below 100 pF. This leaves 30 pF
below the processor's 130 pF limit for board and measurement
loading.
|
Each device page and the final motherboard load audit. |
| HCT outputs |
Keep total loading at or below the 50 pF timing condition. Add
an HCT buffer if a net exceeds it.
|
The page that owns the driven receivers. |
| Socket and layout loading |
Count socket, trace, via, connector, and probe capacitance in
addition to receiver inputs.
|
PCB review after placement and routing. |
FAST parts in the acknowledgement path (SN74F21N,
SN74F32N, SN74F10N)
|
Keep each FAST-driven net at or below the 50 pF, 500 ohm
switching-test load, and at most one FAST load per SN74F21 or
SN74F32 output as wired. Voltage and static-current margins are
checked in FAST-Family Compatibility above. Operating
temperature is limited to 0 C to +70 C for the
N-package parts (FAST-Family Temperature Range).
|
FAST-family compatibility above; the DRAM page for the strobe
loading added at U_DRAM_DTACK_GATE.
|
| Expansion slots |
Each connector has its own HCT244 address/control banks and
HCT245 data path. The motherboard supports two front slots.
|
expansion.html |
26. Internal Signal Reference
This reference lists named signals generated or consumed by the
motherboard bus-and-decode logic. Names ending in _n are
active low. Other names are active high unless their description says
otherwise.
CPU pins such as A23..A0, FC2..FC0,
AS_n, and R/W are external inputs to this
logic and are not listed as internal signals. Package pin names such
as /Y0 are not separate reference entries. The package
names match the assignments in this document.
Cycle and Address Decode
Cycle qualification and address-decode signals
| Signal |
Meaning |
Active level |
Generated by |
Used by |
CPU_SPACE_STAGE1 |
Intermediate function-code decode. |
High |
FC2 AND FC1 in U_AND gate 1 |
U_AND gate 2 |
CPU_SPACE |
The function codes select CPU space. |
High |
CPU_SPACE_STAGE1 AND FC0 in U_AND gate
2
|
Normal-cycle qualification |
NORMAL_CYCLE_n |
An ordinary memory or I/O bus cycle is active. |
Low |
AS_n OR CPU_SPACE |
U_NORMAL_BUF |
NORMAL_MEM_n |
Buffered normal-cycle qualifier for on-board memory decode.
|
Low |
U_NORMAL_BUF |
RAM requests, CL-GD5428 host memory, and top I/O |
NORMAL_EXP_n |
Buffered normal-cycle qualifier for expansion memory. |
Low |
U_NORMAL_BUF |
Four expansion-memory request gates |
NORMAL_MISC_n |
Buffered normal-cycle qualifier for ROM alias and timeout.
|
Low |
U_NORMAL_BUF |
ROM-alias qualifier and timeout reset |
REGION0_n |
Raw decode for $000000-$1FFFFF. |
Low |
U_PRIMARY /Y0 |
RAM0 base request and low-128-KiB decoder |
REGION1_n |
Raw decode for $200000-$3FFFFF. |
Low |
U_PRIMARY /Y1 |
RAM1 request |
REGION2_n |
Raw decode for $400000-$5FFFFF. |
Low |
U_PRIMARY /Y2 |
Expansion interface |
REGION3_n |
Raw decode for $600000-$7FFFFF. |
Low |
U_PRIMARY /Y3 |
Expansion interface |
REGION4_n |
Raw decode for $800000-$9FFFFF. |
Low |
U_PRIMARY /Y4 |
CL-GD5428 VGA host-memory request |
REGION5_n |
Raw decode for $A00000-$BFFFFF. |
Low |
U_PRIMARY /Y5 |
Reserved-region qualifier only |
REGION6_n |
Raw decode for $C00000-$DFFFFF. |
Low |
U_PRIMARY /Y6 |
Reserved-region qualifier only |
REGION7_n |
Raw decode for $E00000-$FFFFFF. |
Low |
U_PRIMARY /Y7 |
Top-I/O qualification |
RAM1_REQ_n |
Qualified request for DRAM bank 1. |
Low |
REGION1_n OR NORMAL_MEM_n |
DRAM controller |
VGA_MEM_n |
Qualified request for the CL-GD5428 VGA host-memory aperture.
|
Low |
REGION4_n OR NORMAL_MEM_n |
CL-GD5428 host interface |
TOP_IO_n |
Qualified cycle in $E00000-$FFFFFF. |
Low |
REGION7_n OR NORMAL_MEM_n |
U_IO_LOW and U_IO_HIGH |
EXP_MEM2_n, EXP_MEM3_n |
Qualified selects for the two fitted expansion slots. |
Low |
Corresponding REGIONx_n OR NORMAL_EXP_n |
Front expansion slots 1 and 2 |
EXP_MEM5_n, EXP_MEM6_n |
Qualified reserved-region selects with no connector route.
|
Low |
Corresponding REGIONx_n OR NORMAL_EXP_n |
No consumer in revision 1.0 |
IO0_n..IO7_n |
Eight qualified 128 KiB slot selects in
$E00000-$EFFFFF.
|
Low |
U_IO_LOW /Y0../Y7 |
MFP, floppy, OPL3, CL-GD5428 VGA I/O, system registers, MIDI,
and two front expansion slots
|
IO8_n..IO15_n |
Eight qualified 128 KiB slot selects in
$F00000-$FFFFFF.
|
Low |
U_IO_HIGH /Y0../Y7 |
RTC, six reserved slots, and permanent firmware ROM |
SYSREG0_n..SYSREG7_n |
Lower-byte selects for the eight motherboard system registers.
|
Low |
U_SYSREG /Y0../Y7 |
Overlay and debug registers; SYSREG2_n..SYSREG7_n
are reserved
|
Overlay, ROM, and DRAM Control
Internal write, overlay, ROM, and DRAM request signals
| Signal |
Meaning |
Active level |
Generated by |
Used by |
OVERLAY_WRITE_n |
A write to SYSREG0 / SYSCTRL is active. |
Low |
SYSREG0_n OR R/W |
U_OVERLAY 1/CLR |
DEBUG_WRITE_n |
A write to SYSREG1 / DEBUG is active. |
Low |
SYSREG1_n OR R/W |
DEBUG_CLK inverter |
DEBUG_CLK |
Positive-edge clock for the debug-byte register. |
Rising edge |
NOT DEBUG_WRITE_n in U_INVERT gate 5
|
U_DEBUG CLK |
OVERLAY_EN |
Stored boot-overlay state; high means enabled. |
High |
U_OVERLAY Q |
Overlay state logic |
OVERLAY_n |
Active-low complement of OVERLAY_EN. |
Low |
U_OVERLAY /Q |
ROM alias address logic |
LOW128_n |
Raw decode for $000000-$01FFFF. |
Low |
U_LOW128 /Y0 |
ROM alias address logic |
ROM_ALIAS_ADDR_n |
The address is in the low 128 KiB while the overlay is enabled.
|
Low |
LOW128_n OR OVERLAY_n |
ROM alias qualification and RAM0 suppression |
ROM_ALIAS_n |
A normal bus cycle is accessing the low firmware alias. |
Low |
ROM_ALIAS_ADDR_n OR NORMAL_MISC_n |
Firmware ROM cycle selection |
ROM_CYCLE_n |
Either firmware mapping owns the current bus cycle. |
Low |
IO15_n AND ROM_ALIAS_n |
Firmware EEPROM interface |
A16_n |
Inverted ROM half-select address bit. |
Low when A16 is high |
U_INVERT gate 1 |
ROM_BANK1_n generation |
READ_n |
Active-low firmware output-enable signal. |
Low |
NOT R/W in U_INVERT gate 2 |
All four EEPROM /OE pins |
ROM_BANK0_n, ROM_BANK1_n |
Qualified selects for the lower and upper 64 KiB ROM halves.
|
Low |
ROM_CYCLE_n combined with A16 or
A16_n
|
ROM byte-lane select gates |
ROM0_UDS_n, ROM0_LDS_n,
ROM1_UDS_n, ROM1_LDS_n
|
Chip enables for the four AT28C256-15PU devices. |
Low |
Selected ROM half combined with UDS_n or
LDS_n
|
EEPROM /CE pins |
ALIAS_ACTIVE |
Active-high form of the unqualified ROM alias address condition.
|
High |
NOT ROM_ALIAS_ADDR_n |
RAM0 suppression |
RAM0_BASE_n |
Qualified REGION0 request before overlay suppression. |
Low |
REGION0_n OR NORMAL_MEM_n |
Final RAM0 request logic |
RAM0_REQ_n |
Qualified DRAM bank 0 request after overlay suppression. |
Low |
RAM0_BASE_n OR ALIAS_ACTIVE |
DRAM controller |
Bus Completion and Error Signals
Subsystem completion names describe logical active-low responses. They
are not necessarily pins on the named peripheral.
Internal bus-completion and error signals
| Signal |
Meaning |
Active level |
Generated by |
Used by |
DRAM_DTACK_n |
A DRAM transaction completed. |
Low |
DRAM controller |
DTACK_n combination logic |
ROM_DTACK_n |
A firmware ROM transaction completed. |
Low |
Firmware ROM interface |
DTACK_n combination logic |
SYSREG_ACK_STAGE_n |
A lower-byte access to the system-register slot is active.
|
Low |
IO4_n OR LDS_n in U_OR6 |
SYSREG_DTACK_n generation |
SYSREG_DTACK_n |
A system-register transaction completed. |
Low |
SYSREG_ACK_STAGE_n OR R/W in U_OR6
|
DTACK_n combination logic |
MFP_DTACK_n |
An MFP register or vectored acknowledge transaction completed.
|
Low |
MFP interface |
DTACK_n combination logic |
FDC_DTACK_n |
A floppy-controller transaction completed. |
Low |
Floppy interface |
DTACK_n combination logic |
OPL3_DTACK_n |
An OPL3 transaction completed. |
Low |
OPL3 interface |
DTACK_n combination logic |
VGA_DTACK_n |
A CL-GD5428 VGA memory or I/O transaction completed. |
Low |
CL-GD5428 host interface |
DTACK_n combination logic |
MIDI_DTACK_n |
The MC6850 enable cycle completed and read data, when present,
is held for the processor.
|
Low |
MC6850 bus adapter |
DTACK_n combination logic |
RTC_DTACK_n |
An RTC transaction completed. |
Low |
RTC interface |
DTACK_n combination logic |
EXP_DTACK_n |
An expansion transaction completed. |
Low |
Expansion interface |
DTACK_n combination logic |
DTACK_GROUP0_n..DTACK_GROUP2_n |
Intermediate groups of active-low completion responses. |
Low |
U_DTACK_A and U_DTACK_B |
DTACK_RAW_n generation |
DTACK_RAW_n |
Combined response before the timeout mask. |
Low |
U_DTACK_B gate 2 |
Final DTACK_n gate |
DTACK_n |
Combined motherboard completion response. |
Low |
DTACK_RAW_n OR TIMEOUT_ACTIVE in
U_OR_DTACK (SN74F32N)
|
Processor /DTACK input |
TIMEOUT_ACTIVE |
The 512-edge normal-cycle timeout has expired. |
High |
U_TIMEOUT Q10 |
DTACK_n mask and bus-error inverter |
TIMEOUT_BERR_n |
An unanswered normal cycle exceeded the permitted time. |
Low |
NOT TIMEOUT_ACTIVE in U_INVERT |
U_AND gate 4 (BERR_n) |
INT_BERR_n |
Spurious or phantom interrupt-acknowledge abort; the CPU-space
backstop the bus timeout cannot provide.
|
Low |
Interrupt logic |
U_AND gate 4 (BERR_n) |
BERR_n |
Combined bus error:
TIMEOUT_BERR_n AND INT_BERR_n.
|
Low |
U_AND gate 4 |
Processor /BERR input |
27. Sources
-
Motorola,
M68000 User's Manual, sections 3.1 through 3.9 (bus signals and function codes), 5.1.4
(CPU space), 10.13 (DC characteristics and capacitance), and 10.14
(MC68EC000 10 MHz AC characteristics); and the
manual addendum.
-
Texas Instruments,
SN74HCT138, SN74HCT08, SN74HCT32, SN74HCT04, SN74HCT244, SN74HCT74, and
SN74HCT574. Decoder, glue, overlay, buffer, and debug-register limits.
-
Texas Instruments,
SN74F21
(SDFS006A),
SN74F32
(SDFS044B), and
SN74F10
(SDFS039A). Acknowledgement-tree and timeout-mask timing and DC
limits.
-
Texas Instruments,
CD74HCT4040. Bus-timeout counter pinout and ripple delay.
-
Microchip,
AT28C256. Firmware EEPROM access time used in the decode-path budget.
-
The project Memory Map fixes every
address range this decoder implements. The
DRAM,
Firmware ROM,
Interrupts,
Clock and Reset, and per-device
pages own the timing behind each request and completion signal.