Boston: CL Engineering, 2015. — 594 p.
Master the process of designing and testing new hardware configurations with DIGITAL SYSTEMS DESIGN USING VERILOG. This practical book integrates coverage of logic design principles, Verilog as a hardware design language, and FPGA implementation. The authors present Verilog constructs side-by-side with hardware, encouraging you to think in terms of desired hardware while writing synthesizable Verilog. Following a review of the basic concepts of logic design, the authors introduce the basics of Verilog using simple combinational circuit examples, followed by models for simple sequential circuits. Subsequent chapters ask you to tackle more and more complex designs.
Review of Logic Design FundamentalsCombinational Logic.
Boolean Algebra and Algebraic Simplification.
Karnaugh Maps.
Designing with NAND and NOR Gates.
Hazards in Combinational Circuits.
Flip-Flops and Latches.
Mealy Sequential Circuit Design.
Design of a Moore Sequential Circuit.
Equivalent States and Reduction of State Tables.
Sequential Circuit Timing.
Tristate Logic and Busses.
Introduction to VerilogComputer-Aided Design.
Hardware Description Languages.
Verilog Description of Combinational Circuits.
Verilog Modules.
Verilog Assignments.
Procedural Assignments.
Modeling Flip-Flops Using Always Block.
Always Blocks Using Event Control Statements.
Delays in Verilog.
Compilation, Simulation, and Synthesis of Verilog Code.
Verilog Data Types and Operators.
Simple Synthesis Examples.
Verilog Models for Multiplexers.
Modeling Registers and Counters Using Verilog Always Statements.
Behavioral and Structural Verilog.
Constants.
Arrays.
Loops in Verilog.
Testing a Verilog Model.
A Few Things to Remember.
Introduction to Programmable Logic DevicesBrief Overview of Programmable Logic Devices.
Simple Programmable Logic Devices (SPLDs).
Complex Programmable Logic Devices (CPLDs).
Field-Programmable Gate Arrays (FPGAs).
Design ExamplesBCD to 7-Segment Display Decoder.
A BCD Adder.
Bit Adders.
Traffic Light Controller.
State Graphs for Control Circuits.
Scoreboard and Controller.
Synchronization and Debouncing.
A Shift-and-Add Multiplier.
Array Multiplier.
A Signed Integer/Fraction Multiplier.
Keypad Scanner.
Binary Dividers.
SM Charts and MicroprogrammingState Machine Charts.
Derivation of SM Charts.
Realization of SM Charts.
Implementation of the Dice Game.
Microprogramming.
Linked State Machines.
Designing with Field Programmable Gate ArraysImplementing Functions in FPGAs.
Implementing Functions Using Shannon's Decomposition.
Carry Chains in FPGAs.
Cascade Chains in FPGAs.
Examples of Logic Blocks in Commercial FPGAs.
Dedicated Memory in FPGAs.
Dedicated Multipliers in FPGAs.
Cost of Programmability.
FPGAs and One-Hot State Assignment.
FPGA Capacity: Maximum Gates versus Usable Gates.
Design Translation (Synthesis).
Mapping, Placement, and Routing.
Floating-Point ArithmeticRepresentation of Floating-Point Numbers.
Floating-Point Multiplication.
Floating-Point Addition.
Other Floating-Point Operations.
Additional Topics in VerilogVerilog Functions.
Verilog Tasks.
Multivalued Logic and Signal Resolution.
Built-in Primitives.
User-Defined Primitives.
SRAM Model.
Model for SRAM Read/Write System.
Rise and Fall Delays of Gates.
Named Association.
Generate Statements.
System Functions.
Compiler Directives.
File I/O Functions.
Timing Checks.
Design of a RISC MicroprocessorThe RISC Philosophy.
The MIPS ISA.
MIPS Instruction Encoding.
Implementation of a MIPS Subset.
Verilog Model.
Hardware Testing and Design for Testability.
Testing Combinational Logic.
Testing Sequential Logic.
Scan Testing.
Boundary Scan.
Built-In Self-Test.
Appendix A
Appendix В