Top-Down Digital VLSI Design: From Architectures to Gate-Level Circuits and FPGAs
Copyright
Preface
Why this book
Highlights
Notes to Instructors
Acknowledgments
Introduction to Microelectronics
Economic Impact
The Guinness Book of Records Point of View
The Marketing Point of View
The Fabrication Point of View
Full-custom ICs
Field-programmable logic
Standard parts
The Design Engineer's Point of View
Cell libraries and schematic entry
Automatic circuit synthesis
Design with virtual components
Electronic system-level ESL design automation
The Y-chart, a Map of Digital Electronic Systems
Field-Programmable Logic
General Idea
Configuration Technologies
Static Memory
Flash Memory
Antifuses
Organization of Hardware Resources
Simple Programmable Logic Devices SPLD
Complex Programmable Logic Devices CPLD
Field-Programmable Gate Arrays FPGA
Commercial Aspects
An Overview on FPL Device Families
The Price and the Benefits of Electrical Configurability
Extensions of the Basic Idea
The FPL Design Flow
Conclusions
From Algorithms to Architectures
The Goals of Architecture Design
The Antipodes
What Makes an Algorithm Suitable for a Dedicated VLSI Architecture?
Assemblies of General-Purpose and Dedicated Processing Units
Extendable Instruction set Processors
Platform ICs DSPP
Digest
There is Room for Remodeling in the Algorithmic Domain ...
Systems Engineers and VLSI Designers Must Collaborate
Relative Merits of Architectural Alternatives
Computation Cycle Versus Clock Period
Common Assumptions
Iterative Decomposition
Pipelining
Replication
Performance and cost analysis
Performance and cost analysis
Associativity Transform
Digest
Data Access Patterns
Wiring and the Costs of Going Off-Chip
Digest
Retiming
Iterative Decomposition and Time Sharing Revisited
Replication Revisited
The Feedback Bottleneck
Unfolding of First-Order Loops
Performance and cost analysis
Higher-Order Loops
Performance and cost analysis
Time-Variant Loops
Nonlinear or General Loops
Generalization to other Levels of Detail
Architecture level
Bit level
Bit-Serial Architectures
Distributed Arithmetic
Generalization to other Algebraic Structures
Finite fields
Semirings
Conclusions
The Grand Architectural Alternativesfrom an Energy Point of View
A Guide to Evaluating Architectural Alternatives
Examples with two operations
Circuit Modeling with HDLs
Motivation and Background
Why Hardware Synthesis?
Alternatives for Modeling Digital Hardware
Why Bother Learning Hardware Description Languages?
A First Look at VHDL and SystemVerilog
Circuit Hierarchy and Connectivity
How to compose a circuit from components
Interacting Concurrent Processes
How to describe a register behaviorally
How to model three-state outputs and busses
Selecting adequate data types
An Event-Driven Scheme of Execution
How to safely code sequential circuits for synthesis
How to check timing conditions
Facilities for Model Parametrization
Concepts Borrowed from Programming Languages
Circuit Hierarchy and Connectivity
How to describe combinational logic behaviorally
How to describe a register behaviorally
How to check timing conditions
Facilities for Model Parametrization
Concepts Borrowed from Programming Languages
Synthesis Overview
Finite State Machines and Sequential Subcircuits in General
Explicit versus implicit state models
How to capture a finite state machine
How to formulate timing constraints
How to partition a circuit in view of synthesis and optimization
Some circuits essentially need to be defined as gate-level netlists
How to Establish a Register Transfer Level Model Step by Step
Protected Shared Variables IEEE 1076a
Functional Verification
Goals of Design Verification
Rapid Prototyping
Hardware-Assisted Verification
A First Glimpse at VLSI Testing
Fully Automated Response Checking is a Must
Exhaustive Verification Remains an Elusive Goal
Directed Verification is Indispensable but has its Limitations
Monitoring toggle counts is of limited use
Automatic test pattern generation does not help either
Monitoring code coverage helps but does not suffice
Routine is the dark side of experience
Directed Random Verification Guards Against Human Omissions
Collecting Test Cases from Multiple Sources Helps
A Coherent Schedule for Simulation and Test
Calculating High-Level Figures of Merit
Patterning Simulation Set-Ups after the Target System
Initialization
Trimming Run Times by Skipping Redundant Simulation Sequences
Modularity and Reuse are the Keys to Testbench Design
Equivalence checking
Deductive verification or model proving
External timing requirements imposed by a model under test MUT
Precedence relations captured in a constraint graph
Solving the constraint graph
Anceau diagrams help visualize periodic events and timing
The Case for Synchronous Design
Introduction
The Grand Alternatives for Regulating State Changes
Synchronous Clocking
Asynchronous Clocking
Self-Timed Clocking
The Pros and Cons of Synchronous Clocking
Clock-as-Clock-Can is not an Option in VLSI
Fully Self-Timed Clocking is not Normally an Option Either
Hybrid Approaches to System Clocking
First Guiding Principle: Dissociate Signal Classes!
Synchronous Design Rules at a More Detailed Level
Unclocked bistables prohibited
Zero-latency loops prohibited
Monoflops, one-shots, edge detectors and clock chopping prohibited
Clock and reset signals to be distributed by fanout trees
Beware of unsafe clock gates
Bistables with both asynchronous reset and preset inputs prohibited
Signal Class
Three-State Capability
Present State vs. Next State
Signal Naming Convention Syntax
A Note on the Portability of Names Across EDA Platforms
Clocking of Synchronous Circuits
What is the Difficulty With Clock Distribution?
Timing Quantities Related to Clock Distribution
Basics
Single-Edge-Triggered One-Phase Clocking
Hardware resources and operation principle
Detailed analysis
Implications
Symmetric Level-Sensitive Two-Phase Clocking
Hardware resources and operation principle
Unsymmetric Level-Sensitive Two-Phase Clocking
Hardware resources and operation principle
Detailed analysis
Implications
Single-Wire Level-Sensitive Two-Phase Clocking
Hardware resources and operation principle
Implications
Detailed analysis
Clock Waveforms
Collective Clock Buffers
Hybrid Clock Distribution Networks
Friendly as Opposed to Unfriendly I/O Timing
Registered Inputs and Outputs
Adding Artificial Contamination Delay to Data Inputs
Traditional Feedback-Type Registers with Enable
A Crude and Unsafe Approach to Clock Gating
A Simple Clock Gating Scheme that May Work Under Certain Conditions
Acquisition of Asynchronous Data
Motivation
Plain Bit-Parallel Synchronization
Unit-Distance Coding
Suppression of Jumbled Data Patterns
Handshaking
Partial Handshaking
No Synchronization Whatsoever
Synchronization From a Slow Clock
Metastability and How it Becomes Manifest
Plesiochronous Interfaces
Elementary Digital Electronics
Introduction
Floating Point Number Formats
Notational Conventions for Two-Valued Logic
Truth Table
The n-Cube
Karnaugh Map
Two-Level Logic
Sum-of-products
Product-of-sums
Symmetric and Monotone Functions
Threshold Functions
Complete Gate Sets
Logic Minimization
Metrics for logic complexity and implementation costs
Minimal versus unredundant expressions
Multi-level versus two-level logic
Random Logic
Programmable Logic Array PLA
Digest
Flip-Flops or Edge-Triggered Bistables
The data or D-type flip-flop
Latches or Level-Sensitive Bistables
The data or D-type latch
The SR-seesaw
The edge-triggered SR-seesaw
The Muller-C element
Glitches, a Phenomenological Perspective
Function Hazards, a Circuit-Independent Mechanism
Digest
Delay Parameters Serve for Combinational and Sequential Circuits
Timing Constraints Address Synthesis Needs
Summary
Finite State Machines
Abstract Automata
Mealy Machine
Moore Machine
Relationships Between Finite State Machine Models
Equivalence of Mealy and Moore machines in the context of hardware design
Taxonomy of Finite State Machines
Parasitic States and Symbols
Mealy-, Moore-, Medvedev-Type, and Combinational Output Bits
Through Paths and Logic Instability
Concurrency, hierarchy and modularity are key to efficiency
State reduction
State encoding
Summary
Symbols and Constants
Abbreviations
Mathematical Symbols
Physical and Material Constants
A note on carbon allotropes
Bibliography
Index
Symbols
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z