The late 1970s and early 1980s saw the rise of both 8-bit home computers and Programmable Logic Devices (PLDs). This convergence led to interesting applications of early PLD technology in 8-bit computer design. This article explores the various subtypes of PLDs that were relevant during the 8-bit computer era, comparing their characteristics and their use in these pioneering machines.
Simple Programmable Logic Device (SPLD)
SPLDs were the first type of PLDs to be widely used and played a significant role in 8-bit computer design.
Programmable Array Logic (PAL)
Introduced by Monolithic Memories in 1978, PALs quickly found applications in 8-bit computer systems.
Key characteristics:
- Featured a programmable AND array followed by a fixed OR array
- One-time programmable (OTP) or UV-erasable versions available
- Relatively fast and suitable for simple logic functions
Applications:
- Address decoding: PALs were often used to decode memory addresses, allowing for memory bank switching, a common technique in 8-bit computers to expand beyond their native address space.
- I/O interface logic: They simplified the interface between the CPU and various peripherals.
- Example: The CPC 6128 used a PAL for part of its memory management and bank switching logic.
Generic Array Logic (GAL)
GALs, introduced in the mid-1980s, came towards the end of the 8-bit computer era but still found applications in later designs and modifications.
Key differences from PALs:
- Electrically erasable, allowing for reprogramming
- Often pin-compatible with PALs, making them popular for prototyping and upgrades
Applications:
- GALs were often used in aftermarket upgrades or modifications to existing 8-bit computer designs.
- They allowed hobbyists and small companies to create custom expansions more easily.
Programmable Logic Array (PLA)
PLAs offered more flexibility than PALs but were less common in 8-bit computer designs due to higher cost and power consumption.
Distinguishing features:
- Both AND and OR arrays were programmable
- Could implement more complex logic functions in a single device
Applications:
- While less common, PLAs were sometimes used in more complex 8-bit computer designs for tasks like instruction decoding.
- Example: The Commodore 64 used a PLA for part of its chip select and memory mapping logic, demonstrating the device's ability to handle complex logic in a single chip.
Uncommitted Logic Array (ULA)
ULAs played a crucial role in several popular 8-bit computer designs, especially in the UK.
Key characteristics:
- Pre-fabricated silicon wafers with unconnected logic gates
- Customization done by adding metal interconnects in final manufacturing stages
- Allowed for semi-custom chips at lower costs than fully custom ICs
Applications:
- The most famous example is the Ferranti ULA used in the Sinclair ZX Spectrum. This single chip handled various functions including video generation, memory management, and I/O control.
- The Acorn BBC Micro also used a custom ULA for much of its I/O handling and video timing generation.
ULAs allowed 8-bit computer manufacturers to create custom chips that integrated multiple functions, reducing chip count and overall system cost. This was crucial in producing affordable home computers.
Gate Arrays
While less common in 8-bit computers than ULAs, Gate Arrays represented a step towards higher integration and customization.
Distinguishing features:
- Pre-fabricated array of transistors or basic logic gates
- Customization done by adding metal layers to create interconnections
- Higher density and potentially better performance than ULAs
Applications:
- Gate Arrays were sometimes used in later or more advanced 8-bit computer designs like the Amstrad CPC.
- They allowed for more complex custom chips than ULAs, potentially integrating even more functions into a single device.
- Example: Some later ZX Spectrum models used Gate Arrays instead of ULAs, allowing for cost reduction and integration of additional features.
Comparison
Feature | PAL | GAL | PLA | ULA | Gate Array |
---|---|---|---|---|---|
Flexibility | Low | Low-Medium | Medium | Medium | Medium-High |
Integration Level | Low | Low | Low-Medium | High | High |
Cost in Volume | Low | Low | Medium | Medium | Medium-High |
Customization | Limited | Limited | Medium | High | High |
Reprogrammability | No (some UV-erasable) | Yes | No | No | No |
Typical Use | Glue logic, address decoding | Upgrades, modifications | Complex logic functions | Multi-function custom chip | Advanced custom logic |
Impact on 8-bit Computer Design
The evolution of PLDs had a significant impact on 8-bit computer design:
Cost Reduction: PLDs, especially ULAs, allowed manufacturers to reduce chip count and board complexity, lowering production costs.
Customization: Different PLD types enabled varying degrees of customization, allowing computer manufacturers to differentiate their products.
Rapid Development: The programmability of devices like PALs and GALs allowed for faster prototyping and iteration in computer design.
Integration: As PLDs evolved from simple PALs to more complex ULAs and Gate Arrays, they enabled greater integration of functions into single chips.
Aftermarket Modifications: Devices like GALs enabled enthusiasts to create custom modifications and upgrades for existing 8-bit computers.
Summary
The variety of PLD subtypes available during the 8-bit computer era provided designers with a range of options for implementing custom logic.
From simple PALs used for address decoding to complex ULAs that integrated multiple system functions, these devices were crucial in the evolution of 8-bit computer design. They allowed for cost-effective customization and helped drive the home computer revolution of the 1980s.
The legacy of these early PLDs can be seen in the complex programmable logic devices (CPLD), ASIC and FPGAs used in modern computing systems, which trace their lineage back to these pioneering devices of the 8-bit era.