<p style="MARGIN: 0px">1 Introduction to Digital Design Methodology 1</p> <p style="MARGIN: 0px">1.1 Design Methodology–An Introduction </p> <p style="MARGIN: 0px">1.1.1 Design Specification </p> <p style="MARGIN: 0px">1.1.2 Design Partition </p> <p style="MARGIN: 0px">1.1.3 Design Entry </p> <p style="MARGIN: 0px">1.1.4 Simulation and Functional Verification </p> <p style="MARGIN: 0px">1.1.5 Design Integration and Verification </p> <p style="MARGIN: 0px">1.1.6 Presynthesis Sign-Off </p> <p style="MARGIN: 0px">1.1.7 Gate-Level Synthesis and Technology Mapping </p> <p style="MARGIN: 0px">1.1.8 Postsynthesis Design Validation </p> <p style="MARGIN: 0px">1.1.9 Postsynthesis Timing Verification </p> <p style="MARGIN: 0px">1.1.10 Test Generation and Fault Simulation </p> <p style="MARGIN: 0px">1.1.11 Placement and Routing </p> <p style="MARGIN: 0px">1.1.12 Physical and Electrical Design Rule Checks </p> <p style="MARGIN: 0px">1.1.13 Parasitic Extraction </p> <p style="MARGIN: 0px">1.1.14 Design Sign-Off </p> <p style="MARGIN: 0px">1.2 IC Technology Options </p> <p style="MARGIN: 0px">1.3 Overview </p> <p style="MARGIN: 0px">References </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">2 Review of Combinational Logic Design 13</p> <p style="MARGIN: 0px">2.1 Combinational Logic and Boolean Algebra </p> <p style="MARGIN: 0px">2.1.1 ASIC Library Cells </p> <p style="MARGIN: 0px">2.1.2 Boolean Algebra </p> <p style="MARGIN: 0px">2.1.3 DeMorgan’s Laws </p> <p style="MARGIN: 0px">2.2 Theorems for Boolean Algebraic Minimization </p> <p style="MARGIN: 0px">2.3 Representation of Combinational Logic </p> <p style="MARGIN: 0px">2.3.1 Sum-of-Products Representation </p> <p style="MARGIN: 0px">2.3.2 Product-of-Sums Representation </p> <p style="MARGIN: 0px">2.4 Simplification of Boolean Expressions </p> <p style="MARGIN: 0px">2.4.1 Simplification with Exclusive-Or </p> <p style="MARGIN: 0px">2.4.2 Karnaugh Maps (SOP Form) </p> <p style="MARGIN: 0px">2.4.3 Karnaugh Maps (POS Form) </p> <p style="MARGIN: 0px">2.4.4 Karnaugh Maps and Don’t-Cares </p> <p style="MARGIN: 0px">2.4.5 Extended Karnaugh Maps </p> <p style="MARGIN: 0px">2.5 Glitches and Hazards </p> <p style="MARGIN: 0px">2.5.1 Elimination of Static Hazards (SOP Form) </p> <p style="MARGIN: 0px">2.5.2 Summary: Elimination of Static Hazards in Two-Level Circuits </p> <p style="MARGIN: 0px">2.5.3 Static Hazards in Multilevel Circuits </p> <p style="MARGIN: 0px">2.5.4 Summary: Elimination of Static Hazards in Multilevel Circuits </p> <p style="MARGIN: 0px">2.5.5 Dynamic Hazards </p> <p style="MARGIN: 0px">2.6 Building Blocks for Logic Design </p> <p style="MARGIN: 0px">2.6.1 NAND—NOR Structures </p> <p style="MARGIN: 0px">2.6.2 Multiplexers </p> <p style="MARGIN: 0px">2.6.3 Demultiplexers </p> <p style="MARGIN: 0px">2.6.4 Encoders </p> <p style="MARGIN: 0px">2.6.5 Priority Encoder </p> <p style="MARGIN: 0px">2.6.6 Decoder </p> <p style="MARGIN: 0px">2.6.7 Priority Decoder </p> <p style="MARGIN: 0px">References </p> <p style="MARGIN: 0px">Problems </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">3 Fundamentals of Sequential Logic Design 69</p> <p style="MARGIN: 0px">3.1 Storage Elements </p> <p style="MARGIN: 0px">3.1.1 Latches </p> <p style="MARGIN: 0px">3.1.2 Transparent Latches </p> <p style="MARGIN: 0px">3.2 Flip-Flops </p> <p style="MARGIN: 0px">3.2.1 D-Type Flip-Flop </p> <p style="MARGIN: 0px">3.2.2 Master—Slave Flip-Flop </p> <p style="MARGIN: 0px">3.2.3 J-K Flip-Flops </p> <p style="MARGIN: 0px">3.2.4 T Flip-Flop </p> <p style="MARGIN: 0px">3.3 Busses and Three-State Devices </p> <p style="MARGIN: 0px">3.4 Design of Sequential Machines </p> <p style="MARGIN: 0px">3.5 State-Transition Graphs </p> <p style="MARGIN: 0px">3.6 Design Example: BCD to Excess-3 Code Converter </p> <p style="MARGIN: 0px">3.7 Serial-Line Code Converter for Data Transmission </p> <p style="MARGIN: 0px">3.7.1 Design Example: A Mealy-Type FSM for Serial Line-Code Conversion </p> <p style="MARGIN: 0px">3.7.2 Design Example: A Moore-Type FSM for Serial Line-Code Conversion </p> <p style="MARGIN: 0px">3.8 State Reduction and Equivalent States </p> <p style="MARGIN: 0px">References </p> <p style="MARGIN: 0px">Problems </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">4 Introduction to Logic Design with Verilog 103</p> <p style="MARGIN: 0px">4.1 Structural Models of Combinational Logic </p> <p style="MARGIN: 0px">4.1.1 Verilog Primitives and Design Encapsulation </p> <p style="MARGIN: 0px">4.1.2 Verilog Structural Models </p> <p style="MARGIN: 0px">4.1.3 Module Ports </p> <p style="MARGIN: 0px">4.1.4 Some Language Rules </p> <p style="MARGIN: 0px">4.1.5 Top-Down Design and Nested Modules </p> <p style="MARGIN: 0px">4.1.6 Design Hierarchy and Source-Code Organization </p> <p style="MARGIN: 0px">4.1.7 Vectors in Verilog </p> <p style="MARGIN: 0px">4.1.8 Structural Connectivity </p> <p style="MARGIN: 0px">4.2 Logic System, Design Verification, and Test Methodology </p> <p style="MARGIN: 0px">4.2.1 Four-Value Logic and Signal Resolution in Verilog </p> <p style="MARGIN: 0px">4.2.2 Test Methodology </p> <p style="MARGIN: 0px">4.2.3 Signal Generators for Testbenches </p> <p style="MARGIN: 0px">4.2.4 Event-Driven Simulation </p> <p style="MARGIN: 0px">4.2.5 Testbench Template </p> <p style="MARGIN: 0px">4.2.6 Sized Numbers </p> <p style="MARGIN: 0px">4.3 Propagation Delay </p> <p style="MARGIN: 0px">4.3.1 Inertial Delay </p> <p style="MARGIN: 0px">4.3.2 Transport Delay </p> <p style="MARGIN: 0px">4.4 Truth Table Models of Combinational and Sequential Logic with Verilog </p> <p style="MARGIN: 0px">References </p> <p style="MARGIN: 0px">Problems </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">5 Logic Design with Behavioral Models of Combinational</p> <p style="MARGIN: 0px">and Sequential Logic 141</p> <p style="MARGIN: 0px">5.1 Behavioral Modeling </p> <p style="MARGIN: 0px">5.2 A Brief Look at Data Types for Behavioral Modeling </p> <p style="MARGIN: 0px">5.3 Boolean Equation-Based Behavioral Models of Combinational Logic </p> <p style="MARGIN: 0px">5.4 Propagation Delay and Continuous Assignments </p> <p style="MARGIN: 0px">5.5 Latches and Level-Sensitive Circuits in Verilog </p> <p style="MARGIN: 0px">5.6 Cyclic Behavioral Models of Flip-Flops and Latches </p> <p style="MARGIN: 0px">5.7 Cyclic Behavior and Edge Detection </p> <p style="MARGIN: 0px">5.8 A Comparison of Styles for Behavioral Modeling </p> <p style="MARGIN: 0px">5.8.1 Continuous Assignment Models </p> <p style="MARGIN: 0px">5.8.2 Dataflow/RTL Models </p> <p style="MARGIN: 0px">5.8.3 Algorithm-Based Models </p> <p style="MARGIN: 0px">5.8.4 Naming Conventions: A Matter of Style </p> <p style="MARGIN: 0px">5.8.5 Simulation with Behavioral Models </p> <p style="MARGIN: 0px">5.9 Behavioral Models of Multiplexers, Encoders, and Decoders </p> <p style="MARGIN: 0px">5.10 Dataflow Models of a Linear-Feedback Shift Register </p> <p style="MARGIN: 0px">5.11 Modeling Digital Machines with Repetitive Algorithms </p> <p style="MARGIN: 0px">5.11.1 Intellectual Property Reuse and Parameterized Models </p> <p style="MARGIN: 0px">5.11.2 Clock Generators </p> <p style="MARGIN: 0px">5.12 Machines with Multicycle Operations </p> <p style="MARGIN: 0px">5.13 Design Documentation with Functions and Tasks: Legacy or Lunacy? </p> <p style="MARGIN: 0px">5.13.1 Tasks </p> <p style="MARGIN: 0px">5.13.2 Functions </p> <p style="MARGIN: 0px">5.14 Algorithmic State Machine Charts for Behavioral Modeling </p> <p style="MARGIN: 0px">5.15 ASMD Charts </p> <p style="MARGIN: 0px">5.16 Behavioral Models of Counters, Shift Registers, and Register Files </p> <p style="MARGIN: 0px">5.16.1 Counters </p> <p style="MARGIN: 0px">5.16.2 Shift Registers </p> <p style="MARGIN: 0px">5.16.3 Register Files and Arrays of Registers (Memories) </p> <p style="MARGIN: 0px">5.17 Switch Debounce, Metastability, and Synchronizers for Asynchronous Signals </p> <p style="MARGIN: 0px">5.18 Design Example: Keypad Scanner and Encoder </p> <p style="MARGIN: 0px">References </p> <p style="MARGIN: 0px">Problems </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">6 Synthesis of Combinational and Sequential Logic 235</p> <p style="MARGIN: 0px">6.1 Introduction to Synthesis </p> <p style="MARGIN: 0px">6.1.1 Logic Synthesis </p> <p style="MARGIN: 0px">6.1.2 RTL Synthesis </p> <p style="MARGIN: 0px">6.1.3 High-Level Synthesis </p> <p style="MARGIN: 0px">6.2 Synthesis of Combinational Logic </p> <p style="MARGIN: 0px">6.2.1 Synthesis of Priority Structures </p> <p style="MARGIN: 0px">6.2.2 Exploiting Logical Don’t-Care Conditions </p> <p style="MARGIN: 0px">6.2.3 ASIC Cells and Resource Sharing </p> <p style="MARGIN: 0px">6.3 Synthesis of Sequential Logic with Latches </p> <p style="MARGIN: 0px">6.3.1 Accidental Synthesis of Latches </p> <p style="MARGIN: 0px">6.3.2 Intentional Synthesis of Latches </p> <p style="MARGIN: 0px">6.4 Synthesis of Three-State Devices and Bus Interfaces </p> <p style="MARGIN: 0px">6.5 Synthesis of Sequential Logic with Flip-Flops </p> <p style="MARGIN: 0px">6.6 Synthesis of Explicit State Machines </p> <p style="MARGIN: 0px">6.6.1 Synthesis of a BCD-to-Excess-3 Code Converter </p> <p style="MARGIN: 0px">6.6.2 Design Example: Synthesis of a Mealy-Type NRZ-to-Manchester</p> <p style="MARGIN: 0px">Line Code Converter </p> <p style="MARGIN: 0px">6.6.3 Design Example: Synthesis of a Moore-Type NRZ-to-Manchester</p> <p style="MARGIN: 0px">Line Code Converter </p> <p style="MARGIN: 0px">6.6.4 Design Example: Synthesis of a Sequence Recognizer 284</p> <p style="MARGIN: 0px">6.7 Registered Logic </p> <p style="MARGIN: 0px">6.8 State Encoding </p> <p style="MARGIN: 0px">6.9 Synthesis of Implicit State Machines, Registers, and Counters </p> <p style="MARGIN: 0px">6.9.1 Implicit State Machines </p> <p style="MARGIN: 0px">6.9.2 Synthesis of Counters </p> <p style="MARGIN: 0px">6.9.3 Synthesis of Registers </p> <p style="MARGIN: 0px">6.10 Resets </p> <p style="MARGIN: 0px">6.11 Synthesis of Gated Clocks and Clock Enables </p> <p style="MARGIN: 0px">6.12 Anticipating the Results of Synthesis </p> <p style="MARGIN: 0px">6.12.1 Synthesis of Data Types </p> <p style="MARGIN: 0px">6.12.2 Operator Grouping </p> <p style="MARGIN: 0px">6.12.3 Expression Substitution </p> <p style="MARGIN: 0px">6.13 Synthesis of Loops </p> <p style="MARGIN: 0px">6.13.1 Static Loops without Embedded Timing Controls </p> <p style="MARGIN: 0px">6.13.2 Static Loops with Embedded Timing Controls </p> <p style="MARGIN: 0px">6.13.3 Nonstatic Loops without Embedded Timing Controls </p> <p style="MARGIN: 0px">6.13.4 Nonstatic Loops with Embedded Timing Controls </p> <p style="MARGIN: 0px">6.13.5 State-Machine Replacements for Unsynthesizable Loops </p> <p style="MARGIN: 0px">6.14 Design Traps to Avoid </p> <p style="MARGIN: 0px">6.15 Divide and Conquer: Partitioning a Design </p> <p style="MARGIN: 0px">References </p> <p style="MARGIN: 0px">Problems </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">7 Design and Synthesis of Datapath Controllers 345</p> <p style="MARGIN: 0px">7.1 Partitioned Sequential Machines </p> <p style="MARGIN: 0px">7.2 Design Example: Binary Counter </p> <p style="MARGIN: 0px">7.3 Design and Synthesis of a RISC Stored-Program Machine </p> <p style="MARGIN: 0px">7.3.1 RISC SPM: Processor </p> <p style="MARGIN: 0px">7.3.2 RISC SPM:ALU </p> <p style="MARGIN: 0px">7.3.3 RISC SPM: Controller </p> <p style="MARGIN: 0px">7.3.4 RISC SPM: Instruction Set </p> <p style="MARGIN: 0px">7.3.5 RISC SPM: Controller Design </p> <p style="MARGIN: 0px">7.3.6 RISC SPM: Program Execution </p> <p style="MARGIN: 0px">7.4 Design Example: UART </p> <p style="MARGIN: 0px">7.4.1 UART Operation </p> <p style="MARGIN: 0px">7.4.2 UART Transmitter </p> <p style="MARGIN: 0px">7.4.3 UART Receiver </p> <p style="MARGIN: 0px">References </p> <p style="MARGIN: 0px">Problems </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">8 Programmable Logic and Storage Devices 415</p> <p style="MARGIN: 0px">8.1 Programmable Logic Devices </p> <p style="MARGIN: 0px">8.2 Storage Devices </p> <p style="MARGIN: 0px">8.2.1 Read-Only Memory (ROM) </p> <p style="MARGIN: 0px">8.2.2 Programmable ROM (PROM) </p> <p style="MARGIN: 0px">8.2.3 Erasable ROMs </p> <p style="MARGIN: 0px">8.2.4 ROM-Based Implementation of Combinational Logic </p> <p style="MARGIN: 0px">8.2.5 Verilog System Tasks for ROMs </p> <p style="MARGIN: 0px">8.2.6 Comparison of ROMs </p> <p style="MARGIN: 0px">8.2.7 ROM-Based State Machines </p> <p style="MARGIN: 0px">8.2.8 Flash Memory </p> <p style="MARGIN: 0px">8.2.9 Static Random Access Memory (SRAM) </p> <p style="MARGIN: 0px">8.2.10 Ferroelectric Nonvolatile Memory </p> <p style="MARGIN: 0px">8.3 Programmable Logic Array (PLA) </p> <p style="MARGIN: 0px">8.3.1 PLA Minimization </p> <p style="MARGIN: 0px">8.3.2 PLA Modeling </p> <p style="MARGIN: 0px">8.4 Programmable Array Logic (PAL) </p> <p style="MARGIN: 0px">8.5 Programmability of PLDs </p> <p style="MARGIN: 0px">8.6 Complex PLDs (CPLDs) </p> <p style="MARGIN: 0px">8.7 Field-Programmable Gate Arrays </p> <p style="MARGIN: 0px">8.7.1 The Role of FPGAs in the ASIC Market </p> <p style="MARGIN: 0px">8.7.2 FPGA Technologies </p> <p style="MARGIN: 0px">8.7.3 XILINX Virtex FPGAs </p> <p style="MARGIN: 0px">8.8 Embeddable and Programmable IP Cores for a System-on-a-Chip (SoC) </p> <p style="MARGIN: 0px">8.9 Verilog-Based Design Flows for FPGAs </p> <p style="MARGIN: 0px">8.10 Synthesis with FPGAs </p> <p style="MARGIN: 0px">References </p> <p style="MARGIN: 0px">Related Web Sites </p> <p style="MARGIN: 0px">Problems and FPGA-Based Design Exercises </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">9 Algorithms and Architectures for Digital Processors 515</p> <p style="MARGIN: 0px">9.1 Algorithms, Nested-Loop Programs, and Data Flow Graphs </p> <p style="MARGIN: 0px">9.2 Design Example: Halftone Pixel Image Converter </p> <p style="MARGIN: 0px">9.2.1 Baseline Design for a Halftone Pixel Image Converter </p> <p style="MARGIN: 0px">9.2.2 NLP-Based Architectures for the Halftone Pixel Image Converter </p> <p style="MARGIN: 0px">9.2.3 Minimum Concurrent Processor Architecture for a Halftone Pixel Image Converter </p> <p style="MARGIN: 0px">9.2.4 Halftone Pixel Image Converter: Design Tradeoffs </p> <p style="MARGIN: 0px">9.2.5 Architectures for Dataflow Graphs with Feedback </p> <p style="MARGIN: 0px">9.3 Digital Filters and Signal Processors </p> <p style="MARGIN: 0px">9.3.1 Finite-Duration Impulse Response Filter </p> <p style="MARGIN: 0px">9.3.2 Digital Filter Design Process </p> <p style="MARGIN: 0px">9.3.3 Infinite-Duration Impulse Response Filter </p> <p style="MARGIN: 0px">9.4 Building Blocks for Signal Processors </p> <p style="MARGIN: 0px">9.4.1 Integrators (Accumulators) </p> <p style="MARGIN: 0px">9.4.2 Differentiators </p> <p style="MARGIN: 0px">9.4.3 Decimation and Interpolation Filters </p> <p style="MARGIN: 0px">9.5 Pipelined Architectures </p> <p style="MARGIN: 0px">9.5.1 Design Example: Pipelined Adder </p> <p style="MARGIN: 0px">9.5.2 Design Example: Pipelined FIR Filter </p> <p style="MARGIN: 0px">9.6 Circular Buffers </p> <p style="MARGIN: 0px">9.7 Asynchronous FIFOs–Synchronization across Clock Domains </p> <p style="MARGIN: 0px">9.7.1 Simplified Asynchronous FIFO </p> <p style="MARGIN: 0px">9.7.2 Clock Domain Synchronization for an Asynchronous FIFO </p> <p style="MARGIN: 0px">References </p> <p style="MARGIN: 0px">Problems </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">10 Architectures for Arithmetic Processors 627</p> <p style="MARGIN: 0px">10.1 Number Representation </p> <p style="MARGIN: 0px">10.1.1 Signed Magnitude Representation of Negative Integers </p> <p style="MARGIN: 0px">10.1.2 Ones Complement Representation of Negative Integers </p> <p style="MARGIN: 0px">10.1.3 Twos Complement Representation of Positive and Negative Integers </p> <p style="MARGIN: 0px">10.1.4 Representation of Fractions </p> <p style="MARGIN: 0px">10.2 Functional Units for Addition and Subtraction </p> <p style="MARGIN: 0px">10.2.1 Ripple-Carry Adder </p> <p style="MARGIN: 0px">10.2.2 Carry Look-Ahead Adder </p> <p style="MARGIN: 0px">10.2.3 Overflow and Underflow </p> <p style="MARGIN: 0px">10.3 Functional Units for Multiplication </p> <p style="MARGIN: 0px">10.3.1 Combinational (Parallel) Binary Multiplier </p> <p style="MARGIN: 0px">10.3.2 Sequential Binary Multiplier </p> <p style="MARGIN: 0px">10.3.3 Sequential Multiplier Design: Hierarchical Decomposition </p> <p style="MARGIN: 0px">10.3.4 STG-Based Controller Design </p> <p style="MARGIN: 0px">10.3.5 Efficient STG-Based Sequential Binary Multiplier </p> <p style="MARGIN: 0px">10.3.6 ASMD-Based Sequential Binary Multiplier </p> <p style="MARGIN: 0px">10.3.7 Efficient ASMD-Based Sequential Binary Multiplier </p> <p style="MARGIN: 0px">10.3.8 Summary of ASMD-Based Datapath and Controller Design </p> <p style="MARGIN: 0px">10.3.9 Reduced-Register Sequential Multiplier </p> <p style="MARGIN: 0px">10.3.10 Implicit-State-Machine Binary Multiplier </p> <p style="MARGIN: 0px">10.3.11 Booth’s Algorithm Sequential Multiplier </p> <p style="MARGIN: 0px">10.3.12 Bit-Pair Encoding </p> <p style="MARGIN: 0px">10.4 Multiplication of Signed Binary Numbers </p> <p style="MARGIN: 0px">10.4.1 Product of Signed Numbers: Negative Multiplicand,</p> <p style="MARGIN: 0px">Positive Multiplier </p> <p style="MARGIN: 0px">10.4.2 Product of Signed Numbers: Positive Multiplicand,</p> <p style="MARGIN: 0px">Negative Multiplier </p> <p style="MARGIN: 0px">10.4.3 Product of Signed Numbers: Negative Multiplicand,</p> <p style="MARGIN: 0px">Negative Multiplier </p> <p style="MARGIN: 0px">10.5 Multiplication of Fractions </p> <p style="MARGIN: 0px">10.5.1 Signed Fractions: Positive Multiplicand, Positive Multiplier </p> <p style="MARGIN: 0px">10.5.2 Signed Fractions: Negative Multiplicand, Positive Multiplier </p> <p style="MARGIN: 0px">10.5.3 Signed Fractions: Positive Multiplicand, Negative Multiplier </p> <p style="MARGIN: 0px">10.5.4 Signed Fractions: Negative Multiplicand, Negative Multiplier </p> <p style="MARGIN: 0px">10.6 Functional Units for Division </p> <p style="MARGIN: 0px">10.6.1 Division of Unsigned Binary Numbers </p> <p style="MARGIN: 0px">10.6.2 Efficient Division of Unsigned Binary Numbers </p> <p style="MARGIN: 0px">10.6.3 Reduced-Register Sequential Divider </p> <p style="MARGIN: 0px">10.6.4 Division of Signed (2s Complement) Binary Numbers </p> <p style="MARGIN: 0px">10.6.5 Signed Arithmetic </p> <p style="MARGIN: 0px">References </p> <p style="MARGIN: 0px">Problems </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">11 Postsynthesis Design Tasks 749</p> <p style="MARGIN: 0px">11.1 Postsynthesis Design Validation </p> <p style="MARGIN: 0px">11.2 Postsynthesis Timing Verification </p> <p style="MARGIN: 0px">11.2.1 Static Timing Analysis </p> <p style="MARGIN: 0px">11.2.2 Timing Specifications </p> <p style="MARGIN: 0px">11.2.3 Factors That Affect Timing </p> <p style="MARGIN: 0px">11.3 Elimination of ASIC Timing Violations </p> <p style="MARGIN: 0px">11.4 False Paths </p> <p style="MARGIN: 0px">11.5 System Tasks for Timing Verification </p> <p style="MARGIN: 0px">11.5.1 Timing Check: Setup Condition </p> <p style="MARGIN: 0px">11.5.2 Timing Check: Hold Condition </p> <p style="MARGIN: 0px">11.5.3 Timing Check: Setup and Hold Conditions </p> <p style="MARGIN: 0px">11.5.4 Timing Check: Pulsewidth Constraint </p> <p style="MARGIN: 0px">11.5.5 Timing Check: Signal Skew Constraint </p> <p style="MARGIN: 0px">11.5.6 Timing Check: Clock Period </p> <p style="MARGIN: 0px">11.5.7 Timing Check: Recovery Time </p> <p style="MARGIN: 0px">11.6 Fault Simulation and Manufacturing Tests </p> <p style="MARGIN: 0px">11.6.1 Circuit Defects and Faults </p> <p style="MARGIN: 0px">11.6.2 Fault Detection and Testing </p> <p style="MARGIN: 0px">11.6.3 D-Notation </p> <p style="MARGIN: 0px">11.6.4 Automatic Test Pattern Generation for Combinational Circuits </p> <p style="MARGIN: 0px">11.6.5 Fault Coverage and Defect Levels </p> <p style="MARGIN: 0px">11.6.6 Test Generation for Sequential Circuits </p> <p style="MARGIN: 0px">11.7 Fault Simulation </p> <p style="MARGIN: 0px">11.7.1 Fault Collapsing </p> <p style="MARGIN: 0px">11.7.2 Serial Fault Simulation </p> <p style="MARGIN: 0px">11.7.3 Parallel Fault Simulation </p> <p style="MARGIN: 0px">11.7.4 Concurrent Fault Simulation </p> <p style="MARGIN: 0px">11.7.5 Probabilistic Fault Simulation </p> <p style="MARGIN: 0px">11.8 JTAG Ports and Design for Testability </p> <p style="MARGIN: 0px">11.8.1 Boundary Scan and JTAG Ports </p> <p style="MARGIN: 0px">11.8.2 JTAG Modes of Operation </p> <p style="MARGIN: 0px">11.8.3 JTAG Registers </p> <p style="MARGIN: 0px">11.8.4 JTAG Instructions </p> <p style="MARGIN: 0px">11.8.5 TAP Architecture </p> <p style="MARGIN: 0px">11.8.6 TAP Controller State Machine </p> <p style="MARGIN: 0px">11.8.7 Design Example:Testing with JTAG </p> <p style="MARGIN: 0px">11.8.8 Design Example: Built-In Self-Test </p> <p style="MARGIN: 0px">References </p> <p style="MARGIN: 0px">Problems </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">A Verilog Primitives 851</p> <p style="MARGIN: 0px">A.1 Multiinput Combinational Logic Gates </p> <p style="MARGIN: 0px">A.2 Multioutput Combinational Gates </p> <p style="MARGIN: 0px">A.3 Three-State Logic Gates </p> <p style="MARGIN: 0px">A.4 MOS Transistor Switches </p> <p style="MARGIN: 0px">A.5 MOS Pull-Up/Pull-Down Gates </p> <p style="MARGIN: 0px">A.6 MOS Bidirectional Switches </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">B Verilog Keywords 863</p> <p style="MARGIN: 0px">C Verilog Data Types 865</p> <p style="MARGIN: 0px">C.1 Nets </p> <p style="MARGIN: 0px">C.2 Register Variables </p> <p style="MARGIN: 0px">C.3 Constants </p> <p style="MARGIN: 0px">C.4 Referencing Arrays of Nets or Regs </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">D Verilog Operators 873</p> <p style="MARGIN: 0px">D.1 Arithmetic Operators </p> <p style="MARGIN: 0px">D.2 Bitwise Operators</p> <p style="MARGIN: 0px">D.3 Reduction Operators </p> <p style="MARGIN: 0px">D.4 Logical Operators </p> <p style="MARGIN: 0px">D.5 Relational Operators </p> <p style="MARGIN: 0px">D.6 Shift Operators </p> <p style="MARGIN: 0px">D.7 Conditional Operator </p> <p style="MARGIN: 0px">D.8 Concatenation Operator </p> <p style="MARGIN: 0px">D.9 Expressions and Operands </p> <p style="MARGIN: 0px">D.10 Operator Precedence </p> <p style="MARGIN: 0px">D.11 Arithmetic with Signed Data Types </p> <p style="MARGIN: 0px">D.12 Signed Literal Integers </p> <p style="MARGIN: 0px">D.13 System Functions for Sign Conversion </p> <p style="MARGIN: 0px">2.1.1 Assignment Width Extension </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">E Verilog Language Formal Syntax 885</p> <p style="MARGIN: 0px">F Verilog Language Formal Syntax 887</p> <p style="MARGIN: 0px">F.1 Source text </p> <p style="MARGIN: 0px">F.2 Declarations </p> <p style="MARGIN: 0px">F.3 Primitive instances </p> <p style="MARGIN: 0px">F.4 Module and generated instantiation </p> <p style="MARGIN: 0px">F.5 UDP declaration and instantiation </p> <p style="MARGIN: 0px">F.6 Behavioral statements </p> <p style="MARGIN: 0px">F.7 Specify section </p> <p style="MARGIN: 0px">F.8 Expressions </p> <p style="MARGIN: 0px">F.9 General </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">G Additional Features of Verilog 913</p> <p style="MARGIN: 0px">G.1 Arrays of Primitives </p> <p style="MARGIN: 0px">G.2 Arrays of Modules </p> <p style="MARGIN: 0px">G.3 Hierarchical Dereferencing </p> <p style="MARGIN: 0px">G.4 Parameter Substitution </p> <p style="MARGIN: 0px">G.5 Procedural Continuous Assignment </p> <p style="MARGIN: 0px">G.6 Intra-Assignment Delay </p> <p style="MARGIN: 0px">G.7 Indeterminate Assignment and Race Conditions </p> <p style="MARGIN: 0px">G.8 wait STATEMENT </p> <p style="MARGIN: 0px">G.9 fork join Statement </p> <p style="MARGIN: 0px">G.10 Named (Abstract) Events </p> <p style="MARGIN: 0px">G.11 Constructs Supported by Synthesis Tools </p> <p style="MARGIN: 0px"> </p> <p style="MARGIN: 0px">H Flip-Flop and Latch Types 925</p> <p style="MARGIN: 0px">I Verilog-2001, 2005 927</p> <p style="MARGIN: 0px">I.1 ANSI C Style Changes </p> <p style="MARGIN: 0px">I.2 Code Management </p> <p style="MARGIN: 0px">I.3 Support for Logic Modeling </p> <p style="MARGIN: 0px">I.4 Support for Arithmetic </p> <p style="MARGIN: 0px">I.5 Sensitivity List for Event Control </p> <p style="MARGIN: 0px">I.6 Sensitivity List for Combinational Logic </p> <p style="MARGIN: 0px">I.7 Parameters </p> <p style="MARGIN: 0px">I.8 Instance Generation </p> <p style="MARGIN: 0px">J Programming Language Interface 949</p> <p style="MARGIN: 0px">K Web sites 951</p> <p style="MARGIN: 0px">L Web-Based Resources 953</p> <p style="MARGIN: 0px">Index 965</p>