數(shù)字設(shè)計:原理與實踐(原書第5版)
定 價:139 元
叢書名:計算機(jī)科學(xué)叢書
- 作者:[美]約翰 F.韋克利(John F. Wakerly)
- 出版時間:2019/7/1
- ISBN:9787111629412
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TN79
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書為讀者提供了高級(HDL)、低級(電子電路)以及完整的“各種中間級”(門電路、觸發(fā)器和一些較高級的數(shù)字設(shè)計構(gòu)件)層次的基礎(chǔ)知識,介紹了與組合電路、時序電路等相關(guān)的各方面內(nèi)容(涉及數(shù)制編碼、Verilog模塊、狀態(tài)機(jī)、FPGA、ROM、RAM以及CMOS邏輯系列等),并提供了大量的設(shè)計實例以及具有指導(dǎo)意義的習(xí)題。
本書可作為電氣工程、計算機(jī)工程或計算機(jī)科學(xué)專業(yè)數(shù)字邏輯設(shè)計課程的入門與進(jìn)階教材。
前 言
Digital Design: Principles and Practices, Fifth Edition
本書寫給所有需要設(shè)計和構(gòu)建真正的數(shù)字電路的讀者。為達(dá)到這個目的,讀者必須掌握基本原理,同時還必須理解它們在真實世界中的工作情況。本書正是基于這種理念寫作而成的,因此,確定了“原理與實踐”這個主題。
在過去的30年里,隨著集成電路的速度和集成度的快速提高,數(shù)字設(shè)計實踐經(jīng)歷了非常大的轉(zhuǎn)變。過去,數(shù)字設(shè)計者用成千上萬的門電路和觸發(fā)器來構(gòu)建系統(tǒng),專業(yè)課程的重點就是最小化和有效地利用芯片及板級資源。
現(xiàn)今,一個芯片可以包含幾千萬個晶體管并且可以利用編程的方式構(gòu)建片上系統(tǒng)。過去要實現(xiàn)這樣的系統(tǒng),需要用幾百個包含了上百萬的單個門電路和觸發(fā)器的分立芯片來構(gòu)造。當(dāng)前成功的產(chǎn)品開發(fā)更多地受限于設(shè)計團(tuán)隊正確、完整地定義產(chǎn)品詳細(xì)功能的能力,而不是受限于團(tuán)隊將需要的所有電路集成到一個電路板或芯片上的能力。因此,現(xiàn)代專業(yè)課程的重點是設(shè)計方法論和軟件工具,包括硬件描述語言(HDL)。設(shè)計團(tuán)隊利用HDL可以完成非常大型的分層數(shù)字系統(tǒng)的設(shè)計。
一方面,利用HDL,我們看到典型設(shè)計的抽象層次移向單個門電路和觸發(fā)器之上的更高層次。而與此同時,芯片級和電路板級的數(shù)字電路的速度和集成度的提高,又迫使許多數(shù)字設(shè)計者在較低的電子電路級更具競爭力。
大多數(shù)稱職且非常成功的數(shù)字設(shè)計者,都能夠熟練地使用或者至少是精通上述兩個抽象層次。本書提供了高級(HDL)、低級(電子電路)以及完整的“各種中間級”(門電路、觸發(fā)器和一些較高級的數(shù)字設(shè)計構(gòu)件)層次的基礎(chǔ)知識。
目標(biāo)讀者
本書可以作為電氣工程、計算機(jī)工程或計算機(jī)科學(xué)專業(yè)數(shù)字邏輯設(shè)計課程的入門與進(jìn)階教材。那些不熟悉基本電子學(xué)概念(electronics concept)或者對數(shù)字器件的電氣特性不感興趣的計算機(jī)科學(xué)專業(yè)的學(xué)生可以跳過第14章而掌握第1章的基礎(chǔ)知識即可,書中的其他部分已盡可能地獨立于這部分內(nèi)容。另一方面,具有基本電子學(xué)基礎(chǔ)的讀者,則可通過閱讀第14章的內(nèi)容來快速掌握數(shù)字電子學(xué)知識。此外,那些不具備電子學(xué)基礎(chǔ)的學(xué)生,可以通過閱讀作者網(wǎng)站(www.ddpp.com)上的電子教材(20頁)而獲得基礎(chǔ)知識。
雖然本書是入門級的,但比起一般的普通入門教材,它卻包含更多的內(nèi)容。我希望典型的課程采用書中不超過三分之二的內(nèi)容,但是,每門課程所用到的是不同的三分之二。因此,我讓各位教師或讀者按照自己的需要去決定閱讀內(nèi)容。盡管如此,為了有助于選擇,我已經(jīng)在一些可選章節(jié)(optional section)的標(biāo)題上打了星號。一般情況下,可以跳過這些章節(jié)而不影響后續(xù)必選章節(jié)的連貫性。而且,“方框注釋”(boxed comment)中的材料通常都是可選的。
毫無疑問,有些人把本書當(dāng)作進(jìn)階教程(second course)和實驗教程(laboratory course)來使用。高年級學(xué)生可以跳過基礎(chǔ)部分而直接進(jìn)到感興趣的部分。一旦具備了基礎(chǔ)知識,一些最重要且有趣的內(nèi)容(fun stuff)便是在許多章節(jié)和數(shù)字設(shè)計例子中采用Verilog。
并不像看起來那么長
有幾個書評家抱怨本書之前的版本都太長了,目前的這個版本要稍短一些,但還是請記。
你并不需要閱讀所有的內(nèi)容。對大多數(shù)讀者來說可選讀的內(nèi)容都標(biāo)記有“*”。
一些“方框注釋”中的內(nèi)容通常也是可選讀的。
我遵照“參考質(zhì)量”標(biāo)準(zhǔn)撰寫本書,內(nèi)容覆蓋廣泛,因此讀者可以在后續(xù)課程中參考本書,或在以后的工作中,使用本書來更新你的知識甚或?qū)W習(xí)新知識。
各章描述
第1章給出了一些基本的定義和一些重要話題的預(yù)覽,以及數(shù)字電路的內(nèi)容,使讀者在不深入閱讀第14章的情況下,也可以完整閱讀書中其他的內(nèi)容。
第2章介紹二進(jìn)制數(shù)制和編碼。已經(jīng)從軟件課程中熟悉了二進(jìn)制數(shù)制的讀者,仍需要閱讀2.10~2.13節(jié),以便理解硬件是如何使用二進(jìn)制編碼的。高年級的學(xué)生可以閱讀2.14節(jié)和2.15節(jié),其中對檢錯碼進(jìn)行了很好的介紹。每個讀者都應(yīng)該閱讀2.16.1節(jié)的內(nèi)容,因為在許多現(xiàn)代系統(tǒng)中都要用到它。
第3章講述組合邏輯設(shè)計原理,包括開關(guān)代數(shù),以及組合電路分析、綜合與最小化。
第4章從文檔標(biāo)準(zhǔn)開始介紹各種數(shù)字設(shè)計實踐,文檔標(biāo)準(zhǔn)是設(shè)計者需要掌握的最重要的內(nèi)容。然后介紹時序的概念,特別是組合型電路的時序,最后是關(guān)于HDL、設(shè)計流程和工具的討論。
第5章介紹Verilog硬件描述語言。前幾節(jié)需要通讀,但部分讀者可能希望跳過其余幾節(jié)而只在需要時再來閱讀,因為新的Verilog結(jié)構(gòu)在后續(xù)章節(jié)用到時才會講述(主要是第6章)。
第6章描述了兩個“通用”組合邏輯元件ROM和PLD。然后講述兩個最常用的功能構(gòu)件—譯碼器和多路復(fù)用器,其中每一個都會給出門級和基于Verilog的設(shè)計。讀者可以從這里直接跳到第9章的狀態(tài)機(jī),然后再回到第7章和第8章。
第7章繼續(xù)討論門級和用Verilog實現(xiàn)的組合型構(gòu)件,包括三態(tài)器件、優(yōu)先編碼器、異或和奇偶函數(shù)以及比較器,然后用一個非平凡“隨機(jī)邏輯”函數(shù)的Verilog設(shè)計實例引出結(jié)論。
第8章講述實現(xiàn)算術(shù)功能的組合型電路,包括加法和減法、移位、乘法和除法。
第9章介紹使用D觸發(fā)器的傳統(tǒng)狀態(tài)機(jī),包括采用狀態(tài)表、狀態(tài)圖、ASM圖和Verilog的狀態(tài)機(jī)的分析和綜合。
第10章介紹其
目 錄
Digital Design: Principles and Practices, Fifth Edition
出版者的話
譯者序
前言
第1章 引言1
1.1 關(guān)于數(shù)字設(shè)計1
1.2 模擬與數(shù)字2
1.3 模擬信號5
1.4 數(shù)字邏輯信號5
1.5 邏輯電路與門電路6
1.6 數(shù)字設(shè)計的軟件技術(shù)9
1.7 集成電路11
1.8 邏輯族和CMOS13
1.9 CMOS邏輯電路13
1.10 可編程器件17
1.11 專用集成電路19
1.12 印制電路板19
1.13 數(shù)字設(shè)計層次20
1.14 成本最小化22
1.15 繼續(xù)學(xué)習(xí)23
訓(xùn)練題23
第2章 數(shù)制和編碼24
2.1 按位計數(shù)制24
2.2 二進(jìn)制、八進(jìn)制和十六進(jìn)制25
2.3 二–十進(jìn)制轉(zhuǎn)換27
2.4 二進(jìn)制數(shù)的加法和減法29
2.5 負(fù)數(shù)的表示31
2.5.1 原碼表示法31
2.5.2 補(bǔ)碼數(shù)制31
2.5.3 二進(jìn)制補(bǔ)碼表示法32
*2.5.4 二進(jìn)制反碼表示法33
*2.5.5 余碼表示法33
2.6 二進(jìn)制補(bǔ)碼的加法和減法33
2.6.1 加法規(guī)則33
2.6.2 圖示法34
2.6.3 溢出35
2.6.4 減法規(guī)則35
2.6.5 二進(jìn)制補(bǔ)碼與無符號二進(jìn)制數(shù)36
*2.7 二進(jìn)制反碼的加法和減法37
*2.8 二進(jìn)制乘法38
*2.9 二進(jìn)制除法39
*2.10 十進(jìn)制數(shù)的二進(jìn)制編碼40
2.11 格雷碼42
*2.12 字符編碼43
2.13 動作、條件和狀態(tài)的編碼45
*2.14 n維體與距離46
*2.15 檢錯碼和糾錯碼47
2.15.1 檢錯碼48
2.15.2 糾錯碼與多重檢錯碼49
2.15.3 漢明碼51
2.15.4 循環(huán)冗余校驗碼53
2.15.5 二維碼53
2.15.6 校驗和碼55
2.15.7 n中取m碼55
2.16 用于串行數(shù)據(jù)傳輸與存儲的編碼55
2.16.1 并行/串行數(shù)據(jù)55
*2.16.2 串行線路編碼56
參考資料58
訓(xùn)練題59
練習(xí)題61
第3章 開關(guān)代數(shù)和組合邏輯64
3.1 開關(guān)代數(shù)65
3.1.1 公理66
3.1.2 單變量定理67
3.1.3 二變量定理和三變量定理68
3.1.4 n變量定理69
3.1.5 對偶性71
3.1.6 邏輯函數(shù)的標(biāo)準(zhǔn)表示法72
3.2 組合電路分析74
3.3 組合電路的綜合79
3.3.1 電路描述與設(shè)計80
3.3.2 電路處理82
3.3.3 組合電路最小化85
*3.3.4 卡諾圖86
*3.4 時序冒險88
3.4.1 靜態(tài)冒險88
3.4.2 利用卡諾圖發(fā)現(xiàn)靜態(tài)冒險89
3.4.3 動態(tài)冒險91
3.4.4 設(shè)計無冒險電路91
參考資料92
訓(xùn)練題93
練習(xí)題 94
第4章 數(shù)字設(shè)計實踐97
4.1 文檔標(biāo)準(zhǔn)97
4.1.1 方框圖98
4.1.2 門的符號100
4.1.3 信號名和有效電平101
4.1.4 引腳的有效電平102
4.1.5 常量邏輯信號103
*4.1.6 “圈到圈”邏輯設(shè)計104
4.1.7 HDL模型中的信號命名106
4.1.8 繪制布局圖108
4.1.9 總線110
4.1.10 附帶的圖示信息111
4.2 電路時序112
4.2.1 時序圖112
4.2.2 傳輸延遲114
4.2.3 時序說明115
*4.2.4 采樣時序說明116
4.2.5 時序分析工具119
4.3 基于HDL的數(shù)字設(shè)計120
4.3.1 HDL的歷史120
4.3.2 為什么用HDL121
4.3.3 HDL的EDA工具組121
4.3.4 基于HDL的設(shè)計流程123
參考資料126
訓(xùn)練題126
練習(xí)題128
第5章 Verilog硬件描述語言129
5.1 Verilog模型和模塊130
5.2 邏輯系統(tǒng)、網(wǎng)格、變量和常量134
5.3 向量和操作符137
5.4 數(shù)組140
5.5 邏輯操作符和表達(dá)式142
5.6 編譯器命令143
5.7 結(jié)構(gòu)化模型144
5.8 數(shù)據(jù)流模型148
5.9 行為化模型(過程代碼)149
5.9.1 always語句與程序塊149
5.9.2 過程語句151
5.9.3 推理出的鎖存器151
5.9.4 賦值語句151
5.9.5 begin-end程序塊153
5.9.6 if和if-else語句154
5.9.7 case語句155
5.9.8 循環(huán)語句158
5.10 函數(shù)和任務(wù)160
5.11 時間維度163
5.12 模擬164
5.13 測試平臺165
5.14 時序邏輯設(shè)計的Verilog特性169
5.15 綜合169
參考資料170
訓(xùn)練題171
練習(xí)題171
第6章 基本組合邏輯元件173
6.1 只讀存儲器175
6.1.1 ROM和真值表175
6.1.2 用ROM實現(xiàn)任意組合邏輯函數(shù)176
6.1.3 FPGA查詢表178
*6.2 組合型PLD179
6.2.1 可編程邏輯陣列179
6.2.2 可編程陣列邏輯器件181
6.3 譯碼和選擇183
*6.3.1 一種更加數(shù)學(xué)化的譯碼器定義184
6.3.2 二進(jìn)制譯碼器185
6.3.3 更大型的譯碼器188
6.3.4 用Verilog實現(xiàn)的譯碼器190
6.3.5 定制的譯碼器200
6.3.6 七段譯碼器204
6.3.7 二進(jìn)制編碼器205
6.4 多路復(fù)用器206
6.4.1 門級多路復(fù)用器電路208
6.4.2 擴(kuò)展多路復(fù)用器212
6.4.3 多路復(fù)用器、多路分配器和總線212
6.4.4 用Verilog實現(xiàn)多路復(fù)用器214
參考資料217
訓(xùn)練題218
練習(xí)題219
第7章 更多的組合構(gòu)件224
7.1 三態(tài)器件224
7.1.1 三態(tài)緩沖器224
*7.1.2 標(biāo)準(zhǔn)MSI三態(tài)緩沖器226
7.1.3 用Verilog實現(xiàn)三態(tài)輸出229
7.1.4 用FPGA實現(xiàn)三態(tài)輸出230
7.2 優(yōu)先編碼器232
7.2.1 級聯(lián)優(yōu)先編碼器233
7.2.2 用Verilog實現(xiàn)優(yōu)先編碼器234
7.3 異或門和奇偶校驗功能238
7.3.1 異或門和異或非門238
7.3.2 奇偶校驗電路240
7.3.3 奇偶校驗的應(yīng)用240
7.3.4 用Verilog實現(xiàn)異或門和奇偶校驗電路243
7.4 比較器247
7.4.1 比較器結(jié)構(gòu)247
7.4.2 迭代電路248
7.4.3 迭代比較器電路249
7.4.4 數(shù)值比較器250
7.4.5 用HDL實現(xiàn)比較器253
7.4.6 用Verilog實現(xiàn)比較器254