第1章 設計概念 1
1.1 數字硬件 1
1.1.1 標準芯片 2
1.1.2 可編程邏輯器件 2
1.1.3 定制芯片 3
1.2 設計過程 3
1.3 數字硬件的設計 4
1.3.1 基本設計循環(huán) 5
1.3.2 計算機的結構 5
1.3.3 數字硬件單元的設計 6
1.4 本書中的邏輯電路設計 8
1.5 理論和實踐 8
參考文獻 9
第2章 邏輯電路入門 10
2.1 變量和函數 10
2.2 反相 12
2.3 真值表 12
2.4 邏輯門和邏輯網絡 13
2.5 布爾代數 15
2.5.1 維恩圖 18
2.5.2 符號和術語 20
2.5.3 運算的優(yōu)先級別 20
2.6 用與門、或門和非門進行綜合 21
2.7 與非以及或非邏輯網絡 26
2.8 設計舉例 29
2.8.1 三路燈光控制 29
2.8.2 多路選擇器電路 30
2.9 計算機輔助設計工具簡介 31
2.9.1 設計輸入 32
2.9.2 綜合 33
2.9.3 功能仿真 33
2.9.4 物理設計 33
2.9.5 時序仿真 34
2.9.6 芯片配置 34
2.10 Verilog 簡介 35
2.10.1 邏輯電路的結構描述 35
2.10.2 邏輯電路的行為描述 37
2.10.3 編寫Verilog代碼必須注意的
關鍵點 38
2.11 小結 39
2.12 問題求解舉例 39
練習題 42
參考文獻 45
第3章 實現技術 46
3.1 晶體管開關 46
3.2 NMOS邏輯門 48
3.3 CMOS邏輯門 50
3.4 負邏輯系統 53
3.5 標準芯片 55
3.6 可編程邏輯器件 56
3.6.1 可編程邏輯陣列 57
3.6.2 可編程陣列邏輯 58
3.6.3 PLA和PAL的編程 60
3.6.4 復雜可編程邏輯器件 61
3.6.5 現場可編程門陣列 63
3.6.6 用CAD工具在CPLD 和FPGA
上實現邏輯電路 66
3.6.7 CPLD和FPGA的應用 66
3.7 定制芯片、標準單元和門陣列 66
3.8 實際問題 68
3.8.1 MOSFET晶體管的制造和行為 68
3.8.2 MOSFET晶體管的導通電阻 71
3.8.3 邏輯門的電平 71
3.8.4 噪聲容限 72
3.8.5 邏輯門的動態(tài)操作 73
3.8.6 邏輯門的功率消耗 75
3.8.7 通過晶體管開關傳遞1和0 76
3.8.8 邏輯門的扇入和扇出 77
3.9 傳輸門 81
3.9.1 異或門 81
3.9.2 多路選擇器電路 82
3.10 SPLD、CPLD和 FPGA 的實現
細節(jié) 82
3.11 小結 88
3.12 問題求解舉例 88
練習題 93
參考文獻 98
第4章 邏輯函數的優(yōu)化實現 99
4.1 卡諾圖 99
4.2 最小化策略 104
4.2.1 專業(yè)術語 105
4.2.2 最小化步驟 106
4.3 和之積形式的化簡 108
4.4 非完全指定函數 109
4.5 多輸出電路 110
4.6 多級綜合 112
4.6.1 提取公因子 113
4.6.2 函數分解 115
4.6.3 多級與非以及或非電路 119
4.7 多級電路的分析 120
4.8 立方體表示法 124
4.9 列表法化簡 126
4.9.1 質蘊涵項的產生 127
4.9.2 最小覆蓋的確定 128
4.9.3 列表法小結 131
4.10 使用立方體表示法最小化函數 132
4.10.1 本質蘊涵項的確定 133
4.10.2 求解最小覆蓋的完整步驟 135
4.11 一些實際問題的考慮 137
4.12 由Verilog代碼綜合得到電路舉例 137
4.13 小結 140
4.14 問題求解舉例 140
練習題 144
參考文獻 148
第5章 數的表示和算術電路 150
5.1 數位的表示法 150
5.1.1 無符號整數 150
5.1.2 十進制數與二進制數之間的
轉換 151
5.1.3 八進制數和十六進制數的表示 151
5.2 無符號數的加法 153
5.2.1 全加器的分解 155
5.2.2 行波進位加法器 155
5.2.3 設計舉例 156
5.3 有符號數 157
5.3.1 負數 157
5.3.2 加法和減法 158
5.3.3 加法器和減法器單元 160
5.3.4 基數補碼方案 161
5.3.5 算術溢出 164
5.3.6 電路的性能問題 164
5.4 快速加法器 165
5.5 使用CAD工具設計算術電路 170
5.5.1 使用原理圖編輯工具設計算術
電路 170
5.5.2 使用Verilog設計算術電路 172
5.5.3 使用向量信號 173
5.5.4 使用自動生成語句 174
5.5.5 Verilog中的線網和變量 175
5.5.6 算術賦值語句 176
5.5.7 Verilog代碼中數的表示 178
5.6 乘法 180
5.6.1 無符號數的陣列乘法器 181
5.6.2 有符號數的乘法 182
5.7 數的其他表示方法 182
5.7.1 定點數 183
5.7.2 浮點數 183
5.7.3 二-十進制編碼 184
5.8 ASCII字符碼 186
5.9 問題求解舉例 188
練習題 191
參考文獻 193
第6章 組合電路構件塊 194
6.1 多路選擇器 194
6.1.1 用多路選擇器的邏輯函數的
綜合 197
6.1.2 用香農展開的多路選擇器綜合 198
6.2 譯碼器 202
6.3 編碼器 205
6.3.1 二進制編碼器 205
6.3.2 優(yōu)先級編碼器 206
6.4 碼型轉換器 207
6.5 算術比較電路 207
6.6 用Verilog表示組合電路 208
6.6.1 條件操作符 208
6.6.2 if-else 語句 209
6.6.3 case 語句 211
6.6.4 for 循環(huán)語句 215
6.6.5 Verilog操作符 216
6.6.6 生成結構 220
6.6.7 任務和函數 220
6.7 小結 222
6.8 問題求解舉例 223
練習題 228
參考文獻 230
第7章 觸發(fā)器、寄存器、計數器和簡單
處理器 232
7.1 基本鎖存器 233
7.2 門控SR鎖存器 234
7.3 門控D鎖存器 236
7.4 主從D觸發(fā)器和沿觸發(fā)的D觸發(fā)器 238
7.4.1 主從D觸發(fā)器 238
7.4.2 沿觸發(fā)的D觸發(fā)器 239
7.4.3 有清零端和預置信號的
D觸發(fā)器 241
7.4.4 觸發(fā)器的時序參數 242
7.5 T觸發(fā)器 243
7.6 JK觸發(fā)器 244
7.7 術語小結 244
7.8 寄存器 245
7.8.1 移位寄存器 245
7.8.2 并行存取的移位寄存器 246
7.9 計數器 247
7.9.1 異步計數器 247
7.9.2 同步計數器 248
7.9.3 可并行置數的計數器 251
7.10 同步復位 252
7.11 其他類型的計數器 254
7.11.1 BCD計數器 254
7.11.2 環(huán)形計數器 255
7.11.3 Johnson計數器 256
7.11.4 計數器設計要點 256
7.12 用CAD工具在設計中加入存儲
元件 256
7.12.1 在電路原理圖中添加存儲
元件 256
7.12.2 用Verilog代碼實現存儲元件 258
7.12.3 阻塞賦值和非阻塞賦值 259
7.12.4 組合邏輯電路的非阻塞賦值 261
7.12.5 具有清零功能的觸發(fā)器 261
7.13 用CAD工具在設計中加入寄存器
和計數器 262
7.13.1 在電路原理圖中添加寄存器和
計數器 262
7.13.2 在Verilog代碼中使用庫模塊 264
7.13.3 在Verilog代碼中使用寄存器
和計數器結構 264
7.14 設計舉例 267
7.14.1 總線結構 267
7.14.2 簡單的處理器 275
7.14.3 反應計時器 283
7.14.4 寄存器傳輸級代碼 286
7.15 觸發(fā)器電路的時序分析 286
7.16 小結 288
7.17 問題求解舉例 289
練習題 292
參考文獻 296
第8章 同步時序電路 298
8.1 基本設計步驟 299
8.1.1 狀態(tài)圖 299
8.1.2 狀態(tài)表 300
8.1.3 狀態(tài)分配 300
8.1.4 觸發(fā)器的選擇以及下一個狀態(tài)
和輸出表達式的推導 301
8.1.5 時序圖 302
8.1.6 設計步驟小結 303
8.2 狀態(tài)分配問題 306
8.3 米利型狀態(tài)模型 308
8.4 用CAD工具設計有限狀態(tài)機 311
8.4.1 摩爾型有限狀態(tài)機的Verilog
代碼 312
8.4.2 Verilog代碼的綜合 312
8.4.3 電路的仿真和測試 314
8.4.4 另一種風格的Verilog代碼 314
8.4.5 用CAD工具的設計步驟小結 316
8.4.6 在Verilog代碼中進行狀態(tài)分配 316
8.4.7 用Verilog語句來編寫米利型
有限狀態(tài)機 317
8.5 串行加法器舉例 318
8.5.1 用米利型有限狀態(tài)機實現的
串行加法器 318
8.5.2 用摩爾型有限狀態(tài)機實現的
串行加法器 320
8.5.3 串行加法器的Verilog 代碼 321
8.6 狀態(tài)最小化 324
8.6.1 劃分最小化的步驟 324
8.6.2 未完全指定的有限狀態(tài)機 328
8.7 用時序電路方法設計計數器 329
8.7.1 模8計數器的狀態(tài)圖和狀態(tài)表 330
8.7.2 狀態(tài)分配 330
8.7.3 用D觸發(fā)器實現的計數器 331
8.7.4 用JK觸發(fā)器實現的計數器 332
8.7.5 舉例:一個不同的計數器 335
8.8 用作仲裁器電路的有限狀態(tài)機 336
8.8.1 仲裁器電路的實現 338
8.8.2 有限狀態(tài)機輸出延遲的最小化 339
8.8.3 小結 340
8.9 同步時序電路的分析 340
8.10 算法狀態(tài)機圖 343
8.11 時序電路的形式化模型 345
8.12 小結 346
8.13 問題求解舉例 346
練習題 352
參考文獻 355
第9章 異步時序電路 356
9.1 異步行為 356
9.2 異步電路分析 358
9.3 異步電路綜合 363
9.4 狀態(tài)化簡 372
9.5 狀態(tài)分配 380
9.5.1 轉移圖 381
9.5.2 未指定的下一個狀態(tài)項的利用 383
9.5.3 使用附加狀態(tài)變量進行的狀態(tài)
分配 386
9.5.4 獨熱狀態(tài)分配 388
9.6 冒險 389
9.6.1 靜態(tài)冒險 390
9.6.2 動態(tài)冒險 393
9.6.3 冒險的意義 394
9.7 一個完整的設計實例 394
9.8 小結 398
9.9 問題求解舉例 399
練習題 403
參考文獻 406
第10章 數字系統設計 407
10.1 構件塊電路 407
10.1.1 有使能輸入的觸發(fā)器和寄存器 407
10.1.2 有使能輸入的移位寄存器 408
10.1.3 靜態(tài)隨機存取存儲器 408
10.1.4 可編程邏輯器件中的SRAM塊 410
10.2 設計舉例 410
10.2.1 位計數電路 410
10.2.2 算法狀態(tài)機圖蘊涵的時序
信息 411
10.2.3 移位相加實現的乘法器 413
10.2.4 除法器 418
10.2.5 算術平均值 425
10.2.6 排序操作 428
10.3 時鐘同步 435
10.3.1 時鐘偏差 436
10.3.2 觸發(fā)器的時序參數 436
10.3.3 觸發(fā)器的異步輸入 438
10.3.4 開關的抖動 438
10.4 小結 439
練習題 439
參考文獻 442
第11章 邏輯電路測試 443
11.1 故障模型 443
11.1.1 固滯模型 443
11.1.2 單個故障和多個故障 443
11.1.3 CMOS電路 444
11.2 測試集的復雜度 444
11.3 路徑的敏感化 445
11.4 樹狀結構的電路 448
11.5 隨機測試 448
11.6 時序電路的測試 450
11.7 內建自測試 453
11.7.1 內建邏輯塊觀察器 456
11.7.2 簽字分析 457
11.7.3 邊界掃描 457
11.8 印制電路板 458
11.8.1 印制電路板的測試 459
11.8.2 測試儀器 460
11.9 小結 460
練習題 461
參考文獻 462
第12章 計算機輔助設計工具 464
12.1 綜合 464
12.1.1 網表的生成 465
12.1.2 門的優(yōu)化 465
12.1.3 技術映象 467
12.2 物理設計 469
12.2.1 布局 469
12.2.2 布線 470
12.2.3 靜態(tài)時序分析 471
12.3 小結 472
參考文獻 472
部分習題答案 474
*附錄A Verilog參考資料
附錄B 輔導教材1—使用Quartus II
計算機輔助設計軟件
附錄C 輔導教材2—用Altera
器件實現電路
附錄D 輔導教材3—在FPGA
中的物理實現
附錄E 商業(yè)器件