Preface |
|
vii | |
|
Review of Logic Design Fundamentals |
|
|
1 | (50) |
|
|
1 | (2) |
|
Boolean Algebra and Algebraic Simplification |
|
|
3 | (4) |
|
|
7 | (4) |
|
Designing with NAND and NOR Gates |
|
|
11 | (1) |
|
Hazards in Combinational Circuits |
|
|
12 | (2) |
|
|
14 | (3) |
|
Mealy Sequential Circuit Design |
|
|
17 | (8) |
|
Moore Sequential Circuit Design |
|
|
25 | (3) |
|
Equivalent States and Reduction of State Tables |
|
|
28 | (2) |
|
Sequential Circuit Timing |
|
|
30 | (11) |
|
Tristate Logic and Busses |
|
|
41 | (10) |
|
|
51 | (86) |
|
|
51 | (3) |
|
Hardware Description Languages |
|
|
54 | (3) |
|
VHDL Description of Combinational Circuits |
|
|
57 | (4) |
|
|
61 | (6) |
|
Sequential Statements and VHDL Processes |
|
|
67 | (2) |
|
Modeling Flip-Flops Using VHDL Processes |
|
|
69 | (4) |
|
Processes Using Wait Statements |
|
|
73 | (2) |
|
Two Types of VHDL Delays: Transport and Inertial Delays |
|
|
75 | (2) |
|
Compilation, Simulation, and Synthesis of VHDL Code |
|
|
77 | (5) |
|
VHDL Data Types and Operators |
|
|
82 | (2) |
|
Simple Synthesis Examples |
|
|
84 | (3) |
|
VHDL Models for Multiplexers |
|
|
87 | (3) |
|
|
90 | (5) |
|
Modeling Registers and Counters Using VHDL Processes |
|
|
95 | (6) |
|
Behavioral and Structural VHDL |
|
|
101 | (10) |
|
Variables, Signals, and Constants |
|
|
111 | (3) |
|
|
114 | (3) |
|
|
117 | (2) |
|
Assert and Report Statements |
|
|
119 | (18) |
|
Introduction to Programmable Logic Devices |
|
|
137 | (53) |
|
Brief Overview of Programmable Logic Devices |
|
|
137 | (3) |
|
Simple Programmable Logic Devices (SPLDs) |
|
|
140 | (16) |
|
Complex Programmable Logic Devices (CPLDs) |
|
|
156 | (4) |
|
Field-Programmable Gate Arrays (FPGAs) |
|
|
160 | (30) |
|
|
190 | (70) |
|
BCD to 7-Segment Display Decoder |
|
|
191 | (1) |
|
|
192 | (2) |
|
|
194 | (7) |
|
|
201 | (3) |
|
State Graphs for Control Circuits |
|
|
204 | (1) |
|
Scoreboard and Controller |
|
|
205 | (3) |
|
Synchronization and Debouncing |
|
|
208 | (2) |
|
A Shift-and-Add Multiplier |
|
|
210 | (6) |
|
|
216 | (3) |
|
A Signed Integer/Fraction Muliplier |
|
|
219 | (12) |
|
|
231 | (8) |
|
|
239 | (21) |
|
SM Charts and Microprogramming |
|
|
260 | (50) |
|
|
260 | (5) |
|
|
265 | (10) |
|
|
275 | (4) |
|
Implementation of the Dice Game |
|
|
279 | (4) |
|
|
283 | (14) |
|
|
297 | (13) |
|
Designing with Field Programmable Gate Arrays |
|
|
310 | (51) |
|
Implementing Functions in FPGAs |
|
|
310 | (6) |
|
Implementing Functions Using Shannon's Decomposition |
|
|
316 | (5) |
|
|
321 | (2) |
|
|
323 | (1) |
|
Examples of Logic Blocks in Commercial FPGAs |
|
|
324 | (2) |
|
Dedicated Memory in FPGAs |
|
|
326 | (6) |
|
Dedicated Multipliers in FPGAs |
|
|
332 | (1) |
|
|
333 | (2) |
|
FPGAs and One-Hot State Assignment |
|
|
335 | (2) |
|
FPGA Capacity: Maximum Gates Versus Usable Gates |
|
|
337 | (1) |
|
Design Translation (Synthesis) |
|
|
338 | (11) |
|
Mapping, Placement, and Routing |
|
|
349 | (12) |
|
Floating-Point Arithmetic |
|
|
361 | (28) |
|
Representation of Floating-Point Numbers |
|
|
361 | (6) |
|
Floating-Point Multiplication |
|
|
367 | (10) |
|
|
377 | (6) |
|
Other Floating-Point Operations |
|
|
383 | (6) |
|
Additional Topics in VHDL |
|
|
389 | (40) |
|
|
389 | (4) |
|
|
393 | (2) |
|
|
395 | (4) |
|
Creating Overloaded Operators |
|
|
399 | (1) |
|
Multi-Valued Logic and Signal Resolution |
|
|
400 | (5) |
|
The IEEE 9-Valued Logic System |
|
|
405 | (3) |
|
SRAM Model Using IEEE 1164 |
|
|
408 | (2) |
|
Model for SRAM Read/Write System |
|
|
410 | (3) |
|
|
413 | (1) |
|
|
414 | (1) |
|
|
415 | (2) |
|
|
417 | (12) |
|
Design of a RISC Microprocessor |
|
|
429 | (39) |
|
|
429 | (3) |
|
|
432 | (6) |
|
MIPS Instruction Encoding |
|
|
438 | (3) |
|
Implementation of a MIPS Subset |
|
|
441 | (8) |
|
|
449 | (19) |
|
Hardware Testing and Design for Testability |
|
|
468 | (39) |
|
Testing Combinational Logic |
|
|
468 | (5) |
|
|
473 | (3) |
|
|
476 | (3) |
|
|
479 | (11) |
|
|
490 | (17) |
|
Additional Design Examples |
|
|
507 | (38) |
|
|
507 | (11) |
|
|
518 | (8) |
|
A Universal Asynchronous Receiver Transmitter (UART) |
|
|
526 | (19) |
Appendix A VHDL Language Summary |
|
545 | (8) |
Appendix B IEEE Standard Libraries |
|
553 | (2) |
Appendix C TEXTIO Package |
|
555 | (2) |
Appendix D Projects |
|
557 | (11) |
References |
|
568 | (3) |
Index |
|
571 | |