數字設計:原理與實踐(英文版第5版)

數字設計:原理與實踐(英文版第5版)

《數字設計:原理與實踐(英文版第5版)》是2018年6月機械工業出版社出版的圖書,作者是[美]約翰 F.韋克利(John F.Wakerly)。

基本介紹

  • 書名:數字設計:原理與實踐(英文版第5版)
  • 作者:[美]約翰 F.韋克利(John F.Wakerly)
  • ISBN:9787111599418
  • 定價:139元
  • 出版社:機械工業出版社
  • 出版時間:2018年6月
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書是數字設計領域的經典教材,是作者牢習愉旬府固的理論功底、嚴謹的學術風範與豐富的實踐經驗的辣察完美融合。原理方面涵蓋高級(HDL)、低級(電子阿雄糊電路)以及“廣泛中間級”(門電路、觸發器和一些較腿催全高級的數字設計構件)的多層次基礎知識,更加方便不同妹遷罪專業的教學內容選取;實踐方催您譽欠面專注於Verilog一種實現語言,強調迎請背基於FPGA的設計,並且添加了更多套用實例。

圖書目錄

Contents
1 INTRODUCTION 1
1.1 About Digital Design1
1.2Analog versus Digital3
1.3Analog Signals7
1.4Digital Logic Signals7
1.5Logic Circuits and Gates9
1.6Software Aspects of Digital Design13
1.7Integrated Circuits16
1.8Logic Families and CMOS19
1.9CMOS Logic Circuits20
1.10Programmable Devices25
1.11Application-Specific ICs27
1.12Printed-Circuit Boards28
1.13Digital-Design Levels29
1.14The Name of the Game33
1.15Going Forward34
Drill Problems34
2 NUMBER SYSTEMS AND CODES 35
2.1Positional Number Systems36
2.2Binary, Octal, and Hexadecimal Numbers37
2.3Binary-Decimal Conversions39
2.4Addition and Subtraction of Binary Numbers42
2.5Representation of Negative Numbers44
2.5.1Signed-Magnitude Representation
2.5.2Complement Number Systems
2.5.3Two’s-Complement Representation
2.5.4Ones’-Complement Representation
2.5.5Excess Representations
2.6Two’s-Complement Addition and Subtraction48
2.6.1Addition Rules
2.6.2A Graphical View
2.6.3Overflow
2.6.4Subtraction Rules
2.6.5Two’s-Complement and Unsigned Binary Numbers
2.7Ones’-Complement Addition and Subtraction52
2.8Binary Multiplication54
2.9Binary Division56
2.10Binary Codes for Decimal Numbers57
2.11Gray Code602.12Character Codes62
2.13Codes for Actions, Conditions, and States64
2.14n-Cubes and Distance66
2.15Codes for Detecting and Correcting Errors67
2.15.1Error-Detecting Codes
2.15.2Error-Correcting and Multiple-Error-Detecting Codes
2.15.3Hamming Codes
2.15.4CRC Codes
2.15.5Two-Dimensional Codes
2.15.6Checksum Codes
2.15.7m-out-of-n Codes
2.16Codes for Transmitting and Storing Serial Data78
2.16.1Parallel and Serial Data
2.16.2Serial Line CodesReferences82
Drill Problems83
Exercises85
3SWITCHING ALGEBRA AND COMBINATIONAL LOGIC89
3.1Switching Algebra91
3.1.1Axioms
3.1.2Single-Variable Theorems
3.1.3Two- and Three-Variable Theorems
3.1.4n-Variable Theorems
3.1.5Duality
3.1.6Standard Representations of Logic Functions
3.2Combinational-Circuit Analysis104
3.3Combinational-Circuit Synthesis110
3.3.1Circuit Descriptions and Designs
3.3.2Circuit Manipulations
3.3.3Combinational-Circuit Minimization
3.3.4Karnaugh Maps
3.4Timing Hazards122
3.4.1Static Hazards
3.4.2Finding Static Hazards Using Maps
3.4.3Dynamic Hazards
3.4.4Designing Hazard-Free CircuitsReferences126
Drill Problems128Exercises129
4DIGITAL DESIGN PRACTICES133
4.1Documentation Standards133
4.1.1Block Diagrams
4.1.2Gate Symbols
4.1.3Signal Names and Active Levels
4.1.4Active Levels for Pins
4.1.5Constant Logic Signals
4.1.6Bubble-to-Bubble Logic Design
4.1.7Signal Naming in HDL Models
4.1.8Drawing Layout
4.1.9Buses
4.1.10Additional Schematic Information
4.2Circuit Timing154
4.2.1Timing Diagrams
4.2.2Propagation Delay
4.2.3Timing Specifications
4.2.4Sample Timing Specifications
4.2.5Timing Analysis Tools
4.3HDL-Based Digital Design165
4.3.1HDL History
4.3.2Why HDLs?
4.3.3EDA Tool Suites for HDLs
4.3.4HDL-Based Design FlowReferences172
Drill Problems
174Exercises176
5VERILOG HARDWARE DESCRIPTION LANGUAGE177
5.1Verilog Models and Modules179
5.2Logic System, Nets, Variables, and Constants184
5.3Vectors and Operators189
5.4Arrays193
5.5Logical Operators and Expressions194
5.6Compiler Directives197
5.7Structural Models198
5.8Dataflow Models203
5.9Behavioral Models (Procedural Code)205
5.9.1Always Statements and Blocks
5.9.2Procedural Statements
5.9.3Inferred Latches
5.9.4Assignment Statements
5.9.5begin-end Blocks
5.9.6if and if-else Statements
5.9.7case Statements
5.9.8Looping Statements
5.10Functions and Tasks220
5.11The Time Dimension224
5.12Simulation225
5.13Test Benches226
5.14Verilog Features for Sequential Logic Design232
5.15Synthesis232
References233
Drill Problems234
Exercises235
6BASIC COMBINATIONAL LOGICELEMENTS237
6.1Read-Only Memories (ROMs)240
6.1.1ROMs and Truth Tables
6.1.2Using ROMs for Arbitrary Combinational Logic Functions
6.1.3FPGA Lookup Tables (LUTs)
6.2Combinational PLDs246
6.2.1Programmable Logic Arrays
6.2.2Programmable Array Logic Devices
6.3Decoding and Selecting250
6.3.1A More Mathy Decoder Definition
6.3.2Binary Decoders
6.3.3Larger Decoders
6.3.4Decoders in Verilog
6.3.5Custom Decoders
6.3.6Seven-Segment Decoders
6.3.7 Binary Encoders
6.4Multiplexing281
6.4.1Gate-Level Multiplexer Circuits
6.4.2Expanding Multiplexers
6.4.3Multiplexers, Demultiplexers, and Buses
6.4.4Multiplexers in Verilog
References294
Drill Problems295
Exercises296
7MORE COMBINATIONAL BUILDINGBLOCKS301
7.1Three-State Devices302
7.1.1Three-State Buffers
7.1.2Standard MSI Three-State Buffers
7.1.3Three-State Outputs in Verilog
7.1.4Three-State Outputs in FPGAs
7.2Priority Encoding312
7.2.1Cascading Priority Encoders
7.2.2Priority Encoders in Verilog
7.3Exclusive-OR Gates and Parity Functions320
7.3.1Exclusive-OR and Exclusive-NOR Gates
7.3.2Parity Circuits
7.3.3Parity-Checking Applications
7.3.4Exclusive-OR Gates and Parity Circuits in Verilog
7.4Comparing331
7.4.1Comparator Structure
7.4.2Iterative Circuits
7.4.3An Iterative Comparator Circuit
7.4.4Magnitude Comparators
7.4.5Comparators in HDLs
7.4.6Comparators in Verilog
7.4.7Comparator Test Benches
7.4.8Comparing Comparator Performance
7.5A Random-Logic Example in Verilog356
Drill Problems363
Exercises364
8COMBINATIONAL ARITHMETICELEMENTS371
8.1Adding and Subtracting372
8.1.1Half Adders and Full Adders
8.1.2Ripple Adders
8.1.3Subtractors
8.1.4Carry-Lookahead Adders
8.1.5Group Ripple Adders
8.1.6Group-Carry Lookahead
8.1.7MSI Arithmetic and Logic Units
8.1.8Adders in Verilog
8.1.9Parallel-Prefix Adders
8.1.10FPGA CARRY4 Element
8.2Shifting and Rotating403
8.2.1Barrel Shifters
8.2.2Barrel Shifters in Verilog
8.3Multiplying416
8.3.1Combinational Multiplier Structures
8.3.2Multiplication in Verilog
8.4Dividing426
8.4.1Basic Unsigned Binary Division Algorithm
8.4.2Division in VerilogReferences433
Drill Problems433
Exercises434
9STATE MACHINES439
9.1State-Machine Basics440
9.2State-Machine Structure and Analysis443
9.2.1State-Machine Structure
9.2.2Output Logic
9.2.3State-Machine Timing
9.2.4Analysis of State Machines with D Flip-Flops
9.3State-Machine Design with State Tables455
9.3.1State-Table Design Example
9.3.2State Minimization
9.3.3State Assignment
9.3.4Synthesis Using D Flip-Flops
9.3.5Beyond State Tables
9.4State-Machine Design with State Diagrams472
9.4.1T-Bird Tail Lights Example
9.5State-Machine Design with ASM Charts478
9.5.1T-Bird Tail Lights with ASM Charts
9.6State-Machine Design with Verilog483
References486
Drill Problems487
Exercises490
10SEQUENTIAL LOGIC ELEMENTS495
10.1Bistable Elements496
10.1.1Digital Analysis
10.1.2Analog Analysis
10.1.3Metastable Behavior
10.2Latches and Flip-Flops499
10.2.1S-R Latch
10.2.2S-R Latch
10.2.3D Latch
10.2.4Edge-Triggered D Flip-Flop
10.2.5Edge-Triggered D Flip-Flop with Enable
10.2.6T Flip-Flops
10.3Latches and Flip-Flops in Verilog508
10.3.1Instance Statements and Library Components
10.3.2Behavioral Latch and Flip-Flop Models
10.3.3More about clocking in Verilog
10.4Multibit Registers and Latches522
10.4.1MSI Registers and Latches
10.4.2Multibit Registers and Latches in Verilog
10.5Miscellaneous Latch and Bistable Applications525
10.5.1Switch Debouncing
10.5.2Bus-Holder Circuits
10.6Sequential PLDs528
10.7FPGA Sequential Logic Elements531
10.8Feedback Sequential Circuits534
10.8.1Basic Analysis
10.8.2Analyzing Circuits with Multiple Feedback Loops
10.8.3Feedback Sequential-Circuit Design
10.8.4Feedback Sequential Circuits in VerilogReferences544
Drill Problems545
Exercises547
11COUNTERS AND SHIFT REGISTERS553
11.1Counters554
11.1.1Ripple Counters
11.1.2Synchronous Counters
11.1.3A Universal 4-Bit Counter Circuit1
1.1.4Decoding Binary-Counter States
11.1.5Counters in Verilog
11.2Shift Registers566
11.2.1Shift-Register Structure
11.2.2Shift-Register Counters
11.2.3Ring Counters
11.2.4Johnson Counters
11.2.5Linear Feedback Shift-Register Counters
11.2.6Shift Registers in Verilog
11.2.7Timing-Generator Examples
11.2.8LFSR Examples
11.3Iterative versus Sequential Circuits593
References596
Drill Problems596
Exercises599
12STATE MACHINES IN VERILOG605
12.1Verilog State-Machine Coding Styles606
12.1.1Basic Coding Style
12.1.2A Verilog State-Machine Example
12.1.3Combined State Memory and Next-State Logic
12.1.4Reset Inputs
12.1.5Pipelined Moore Outputs in Verilog
12.1.6Direct Verilog Coding Without a State Table
12.1.7State-Machine Extraction
12.2Verilog State-Machine Test Benches616
12.2.1State-Machine Test-Bench Construction Methods
12.2.2Example Test Benches
12.2.3Instrumenting Next-State Logic for Testing
12.2.4In Summary
12.3Ones Counter626
12.4Combination Lock628
12.5T-Bird Tail Lights632
12.6Reinventing Traffic-Light Controllers637
12.7The Guessing Game642
12.8“Don’t-Care” State Encodings646
12.9Decomposing State Machines648
12.9.1The Guessing Game Again
12.10The Trilogy Game656
References664
Drill Problems664
Exercises666
13SEQUENTIAL-CIRCUIT DESIGNPRACTICES673
13.1Sequential-Circuit Documentation Practices674
13.1.1General Requirements
13.1.2Logic Symbols
13.1.3State-Machine Descriptions
13.1.4Timing Diagrams and Specifications
13.2Synchronous Design Methodology681
13.2.1Synchronous System Structure
13.2.2A Synchronous System Design Example
13.3Difficulties in Synchronous Design691
13.3.1Clock Skew
13.3.2Gating the Clock
13.3.3Asynchronous Inputs
13.4Synchronizer Failure and Metastability701
13.4.1Synchronizer Failure
13.4.2Metastability Resolution Time
13.4.3Reliable Synchronizer Design
13.4.4Analysis of Metastable Timing
13.4.5Better Synchronizers
13.4.6Other Synchronizer Designs
13.5Two-Clock Synchronization Example710
References729
Drill Problems729
Exercises730
14DIGITAL CIRCUITS733
14.1CMOS Logic Circuits735
14.1.1CMOS Logic Levels
14.1.2MOS Transistors
14.1.3Basic CMOS Inverter Circuit
14.1.4CMOS NAND and NOR Gates
14.1.5Fan-In
14.1.6Noninverting Gates
14.1.7CMOS AND-OR-INVERT and OR-AND-INVERT Gates
14.2Electrical Behavior of CMOS Circuits745
14.2.1Overview
14.2.2Data Sheets and Specifications
14.3CMOS Static Electrical Behavior748
14.3.1Logic Levels and Noise Margins
14.3.2Circuit Behavior with Resistive Loads
14.3.3Circuit Behavior with Nonideal Inputs
14.3.4Fanout
14.3.5Effects of Loading
14.3.6Unused Inputs
14.3.7How to Destroy a CMOS Device
14.4CMOS Dynamic Electrical Behavior764
14.4.1Transition Time
14.4.2Propagation Delay
14.4.3Power Consumption
14.4.4Current Spikes and Decoupling Capacitors
14.4.5Inductive Effects
14.4.6Simultaneous Switching and Ground Bounce
14.5Other CMOS Input and Output Structures778
14.5.1Transmission Gates
14.5.2Schmitt-Trigger Inputs
14.5.3Three-State Outputs
14.5.4Open-Drain Outputs
14.5.5Driving LEDs and Relays
14.5.6Multisource Buses
14.5.7Wired Logic
14.5.8Pull-Up Resistors
14.6CMOS Logic Families790
14.6.1HC and HCT
14.6.2AHC and AHCT
14.6.3HC, HCT, AHC, and AHCT Electrical Characteristics
14.6.4AC and ACT
14.6.5FCT and FCT-T
14.7Low-Voltage CMOS Logic and Interfacing798
14.7.13.3-V LVTTL and LVCMOS Logic Levels
14.7.25-V Tolerant Inputs
14.7.35-V Tolerant Outputs
14.7.4TTL/LVTTL Interfacing Summary
14.7.5Logic Levels Less Than 3.3 V
14.8Differential Signaling803
References804
Drill Problems805
Exercises808
15ROMS, RAMS, AND FPGAS813
15.1Read-Only Memory814
15.1.1Internal ROM Structure
15.1.2Two-Dimensional Decoding
15.1.3Commercial ROM Types
15.1.4Parallel-ROM Interfaces
15.1.5Parallel-ROM Timing
15.1.6Byte-Serial Interfaces for NAND Flash Memories
15.1.7NAND Memory Timing and Access Bandwidth
15.1.8Storage Management for NAND Memories
15.2Read/Write Memory833
15.3Static RAM834
15.3.1Static-RAM Inputs and Outputs
15.3.2Static-RAM Internal Structure
15.3.3Static-RAM Timing
15.3.4Standard Asynchronous SRAMs
15.3.5Synchronous SRAM
15.4Dynamic RAM844
15.4.1Dynamic-RAM Structure
15.4.2SDRAM Timing
15.4.3DDR SDRAMs
15.5Field-Programmable Gate Arrays (FPGAs)851
15.5.1Xilinx 7-Series FPGA Family
15.5.2CLBs and Other Logic Resources
15.5.3Input/Output Block
15.5.4Programmable InterconnectReferences863
Drill Problems864
Contents
目 錄
第1章 引言 1
1.1 關於數字設計 1
1.2 模擬與數字 3
1.3 模擬信號 7
1.4 數字邏輯信號 7
1.5 邏輯電路與門電路 9
1.6 數字設計的軟體方面 13
1.7 積體電路 16
1.8 邏輯序列與CMOS 19
1.9 CMOS邏輯電路 20
1.10 可程式器件 25
1.11 專用積體電路 27
1.12 印製電路板 28
1.13 數字設計層次 29
1.14 數字設計的重要目標 33
1.15 繼續學習 34
訓練題 34
第2章 數制系統和編碼 35
2.1 按位計數制系統 36
2.2 二進制、八進制和十六進制 37
2.3 二進制與十進制的轉換 39
2.4 二進制數的加法和減法 42
2.5 負數的表示 44
2.5.1 符號–數值表示法
2.5.2 補碼數制系統
2.5.3 二進制補碼錶示法
2.5.4 二進制反碼錶示法
2.5.5 余碼錶示法
2.6 二進制補碼的加法和減法 48
2.6.1 加法規則
2.6.2 圖示法
2.6.3 溢出
2.6.4 減法規則
2.6.5 二進制補碼與無符號二進制數
2.7 二進制反碼的加法和減法 52
2.8 二進制乘法 54
2.9 二進制除法 56
2.10 十進制數的二進制編碼 57
2.11 格雷碼 60
2.12 字元編碼 62
2.13 動作、條件和狀態的編碼 64
2.14 n維體與距離 66
2.15 檢錯碼和糾錯碼 67
2.15.1 檢錯碼
2.15.2 糾錯碼與多重檢錯碼
2.15.3 漢明碼
2.15.4 循環冗餘校驗碼
2.15.5 二維碼
2.15.6 校驗和碼
2.15.7 n中取m碼
2.16 用於串列數據傳輸與存儲的編碼 78
2.16.1 並行/串列數據
2.16.2 串列線路編碼
參考資料 82
訓練題 83
練習題 85
第3章 開關代數和組合邏輯 89
3.1 開關代數 91
3.1.1 公理
3.1.2 單變數定理
3.1.3 二變數定理和三變數定理
3.1.4 n變數定理
3.1.5 對偶性
3.1.6 邏輯函式的標準表示法
3.2 組合電路分析 104
3.3 組合電路綜合 110
3.3.1 電路描述與設計
3.3.2 電路處理
3.3.3 組合電路最小化
3.3.4 卡諾圖
3.4 定時冒險 122
3.4.1 靜態冒險
3.4.2 利用卡諾圖發現靜態冒險
3.4.3 動態冒險
3.4.4 設計無冒險電路
參考資料 126
訓練題 128
練習題 129
第4章 數字設計實踐 133
4.1 文檔標準 133
4.1.1 方框圖
4.1.2 門電路符號
4.1.3 信號名和有效電平
4.1.4 引腳的有效電平
4.1.5 圈到圈邏輯設計
4.1.6 HDL程式中的信號命名
4.1.7 繪製布局圖
4.1.8 匯流排
4.1.9 附加圖示信息
4.2 電路定時 154
4.2.1 定時圖
4.2.2 傳輸延遲
4.2.3 定時規格說明
4.2.4 採樣定時規格說明
4.2.5 定時分析工具
4.3 基於HDL的數字設計 165
4.3.1 HDL的歷史
4.3.2 為什麼用HDL
4.3.3 HDL的EDA工具套件
4.3.4 基於HDL的設計流程
參考資料 172
訓練題 174
練習題 176
第5章 Verilog硬體描述語言 177
5.1 Verilog模型和模組 179
5.2 邏輯系統、格線、變數和常量 184
5.3 向量和操作符 189
5.4 數組 193
5.5 邏輯操作符和表達式 194
5.6 編譯器指令 197
5.7 結構化模型 198
5.8 數據流模型 203
5.9 行為化模型(過程代碼) 205
5.9.1 always語句和程式塊
5.9.2 過程語句
5.9.3 推理出的鎖存器
5.9.4 賦值語句
5.9.5 begin-end程式塊
5.9.6 if和if-else語句
5.9.7 case語句
5.9.8 循環語句
5.10 函式和任務 220
5.11 時間維度 224
5.12 模擬 225
5.13 測試平台 226
5.14 時序邏輯設計的Verilog特性 232
5.15 綜合 232
參考資料 233
訓練題 234
練習題 235
第6章 基本組合邏輯元件 237
6.1 唯讀存儲器 240
6.1.1 ROM和真值表
6.1.2 ROM用於隨機組合邏輯函式
6.1.3 FPGA查詢表
6.2 組合PLD 246
6.2.1 可程式邏輯陣列
6.2.2 可程式陣列邏輯器件
6.3 解碼器和選擇器 250
6.3.1 更加“數學化”的解碼器定義
6.3.2 二進制解碼器
6.3.3 大型解碼器
6.3.4 用Verilog實現解碼器
6.3.5 定製的解碼器
6.3.6 七段解碼器
6.3.7 二進制編碼器
6.4 多路復用器 281
6.4.1 門級多路復用器電路
6.4.2 擴展的多路復用器
6.4.3 多路復用器、多路分配器和匯流排
6.4.4 用Verilog實現多路復用器
參考資料 294
訓練題 295
練習題 296
第7章 其他組合構件 301
7.1 三態器件 302
7.1.1 三態緩衝器
7.1.2 標準MSI三態緩衝器
7.1.3 用Verilog實現三態輸出
7.1.4 用FPGA實現三態輸出
7.2 優先編碼器 312
7.2.1 級聯優先編碼器
7.2.2 用Verilog實現優先編碼器
7.3 異或門和奇偶校驗函式 320
7.3.1 異或門和異或非門
7.3.2 奇偶電路
7.3.3 奇偶校驗的套用
7.3.4 用Verilog實現異或門和奇偶電路
7.4 比較器 331
7.4.1 比較器的結構
7.4.2 疊代電路
7.4.3 疊代比較器電路
7.4.4 數值比較器
7.4.5 用HDL實現比較器
7.4.6 用Verilog實現比較器
7.4.7 比較器測試平台
7.4.8 比較器的性能測評
7.5 用Verilog實現隨機邏輯的例子 356
訓練題 363
練習題 364
第8章 組合算術元件 371
8.1 加法和減法 372
8.1.1 半加器和全加器
8.1.2 行波進位加法器
8.1.3 減法器
8.1.4 先行進位加法器
8.1.5 組間行波進位加法器
8.1.6 組間先行進位
8.1.7 MSI算術和邏輯單元
8.1.8 用Verilog實現加法器
8.1.9 並行前綴加法器
8.1.10 FPGA CARRY4元件
8.2 移位和循環 403
8.2.1 桶形移位器
8.2.2 用Verilog實現桶形移位器
8.3 乘法 416
8.3.1 組合乘法器的結構
8.3.2 用Verilog實現乘法
8.4 除法 426
8.4.1 基本無符號二進制除法算法
8.4.2 用Verilog實現除法
參考資料 433
訓練題 433
練習題 434
第9章 狀態機 439
9.1 狀態機基礎知識 440
9.2 狀態機結構和分析 443
9.2.1 狀態機結構
9.2.2 輸出邏輯
9.2.3 狀態機定時
9.2.4 採用D觸發器的狀態機分析
9.3 用狀態表設計狀態機 445
9.3.1 狀態表設計舉例
9.3.2 狀態最小化
9.3.3 狀態賦值
9.3.4 採用D觸發器綜合
9.3.5 狀態表之外
9.4 用狀態圖設計狀態機 472
9.4.1 雷鳥車尾燈舉例
9.5 用ASM圖設計狀態機 478
9.5.1 用ASM圖實現雷鳥車尾燈
9.6 用Verilog實現狀態機設計 483
參考資料 486
訓練題 487
練習題 490
第10章 時序邏輯元件 495
10.1 雙穩態元件 496
10.1.1 數字分析
10.1.2 模擬分析
10.1.3 亞穩態特性
10.2 鎖存器和觸發器 499
10.2.1 S - R鎖存器
10.2.2 –S - –R鎖存器
10.2.3 D鎖存器
10.2.4 邊沿觸發D觸發器
10.2.5 帶有使能端的邊沿觸發D觸發器
10.2.6 T觸發器
10.3 用Verilog實現鎖存器和觸發器 508
10.3.1 實例化語句和庫組件
10.3.2 行為化鎖存器和觸發器模型
10.3.3 更多關於用Verilog實現時鐘的討論
10.4 多位暫存器和鎖存器 522
10.4.1 MSI暫存器和鎖存器
10.4.2 用Verilog實現多位暫存器和鎖存器
10.5 鎖存器和雙穩態的套用 525
10.5.1 開關消顫
10.5.2 匯流排保持電路
10.6 時序型PLD 528
10.7 FPGA時序邏輯元件 531
10.8 反饋時序電路 534
10.8.1 基本分析
10.8.2 用多反饋迴路分析電路
10.8.3 反饋時序電路設計
10.8.4 用Verilog實現反饋時序電路
參考資料 544
訓練題 545
練習題 547
第11章 計數器和移位暫存器 553
11.1 計數器 554
11.1.1 行波計數器
11.1.2 同步計數器
11.1.3 4位通用計數器電路
11.1.4 二進制計數器狀態解碼
11.1.5 用Verilog實現計數器
11.2 移位暫存器 566
11.2.1 移位暫存器結構
11.2.2 移位暫存器型計數器
11.2.3 環形計數器
11.2.4 Johnson計數器
11.2.5 線性反饋移位暫存器型計數器
11.2.6 用Verilog實現移位暫存器
11.2.7 定時發生器舉例
11.2.8 LFSR舉例
11.3 疊代電路與時序電路 593
參考資料 596
訓練題 596
練習題 599
第12章 用Verilog實現狀態機 605
12.1 Verilog狀態機編碼風格 606
12.1.1 基本編碼風格
12.1.2 Verilog狀態機舉例
12.1.3 組合狀態存儲器和次態邏輯
12.1.4 復位輸入
12.1.5 用Verilog實現流水線的Moore輸出
12.1.6 不用狀態表的直接Verilog編碼
12.1.7 狀態機的抽取
12.2 Verilog狀態機測試平台 616
12.2.1 狀態機測試平台的構建方法
12.2.2 測試平台舉例
12.2.3 配置用於測試的次態邏輯
12.2.4 總結
12.3 1計數器 626
12.4 組合鎖 628
12.5 雷鳥車尾燈 632
12.6 重新構建交通燈控制器 637
12.7 猜謎遊戲 642
12.8 “無關”狀態編碼 646
12.9 狀態機的分解 648
12.9.1 猜謎遊戲的再討論
12.10 “三部曲”遊戲 656
參考資料 664
訓練題 664
練習題 666
第13章 時序電路設計實踐 673
13.1 時序電路文檔實踐 674
13.1.1 一般要求
13.1.2 邏輯符號
13.1.3 狀態機描述
13.1.4 定時圖和定時規格說明
13.2 同步設計方法論 681
13.2.1 同步系統結構
13.2.2 同步系統設計舉例
13.3 同步設計的難點 691
13.3.1 時鐘偏移
13.3.2 選通時鐘
13.3.3 異步輸入
13.4 同步器故障和亞穩定性 701
13.4.1 同步器故障
13.4.2 亞穩定性分辨時間
13.4.3 可靠同步器設計
13.4.4 亞穩定的定時分析
13.4.5 優質同步器
13.4.6 其他同步器設計
13.5 雙時鐘同步舉例 710
參考資料 729
訓練題 729
練習題 730
第14章 數字電路 733
14.1 CMOS邏輯電路 735
14.1.1 CMOS邏輯電平
14.1.2 MOS電晶體
14.1.3 基本CMOS反相器電路
14.1.4 CMOS與非門和異或門
14.1.5 扇入
14.1.6 非反相門
14.1.7 CMOS與或非門和或與非門
14.2 CMOS電路的電氣特性 745
14.2.1 概述
14.2.2 數據表和規格說明
14.3 CMOS的穩態電氣特性 748
14.3.1 邏輯電平和噪聲容限
14.3.2 帶電阻性負載的電路特性
14.3.3 非理想輸入時的電路特性
14.3.4 扇出
14.3.5 負載效應
14.3.6 不用的輸入端
14.3.7 CMOS器件是如何損壞的
14.4 CMOS的動態電氣特性 764
14.4.1 轉換時間
14.4.2 傳輸延遲
14.4.3 功率損耗
14.4.4 電流尖峰與去耦合電容
14.4.5 電感效應
14.4.6 同時切換和地電平彈跳
14.5 其他CMOS輸入和輸出結構 778
14.5.1 傳輸門
14.5.2 施密特觸發器輸入
14.5.3 三態輸出
14.5.4 漏極開路輸出
14.5.5 驅動LED及延遲
14.5.6 多源匯流排
14.5.7 線連邏輯
14.5.8 上拉電阻
14.6 CMOS邏輯系列 790
14.6.1 HC和HCT
14.6.2 AHC和AHCT
14.6.3 HC、HCT、AHC和AHCT的電氣特性
14.6.4 AC和ACT
14.6.5 FCT和FCT-T
14.7 低電壓CMOS邏輯和接口 798
14.7.1 3.3V LVTTL和LVCMOS的邏輯電平
14.7.2 5V容限輸入
14.7.3 5V容限輸出
14.7.4 TTL/LVTTL 接口小結
14.7.5 低於3.3V的邏輯電平
14.8 差分信號 803
參考資料 804
訓練題 805
練習題 808
第15章 ROM、RAM和FPGA 813
15.1 唯讀存儲器 814
15.1.1 ROM的內部結構
15.1.2 二維解碼器
15.1.3 商用ROM的類型
15.1.4 並行ROM的接口
15.1.5 並行ROM的定時
15.1.6 與非快閃記憶體的位元組串列接口
15.1.7 與非存儲器的定時和訪問頻寬
15.1.8 與非存儲器的存儲管理
15.2 讀/寫存儲器 833
15.3 靜態RAM 834
15.3.1 靜態RAM的輸入和輸出
15.3.2 靜態RAM的內部結構
15.3.3 靜態RAM的定時
15.3.4 標準異步SRAM
15.3.5 同步SRAM
15.4 動態RAM 844
15.4.1 動態RAM的結構
15.4.2 SDRAM的定時
15.4.3 DDR SDRAM
15.5 現場可程式門陣列 851
15.5.1 Xilinx 7系列的FPGA
15.5.2 CLB和其他邏輯資源
15.5.3 輸入/輸出塊
15.5.4 可程式互連
參考資料 863
訓練題 864
2.6.3Overflow
2.6.4Subtraction Rules
2.6.5Two’s-Complement and Unsigned Binary Numbers
2.7Ones’-Complement Addition and Subtraction52
2.8Binary Multiplication54
2.9Binary Division56
2.10Binary Codes for Decimal Numbers57
2.11Gray Code602.12Character Codes62
2.13Codes for Actions, Conditions, and States64
2.14n-Cubes and Distance66
2.15Codes for Detecting and Correcting Errors67
2.15.1Error-Detecting Codes
2.15.2Error-Correcting and Multiple-Error-Detecting Codes
2.15.3Hamming Codes
2.15.4CRC Codes
2.15.5Two-Dimensional Codes
2.15.6Checksum Codes
2.15.7m-out-of-n Codes
2.16Codes for Transmitting and Storing Serial Data78
2.16.1Parallel and Serial Data
2.16.2Serial Line CodesReferences82
Drill Problems83
Exercises85
3SWITCHING ALGEBRA AND COMBINATIONAL LOGIC89
3.1Switching Algebra91
3.1.1Axioms
3.1.2Single-Variable Theorems
3.1.3Two- and Three-Variable Theorems
3.1.4n-Variable Theorems
3.1.5Duality
3.1.6Standard Representations of Logic Functions
3.2Combinational-Circuit Analysis104
3.3Combinational-Circuit Synthesis110
3.3.1Circuit Descriptions and Designs
3.3.2Circuit Manipulations
3.3.3Combinational-Circuit Minimization
3.3.4Karnaugh Maps
3.4Timing Hazards122
3.4.1Static Hazards
3.4.2Finding Static Hazards Using Maps
3.4.3Dynamic Hazards
3.4.4Designing Hazard-Free CircuitsReferences126
Drill Problems128Exercises129
4DIGITAL DESIGN PRACTICES133
4.1Documentation Standards133
4.1.1Block Diagrams
4.1.2Gate Symbols
4.1.3Signal Names and Active Levels
4.1.4Active Levels for Pins
4.1.5Constant Logic Signals
4.1.6Bubble-to-Bubble Logic Design
4.1.7Signal Naming in HDL Models
4.1.8Drawing Layout
4.1.9Buses
4.1.10Additional Schematic Information
4.2Circuit Timing154
4.2.1Timing Diagrams
4.2.2Propagation Delay
4.2.3Timing Specifications
4.2.4Sample Timing Specifications
4.2.5Timing Analysis Tools
4.3HDL-Based Digital Design165
4.3.1HDL History
4.3.2Why HDLs?
4.3.3EDA Tool Suites for HDLs
4.3.4HDL-Based Design FlowReferences172
Drill Problems
174Exercises176
5VERILOG HARDWARE DESCRIPTION LANGUAGE177
5.1Verilog Models and Modules179
5.2Logic System, Nets, Variables, and Constants184
5.3Vectors and Operators189
5.4Arrays193
5.5Logical Operators and Expressions194
5.6Compiler Directives197
5.7Structural Models198
5.8Dataflow Models203
5.9Behavioral Models (Procedural Code)205
5.9.1Always Statements and Blocks
5.9.2Procedural Statements
5.9.3Inferred Latches
5.9.4Assignment Statements
5.9.5begin-end Blocks
5.9.6if and if-else Statements
5.9.7case Statements
5.9.8Looping Statements
5.10Functions and Tasks220
5.11The Time Dimension224
5.12Simulation225
5.13Test Benches226
5.14Verilog Features for Sequential Logic Design232
5.15Synthesis232
References233
Drill Problems234
Exercises235
6BASIC COMBINATIONAL LOGICELEMENTS237
6.1Read-Only Memories (ROMs)240
6.1.1ROMs and Truth Tables
6.1.2Using ROMs for Arbitrary Combinational Logic Functions
6.1.3FPGA Lookup Tables (LUTs)
6.2Combinational PLDs246
6.2.1Programmable Logic Arrays
6.2.2Programmable Array Logic Devices
6.3Decoding and Selecting250
6.3.1A More Mathy Decoder Definition
6.3.2Binary Decoders
6.3.3Larger Decoders
6.3.4Decoders in Verilog
6.3.5Custom Decoders
6.3.6Seven-Segment Decoders
6.3.7 Binary Encoders
6.4Multiplexing281
6.4.1Gate-Level Multiplexer Circuits
6.4.2Expanding Multiplexers
6.4.3Multiplexers, Demultiplexers, and Buses
6.4.4Multiplexers in Verilog
References294
Drill Problems295
Exercises296
7MORE COMBINATIONAL BUILDINGBLOCKS301
7.1Three-State Devices302
7.1.1Three-State Buffers
7.1.2Standard MSI Three-State Buffers
7.1.3Three-State Outputs in Verilog
7.1.4Three-State Outputs in FPGAs
7.2Priority Encoding312
7.2.1Cascading Priority Encoders
7.2.2Priority Encoders in Verilog
7.3Exclusive-OR Gates and Parity Functions320
7.3.1Exclusive-OR and Exclusive-NOR Gates
7.3.2Parity Circuits
7.3.3Parity-Checking Applications
7.3.4Exclusive-OR Gates and Parity Circuits in Verilog
7.4Comparing331
7.4.1Comparator Structure
7.4.2Iterative Circuits
7.4.3An Iterative Comparator Circuit
7.4.4Magnitude Comparators
7.4.5Comparators in HDLs
7.4.6Comparators in Verilog
7.4.7Comparator Test Benches
7.4.8Comparing Comparator Performance
7.5A Random-Logic Example in Verilog356
Drill Problems363
Exercises364
8COMBINATIONAL ARITHMETICELEMENTS371
8.1Adding and Subtracting372
8.1.1Half Adders and Full Adders
8.1.2Ripple Adders
8.1.3Subtractors
8.1.4Carry-Lookahead Adders
8.1.5Group Ripple Adders
8.1.6Group-Carry Lookahead
8.1.7MSI Arithmetic and Logic Units
8.1.8Adders in Verilog
8.1.9Parallel-Prefix Adders
8.1.10FPGA CARRY4 Element
8.2Shifting and Rotating403
8.2.1Barrel Shifters
8.2.2Barrel Shifters in Verilog
8.3Multiplying416
8.3.1Combinational Multiplier Structures
8.3.2Multiplication in Verilog
8.4Dividing426
8.4.1Basic Unsigned Binary Division Algorithm
8.4.2Division in VerilogReferences433
Drill Problems433
Exercises434
9STATE MACHINES439
9.1State-Machine Basics440
9.2State-Machine Structure and Analysis443
9.2.1State-Machine Structure
9.2.2Output Logic
9.2.3State-Machine Timing
9.2.4Analysis of State Machines with D Flip-Flops
9.3State-Machine Design with State Tables455
9.3.1State-Table Design Example
9.3.2State Minimization
9.3.3State Assignment
9.3.4Synthesis Using D Flip-Flops
9.3.5Beyond State Tables
9.4State-Machine Design with State Diagrams472
9.4.1T-Bird Tail Lights Example
9.5State-Machine Design with ASM Charts478
9.5.1T-Bird Tail Lights with ASM Charts
9.6State-Machine Design with Verilog483
References486
Drill Problems487
Exercises490
10SEQUENTIAL LOGIC ELEMENTS495
10.1Bistable Elements496
10.1.1Digital Analysis
10.1.2Analog Analysis
10.1.3Metastable Behavior
10.2Latches and Flip-Flops499
10.2.1S-R Latch
10.2.2S-R Latch
10.2.3D Latch
10.2.4Edge-Triggered D Flip-Flop
10.2.5Edge-Triggered D Flip-Flop with Enable
10.2.6T Flip-Flops
10.3Latches and Flip-Flops in Verilog508
10.3.1Instance Statements and Library Components
10.3.2Behavioral Latch and Flip-Flop Models
10.3.3More about clocking in Verilog
10.4Multibit Registers and Latches522
10.4.1MSI Registers and Latches
10.4.2Multibit Registers and Latches in Verilog
10.5Miscellaneous Latch and Bistable Applications525
10.5.1Switch Debouncing
10.5.2Bus-Holder Circuits
10.6Sequential PLDs528
10.7FPGA Sequential Logic Elements531
10.8Feedback Sequential Circuits534
10.8.1Basic Analysis
10.8.2Analyzing Circuits with Multiple Feedback Loops
10.8.3Feedback Sequential-Circuit Design
10.8.4Feedback Sequential Circuits in VerilogReferences544
Drill Problems545
Exercises547
11COUNTERS AND SHIFT REGISTERS553
11.1Counters554
11.1.1Ripple Counters
11.1.2Synchronous Counters
11.1.3A Universal 4-Bit Counter Circuit1
1.1.4Decoding Binary-Counter States
11.1.5Counters in Verilog
11.2Shift Registers566
11.2.1Shift-Register Structure
11.2.2Shift-Register Counters
11.2.3Ring Counters
11.2.4Johnson Counters
11.2.5Linear Feedback Shift-Register Counters
11.2.6Shift Registers in Verilog
11.2.7Timing-Generator Examples
11.2.8LFSR Examples
11.3Iterative versus Sequential Circuits593
References596
Drill Problems596
Exercises599
12STATE MACHINES IN VERILOG605
12.1Verilog State-Machine Coding Styles606
12.1.1Basic Coding Style
12.1.2A Verilog State-Machine Example
12.1.3Combined State Memory and Next-State Logic
12.1.4Reset Inputs
12.1.5Pipelined Moore Outputs in Verilog
12.1.6Direct Verilog Coding Without a State Table
12.1.7State-Machine Extraction
12.2Verilog State-Machine Test Benches616
12.2.1State-Machine Test-Bench Construction Methods
12.2.2Example Test Benches
12.2.3Instrumenting Next-State Logic for Testing
12.2.4In Summary
12.3Ones Counter626
12.4Combination Lock628
12.5T-Bird Tail Lights632
12.6Reinventing Traffic-Light Controllers637
12.7The Guessing Game642
12.8“Don’t-Care” State Encodings646
12.9Decomposing State Machines648
12.9.1The Guessing Game Again
12.10The Trilogy Game656
References664
Drill Problems664
Exercises666
13SEQUENTIAL-CIRCUIT DESIGNPRACTICES673
13.1Sequential-Circuit Documentation Practices674
13.1.1General Requirements
13.1.2Logic Symbols
13.1.3State-Machine Descriptions
13.1.4Timing Diagrams and Specifications
13.2Synchronous Design Methodology681
13.2.1Synchronous System Structure
13.2.2A Synchronous System Design Example
13.3Difficulties in Synchronous Design691
13.3.1Clock Skew
13.3.2Gating the Clock
13.3.3Asynchronous Inputs
13.4Synchronizer Failure and Metastability701
13.4.1Synchronizer Failure
13.4.2Metastability Resolution Time
13.4.3Reliable Synchronizer Design
13.4.4Analysis of Metastable Timing
13.4.5Better Synchronizers
13.4.6Other Synchronizer Designs
13.5Two-Clock Synchronization Example710
References729
Drill Problems729
Exercises730
14DIGITAL CIRCUITS733
14.1CMOS Logic Circuits735
14.1.1CMOS Logic Levels
14.1.2MOS Transistors
14.1.3Basic CMOS Inverter Circuit
14.1.4CMOS NAND and NOR Gates
14.1.5Fan-In
14.1.6Noninverting Gates
14.1.7CMOS AND-OR-INVERT and OR-AND-INVERT Gates
14.2Electrical Behavior of CMOS Circuits745
14.2.1Overview
14.2.2Data Sheets and Specifications
14.3CMOS Static Electrical Behavior748
14.3.1Logic Levels and Noise Margins
14.3.2Circuit Behavior with Resistive Loads
14.3.3Circuit Behavior with Nonideal Inputs
14.3.4Fanout
14.3.5Effects of Loading
14.3.6Unused Inputs
14.3.7How to Destroy a CMOS Device
14.4CMOS Dynamic Electrical Behavior764
14.4.1Transition Time
14.4.2Propagation Delay
14.4.3Power Consumption
14.4.4Current Spikes and Decoupling Capacitors
14.4.5Inductive Effects
14.4.6Simultaneous Switching and Ground Bounce
14.5Other CMOS Input and Output Structures778
14.5.1Transmission Gates
14.5.2Schmitt-Trigger Inputs
14.5.3Three-State Outputs
14.5.4Open-Drain Outputs
14.5.5Driving LEDs and Relays
14.5.6Multisource Buses
14.5.7Wired Logic
14.5.8Pull-Up Resistors
14.6CMOS Logic Families790
14.6.1HC and HCT
14.6.2AHC and AHCT
14.6.3HC, HCT, AHC, and AHCT Electrical Characteristics
14.6.4AC and ACT
14.6.5FCT and FCT-T
14.7Low-Voltage CMOS Logic and Interfacing798
14.7.13.3-V LVTTL and LVCMOS Logic Levels
14.7.25-V Tolerant Inputs
14.7.35-V Tolerant Outputs
14.7.4TTL/LVTTL Interfacing Summary
14.7.5Logic Levels Less Than 3.3 V
14.8Differential Signaling803
References804
Drill Problems805
Exercises808
15ROMS, RAMS, AND FPGAS813
15.1Read-Only Memory814
15.1.1Internal ROM Structure
15.1.2Two-Dimensional Decoding
15.1.3Commercial ROM Types
15.1.4Parallel-ROM Interfaces
15.1.5Parallel-ROM Timing
15.1.6Byte-Serial Interfaces for NAND Flash Memories
15.1.7NAND Memory Timing and Access Bandwidth
15.1.8Storage Management for NAND Memories
15.2Read/Write Memory833
15.3Static RAM834
15.3.1Static-RAM Inputs and Outputs
15.3.2Static-RAM Internal Structure
15.3.3Static-RAM Timing
15.3.4Standard Asynchronous SRAMs
15.3.5Synchronous SRAM
15.4Dynamic RAM844
15.4.1Dynamic-RAM Structure
15.4.2SDRAM Timing
15.4.3DDR SDRAMs
15.5Field-Programmable Gate Arrays (FPGAs)851
15.5.1Xilinx 7-Series FPGA Family
15.5.2CLBs and Other Logic Resources
15.5.3Input/Output Block
15.5.4Programmable InterconnectReferences863
Drill Problems864
Contents
目 錄
第1章 引言 1
1.1 關於數字設計 1
1.2 模擬與數字 3
1.3 模擬信號 7
1.4 數字邏輯信號 7
1.5 邏輯電路與門電路 9
1.6 數字設計的軟體方面 13
1.7 積體電路 16
1.8 邏輯序列與CMOS 19
1.9 CMOS邏輯電路 20
1.10 可程式器件 25
1.11 專用積體電路 27
1.12 印製電路板 28
1.13 數字設計層次 29
1.14 數字設計的重要目標 33
1.15 繼續學習 34
訓練題 34
第2章 數制系統和編碼 35
2.1 按位計數制系統 36
2.2 二進制、八進制和十六進制 37
2.3 二進制與十進制的轉換 39
2.4 二進制數的加法和減法 42
2.5 負數的表示 44
2.5.1 符號–數值表示法
2.5.2 補碼數制系統
2.5.3 二進制補碼錶示法
2.5.4 二進制反碼錶示法
2.5.5 余碼錶示法
2.6 二進制補碼的加法和減法 48
2.6.1 加法規則
2.6.2 圖示法
2.6.3 溢出
2.6.4 減法規則
2.6.5 二進制補碼與無符號二進制數
2.7 二進制反碼的加法和減法 52
2.8 二進制乘法 54
2.9 二進制除法 56
2.10 十進制數的二進制編碼 57
2.11 格雷碼 60
2.12 字元編碼 62
2.13 動作、條件和狀態的編碼 64
2.14 n維體與距離 66
2.15 檢錯碼和糾錯碼 67
2.15.1 檢錯碼
2.15.2 糾錯碼與多重檢錯碼
2.15.3 漢明碼
2.15.4 循環冗餘校驗碼
2.15.5 二維碼
2.15.6 校驗和碼
2.15.7 n中取m碼
2.16 用於串列數據傳輸與存儲的編碼 78
2.16.1 並行/串列數據
2.16.2 串列線路編碼
參考資料 82
訓練題 83
練習題 85
第3章 開關代數和組合邏輯 89
3.1 開關代數 91
3.1.1 公理
3.1.2 單變數定理
3.1.3 二變數定理和三變數定理
3.1.4 n變數定理
3.1.5 對偶性
3.1.6 邏輯函式的標準表示法
3.2 組合電路分析 104
3.3 組合電路綜合 110
3.3.1 電路描述與設計
3.3.2 電路處理
3.3.3 組合電路最小化
3.3.4 卡諾圖
3.4 定時冒險 122
3.4.1 靜態冒險
3.4.2 利用卡諾圖發現靜態冒險
3.4.3 動態冒險
3.4.4 設計無冒險電路
參考資料 126
訓練題 128
練習題 129
第4章 數字設計實踐 133
4.1 文檔標準 133
4.1.1 方框圖
4.1.2 門電路符號
4.1.3 信號名和有效電平
4.1.4 引腳的有效電平
4.1.5 圈到圈邏輯設計
4.1.6 HDL程式中的信號命名
4.1.7 繪製布局圖
4.1.8 匯流排
4.1.9 附加圖示信息
4.2 電路定時 154
4.2.1 定時圖
4.2.2 傳輸延遲
4.2.3 定時規格說明
4.2.4 採樣定時規格說明
4.2.5 定時分析工具
4.3 基於HDL的數字設計 165
4.3.1 HDL的歷史
4.3.2 為什麼用HDL
4.3.3 HDL的EDA工具套件
4.3.4 基於HDL的設計流程
參考資料 172
訓練題 174
練習題 176
第5章 Verilog硬體描述語言 177
5.1 Verilog模型和模組 179
5.2 邏輯系統、格線、變數和常量 184
5.3 向量和操作符 189
5.4 數組 193
5.5 邏輯操作符和表達式 194
5.6 編譯器指令 197
5.7 結構化模型 198
5.8 數據流模型 203
5.9 行為化模型(過程代碼) 205
5.9.1 always語句和程式塊
5.9.2 過程語句
5.9.3 推理出的鎖存器
5.9.4 賦值語句
5.9.5 begin-end程式塊
5.9.6 if和if-else語句
5.9.7 case語句
5.9.8 循環語句
5.10 函式和任務 220
5.11 時間維度 224
5.12 模擬 225
5.13 測試平台 226
5.14 時序邏輯設計的Verilog特性 232
5.15 綜合 232
參考資料 233
訓練題 234
練習題 235
第6章 基本組合邏輯元件 237
6.1 唯讀存儲器 240
6.1.1 ROM和真值表
6.1.2 ROM用於隨機組合邏輯函式
6.1.3 FPGA查詢表
6.2 組合PLD 246
6.2.1 可程式邏輯陣列
6.2.2 可程式陣列邏輯器件
6.3 解碼器和選擇器 250
6.3.1 更加“數學化”的解碼器定義
6.3.2 二進制解碼器
6.3.3 大型解碼器
6.3.4 用Verilog實現解碼器
6.3.5 定製的解碼器
6.3.6 七段解碼器
6.3.7 二進制編碼器
6.4 多路復用器 281
6.4.1 門級多路復用器電路
6.4.2 擴展的多路復用器
6.4.3 多路復用器、多路分配器和匯流排
6.4.4 用Verilog實現多路復用器
參考資料 294
訓練題 295
練習題 296
第7章 其他組合構件 301
7.1 三態器件 302
7.1.1 三態緩衝器
7.1.2 標準MSI三態緩衝器
7.1.3 用Verilog實現三態輸出
7.1.4 用FPGA實現三態輸出
7.2 優先編碼器 312
7.2.1 級聯優先編碼器
7.2.2 用Verilog實現優先編碼器
7.3 異或門和奇偶校驗函式 320
7.3.1 異或門和異或非門
7.3.2 奇偶電路
7.3.3 奇偶校驗的套用
7.3.4 用Verilog實現異或門和奇偶電路
7.4 比較器 331
7.4.1 比較器的結構
7.4.2 疊代電路
7.4.3 疊代比較器電路
7.4.4 數值比較器
7.4.5 用HDL實現比較器
7.4.6 用Verilog實現比較器
7.4.7 比較器測試平台
7.4.8 比較器的性能測評
7.5 用Verilog實現隨機邏輯的例子 356
訓練題 363
練習題 364
第8章 組合算術元件 371
8.1 加法和減法 372
8.1.1 半加器和全加器
8.1.2 行波進位加法器
8.1.3 減法器
8.1.4 先行進位加法器
8.1.5 組間行波進位加法器
8.1.6 組間先行進位
8.1.7 MSI算術和邏輯單元
8.1.8 用Verilog實現加法器
8.1.9 並行前綴加法器
8.1.10 FPGA CARRY4元件
8.2 移位和循環 403
8.2.1 桶形移位器
8.2.2 用Verilog實現桶形移位器
8.3 乘法 416
8.3.1 組合乘法器的結構
8.3.2 用Verilog實現乘法
8.4 除法 426
8.4.1 基本無符號二進制除法算法
8.4.2 用Verilog實現除法
參考資料 433
訓練題 433
練習題 434
第9章 狀態機 439
9.1 狀態機基礎知識 440
9.2 狀態機結構和分析 443
9.2.1 狀態機結構
9.2.2 輸出邏輯
9.2.3 狀態機定時
9.2.4 採用D觸發器的狀態機分析
9.3 用狀態表設計狀態機 445
9.3.1 狀態表設計舉例
9.3.2 狀態最小化
9.3.3 狀態賦值
9.3.4 採用D觸發器綜合
9.3.5 狀態表之外
9.4 用狀態圖設計狀態機 472
9.4.1 雷鳥車尾燈舉例
9.5 用ASM圖設計狀態機 478
9.5.1 用ASM圖實現雷鳥車尾燈
9.6 用Verilog實現狀態機設計 483
參考資料 486
訓練題 487
練習題 490
第10章 時序邏輯元件 495
10.1 雙穩態元件 496
10.1.1 數字分析
10.1.2 模擬分析
10.1.3 亞穩態特性
10.2 鎖存器和觸發器 499
10.2.1 S - R鎖存器
10.2.2 –S - –R鎖存器
10.2.3 D鎖存器
10.2.4 邊沿觸發D觸發器
10.2.5 帶有使能端的邊沿觸發D觸發器
10.2.6 T觸發器
10.3 用Verilog實現鎖存器和觸發器 508
10.3.1 實例化語句和庫組件
10.3.2 行為化鎖存器和觸發器模型
10.3.3 更多關於用Verilog實現時鐘的討論
10.4 多位暫存器和鎖存器 522
10.4.1 MSI暫存器和鎖存器
10.4.2 用Verilog實現多位暫存器和鎖存器
10.5 鎖存器和雙穩態的套用 525
10.5.1 開關消顫
10.5.2 匯流排保持電路
10.6 時序型PLD 528
10.7 FPGA時序邏輯元件 531
10.8 反饋時序電路 534
10.8.1 基本分析
10.8.2 用多反饋迴路分析電路
10.8.3 反饋時序電路設計
10.8.4 用Verilog實現反饋時序電路
參考資料 544
訓練題 545
練習題 547
第11章 計數器和移位暫存器 553
11.1 計數器 554
11.1.1 行波計數器
11.1.2 同步計數器
11.1.3 4位通用計數器電路
11.1.4 二進制計數器狀態解碼
11.1.5 用Verilog實現計數器
11.2 移位暫存器 566
11.2.1 移位暫存器結構
11.2.2 移位暫存器型計數器
11.2.3 環形計數器
11.2.4 Johnson計數器
11.2.5 線性反饋移位暫存器型計數器
11.2.6 用Verilog實現移位暫存器
11.2.7 定時發生器舉例
11.2.8 LFSR舉例
11.3 疊代電路與時序電路 593
參考資料 596
訓練題 596
練習題 599
第12章 用Verilog實現狀態機 605
12.1 Verilog狀態機編碼風格 606
12.1.1 基本編碼風格
12.1.2 Verilog狀態機舉例
12.1.3 組合狀態存儲器和次態邏輯
12.1.4 復位輸入
12.1.5 用Verilog實現流水線的Moore輸出
12.1.6 不用狀態表的直接Verilog編碼
12.1.7 狀態機的抽取
12.2 Verilog狀態機測試平台 616
12.2.1 狀態機測試平台的構建方法
12.2.2 測試平台舉例
12.2.3 配置用於測試的次態邏輯
12.2.4 總結
12.3 1計數器 626
12.4 組合鎖 628
12.5 雷鳥車尾燈 632
12.6 重新構建交通燈控制器 637
12.7 猜謎遊戲 642
12.8 “無關”狀態編碼 646
12.9 狀態機的分解 648
12.9.1 猜謎遊戲的再討論
12.10 “三部曲”遊戲 656
參考資料 664
訓練題 664
練習題 666
第13章 時序電路設計實踐 673
13.1 時序電路文檔實踐 674
13.1.1 一般要求
13.1.2 邏輯符號
13.1.3 狀態機描述
13.1.4 定時圖和定時規格說明
13.2 同步設計方法論 681
13.2.1 同步系統結構
13.2.2 同步系統設計舉例
13.3 同步設計的難點 691
13.3.1 時鐘偏移
13.3.2 選通時鐘
13.3.3 異步輸入
13.4 同步器故障和亞穩定性 701
13.4.1 同步器故障
13.4.2 亞穩定性分辨時間
13.4.3 可靠同步器設計
13.4.4 亞穩定的定時分析
13.4.5 優質同步器
13.4.6 其他同步器設計
13.5 雙時鐘同步舉例 710
參考資料 729
訓練題 729
練習題 730
第14章 數字電路 733
14.1 CMOS邏輯電路 735
14.1.1 CMOS邏輯電平
14.1.2 MOS電晶體
14.1.3 基本CMOS反相器電路
14.1.4 CMOS與非門和異或門
14.1.5 扇入
14.1.6 非反相門
14.1.7 CMOS與或非門和或與非門
14.2 CMOS電路的電氣特性 745
14.2.1 概述
14.2.2 數據表和規格說明
14.3 CMOS的穩態電氣特性 748
14.3.1 邏輯電平和噪聲容限
14.3.2 帶電阻性負載的電路特性
14.3.3 非理想輸入時的電路特性
14.3.4 扇出
14.3.5 負載效應
14.3.6 不用的輸入端
14.3.7 CMOS器件是如何損壞的
14.4 CMOS的動態電氣特性 764
14.4.1 轉換時間
14.4.2 傳輸延遲
14.4.3 功率損耗
14.4.4 電流尖峰與去耦合電容
14.4.5 電感效應
14.4.6 同時切換和地電平彈跳
14.5 其他CMOS輸入和輸出結構 778
14.5.1 傳輸門
14.5.2 施密特觸發器輸入
14.5.3 三態輸出
14.5.4 漏極開路輸出
14.5.5 驅動LED及延遲
14.5.6 多源匯流排
14.5.7 線連邏輯
14.5.8 上拉電阻
14.6 CMOS邏輯系列 790
14.6.1 HC和HCT
14.6.2 AHC和AHCT
14.6.3 HC、HCT、AHC和AHCT的電氣特性
14.6.4 AC和ACT
14.6.5 FCT和FCT-T
14.7 低電壓CMOS邏輯和接口 798
14.7.1 3.3V LVTTL和LVCMOS的邏輯電平
14.7.2 5V容限輸入
14.7.3 5V容限輸出
14.7.4 TTL/LVTTL 接口小結
14.7.5 低於3.3V的邏輯電平
14.8 差分信號 803
參考資料 804
訓練題 805
練習題 808
第15章 ROM、RAM和FPGA 813
15.1 唯讀存儲器 814
15.1.1 ROM的內部結構
15.1.2 二維解碼器
15.1.3 商用ROM的類型
15.1.4 並行ROM的接口
15.1.5 並行ROM的定時
15.1.6 與非快閃記憶體的位元組串列接口
15.1.7 與非存儲器的定時和訪問頻寬
15.1.8 與非存儲器的存儲管理
15.2 讀/寫存儲器 833
15.3 靜態RAM 834
15.3.1 靜態RAM的輸入和輸出
15.3.2 靜態RAM的內部結構
15.3.3 靜態RAM的定時
15.3.4 標準異步SRAM
15.3.5 同步SRAM
15.4 動態RAM 844
15.4.1 動態RAM的結構
15.4.2 SDRAM的定時
15.4.3 DDR SDRAM
15.5 現場可程式門陣列 851
15.5.1 Xilinx 7系列的FPGA
15.5.2 CLB和其他邏輯資源
15.5.3 輸入/輸出塊
15.5.4 可程式互連
參考資料 863
訓練題 864

相關詞條

熱門詞條

聯絡我們