數(shù)字設(shè)計(jì):原理與實(shí)踐(原書第5版)
定 價(jià):139 元
叢書名:計(jì)算機(jī)科學(xué)叢書
- 作者:[美]約翰 F.韋克利(John F. Wakerly)
- 出版時(shí)間:2019/7/1
- ISBN:9787111629412
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TN79
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書為讀者提供了高級(jí)(HDL)、低級(jí)(電子電路)以及完整的“各種中間級(jí)”(門電路、觸發(fā)器和一些較高級(jí)的數(shù)字設(shè)計(jì)構(gòu)件)層次的基礎(chǔ)知識(shí),介紹了與組合電路、時(shí)序電路等相關(guān)的各方面內(nèi)容(涉及數(shù)制編碼、Verilog模塊、狀態(tài)機(jī)、FPGA、ROM、RAM以及CMOS邏輯系列等),并提供了大量的設(shè)計(jì)實(shí)例以及具有指導(dǎo)意義的習(xí)題。
本書可作為電氣工程、計(jì)算機(jī)工程或計(jì)算機(jī)科學(xué)專業(yè)數(shù)字邏輯設(shè)計(jì)課程的入門與進(jìn)階教材。
前 言
Digital Design: Principles and Practices, Fifth Edition
本書寫給所有需要設(shè)計(jì)和構(gòu)建真正的數(shù)字電路的讀者。為達(dá)到這個(gè)目的,讀者必須掌握基本原理,同時(shí)還必須理解它們?cè)谡鎸?shí)世界中的工作情況。本書正是基于這種理念寫作而成的,因此,確定了“原理與實(shí)踐”這個(gè)主題。
在過去的30年里,隨著集成電路的速度和集成度的快速提高,數(shù)字設(shè)計(jì)實(shí)踐經(jīng)歷了非常大的轉(zhuǎn)變。過去,數(shù)字設(shè)計(jì)者用成千上萬的門電路和觸發(fā)器來構(gòu)建系統(tǒng),專業(yè)課程的重點(diǎn)就是最小化和有效地利用芯片及板級(jí)資源。
現(xiàn)今,一個(gè)芯片可以包含幾千萬個(gè)晶體管并且可以利用編程的方式構(gòu)建片上系統(tǒng)。過去要實(shí)現(xiàn)這樣的系統(tǒng),需要用幾百個(gè)包含了上百萬的單個(gè)門電路和觸發(fā)器的分立芯片來構(gòu)造。當(dāng)前成功的產(chǎn)品開發(fā)更多地受限于設(shè)計(jì)團(tuán)隊(duì)正確、完整地定義產(chǎn)品詳細(xì)功能的能力,而不是受限于團(tuán)隊(duì)將需要的所有電路集成到一個(gè)電路板或芯片上的能力。因此,現(xiàn)代專業(yè)課程的重點(diǎn)是設(shè)計(jì)方法論和軟件工具,包括硬件描述語言(HDL)。設(shè)計(jì)團(tuán)隊(duì)利用HDL可以完成非常大型的分層數(shù)字系統(tǒng)的設(shè)計(jì)。
一方面,利用HDL,我們看到典型設(shè)計(jì)的抽象層次移向單個(gè)門電路和觸發(fā)器之上的更高層次。而與此同時(shí),芯片級(jí)和電路板級(jí)的數(shù)字電路的速度和集成度的提高,又迫使許多數(shù)字設(shè)計(jì)者在較低的電子電路級(jí)更具競爭力。
大多數(shù)稱職且非常成功的數(shù)字設(shè)計(jì)者,都能夠熟練地使用或者至少是精通上述兩個(gè)抽象層次。本書提供了高級(jí)(HDL)、低級(jí)(電子電路)以及完整的“各種中間級(jí)”(門電路、觸發(fā)器和一些較高級(jí)的數(shù)字設(shè)計(jì)構(gòu)件)層次的基礎(chǔ)知識(shí)。
目標(biāo)讀者
本書可以作為電氣工程、計(jì)算機(jī)工程或計(jì)算機(jī)科學(xué)專業(yè)數(shù)字邏輯設(shè)計(jì)課程的入門與進(jìn)階教材。那些不熟悉基本電子學(xué)概念(electronics concept)或者對(duì)數(shù)字器件的電氣特性不感興趣的計(jì)算機(jī)科學(xué)專業(yè)的學(xué)生可以跳過第14章而掌握第1章的基礎(chǔ)知識(shí)即可,書中的其他部分已盡可能地獨(dú)立于這部分內(nèi)容。另一方面,具有基本電子學(xué)基礎(chǔ)的讀者,則可通過閱讀第14章的內(nèi)容來快速掌握數(shù)字電子學(xué)知識(shí)。此外,那些不具備電子學(xué)基礎(chǔ)的學(xué)生,可以通過閱讀作者網(wǎng)站(www.ddpp.com)上的電子教材(20頁)而獲得基礎(chǔ)知識(shí)。
雖然本書是入門級(jí)的,但比起一般的普通入門教材,它卻包含更多的內(nèi)容。我希望典型的課程采用書中不超過三分之二的內(nèi)容,但是,每門課程所用到的是不同的三分之二。因此,我讓各位教師或讀者按照自己的需要去決定閱讀內(nèi)容。盡管如此,為了有助于選擇,我已經(jīng)在一些可選章節(jié)(optional section)的標(biāo)題上打了星號(hào)。一般情況下,可以跳過這些章節(jié)而不影響后續(xù)必選章節(jié)的連貫性。而且,“方框注釋”(boxed comment)中的材料通常都是可選的。
毫無疑問,有些人把本書當(dāng)作進(jìn)階教程(second course)和實(shí)驗(yàn)教程(laboratory course)來使用。高年級(jí)學(xué)生可以跳過基礎(chǔ)部分而直接進(jìn)到感興趣的部分。一旦具備了基礎(chǔ)知識(shí),一些最重要且有趣的內(nèi)容(fun stuff)便是在許多章節(jié)和數(shù)字設(shè)計(jì)例子中采用Verilog。
并不像看起來那么長
有幾個(gè)書評(píng)家抱怨本書之前的版本都太長了,目前的這個(gè)版本要稍短一些,但還是請(qǐng)記住:
你并不需要閱讀所有的內(nèi)容。對(duì)大多數(shù)讀者來說可選讀的內(nèi)容都標(biāo)記有“*”。
一些“方框注釋”中的內(nèi)容通常也是可選讀的。
我遵照“參考質(zhì)量”標(biāo)準(zhǔn)撰寫本書,內(nèi)容覆蓋廣泛,因此讀者可以在后續(xù)課程中參考本書,或在以后的工作中,使用本書來更新你的知識(shí)甚或?qū)W習(xí)新知識(shí)。
各章描述
第1章給出了一些基本的定義和一些重要話題的預(yù)覽,以及數(shù)字電路的內(nèi)容,使讀者在不深入閱讀第14章的情況下,也可以完整閱讀書中其他的內(nèi)容。
第2章介紹二進(jìn)制數(shù)制和編碼。已經(jīng)從軟件課程中熟悉了二進(jìn)制數(shù)制的讀者,仍需要閱讀2.10~2.13節(jié),以便理解硬件是如何使用二進(jìn)制編碼的。高年級(jí)的學(xué)生可以閱讀2.14節(jié)和2.15節(jié),其中對(duì)檢錯(cuò)碼進(jìn)行了很好的介紹。每個(gè)讀者都應(yīng)該閱讀2.16.1節(jié)的內(nèi)容,因?yàn)樵谠S多現(xiàn)代系統(tǒng)中都要用到它。
第3章講述組合邏輯設(shè)計(jì)原理,包括開關(guān)代數(shù),以及組合電路分析、綜合與最小化。
第4章從文檔標(biāo)準(zhǔn)開始介紹各種數(shù)字設(shè)計(jì)實(shí)踐,文檔標(biāo)準(zhǔn)是設(shè)計(jì)者需要掌握的最重要的內(nèi)容。然后介紹時(shí)序的概念,特別是組合型電路的時(shí)序,最后是關(guān)于HDL、設(shè)計(jì)流程和工具的討論。
第5章介紹Verilog硬件描述語言。前幾節(jié)需要通讀,但部分讀者可能希望跳過其余幾節(jié)而只在需要時(shí)再來閱讀,因?yàn)樾碌腣erilog結(jié)構(gòu)在后續(xù)章節(jié)用到時(shí)才會(huì)講述(主要是第6章)。
第6章描述了兩個(gè)“通用”組合邏輯元件ROM和PLD。然后講述兩個(gè)最常用的功能構(gòu)件—譯碼器和多路復(fù)用器,其中每一個(gè)都會(huì)給出門級(jí)和基于Verilog的設(shè)計(jì)。讀者可以從這里直接跳到第9章的狀態(tài)機(jī),然后再回到第7章和第8章。
第7章繼續(xù)討論門級(jí)和用Verilog實(shí)現(xiàn)的組合型構(gòu)件,包括三態(tài)器件、優(yōu)先編碼器、異或和奇偶函數(shù)以及比較器,然后用一個(gè)非平凡“隨機(jī)邏輯”函數(shù)的Verilog設(shè)計(jì)實(shí)例引出結(jié)論。
第8章講述實(shí)現(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è)計(jì)1
1.2 模擬與數(shù)字2
1.3 模擬信號(hào)5
1.4 數(shù)字邏輯信號(hào)5
1.5 邏輯電路與門電路6
1.6 數(shù)字設(shè)計(jì)的軟件技術(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è)計(jì)層次20
1.14 成本最小化22
1.15 繼續(xù)學(xué)習(xí)23
訓(xùn)練題23
第2章 數(shù)制和編碼24
2.1 按位計(jì)數(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ǔ)碼與無符號(hào)二進(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 動(dòng)作、條件和狀態(tài)的編碼45
*2.14 n維體與距離46
*2.15 檢錯(cuò)碼和糾錯(cuò)碼47
2.15.1 檢錯(cuò)碼48
2.15.2 糾錯(cuò)碼與多重檢錯(cuò)碼49
2.15.3 漢明碼51
2.15.4 循環(huán)冗余校驗(yàn)碼53
2.15.5 二維碼53
2.15.6 校驗(yàn)和碼55
2.15.7 n中取m碼55
2.16 用于串行數(shù)據(jù)傳輸與存儲(chǔ)的編碼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 對(duì)偶性71
3.1.6 邏輯函數(shù)的標(biāo)準(zhǔn)表示法72
3.2 組合電路分析74
3.3 組合電路的綜合79
3.3.1 電路描述與設(shè)計(jì)80
3.3.2 電路處理82
3.3.3 組合電路最小化85
*3.3.4 卡諾圖86
*3.4 時(shí)序冒險(xiǎn)88
3.4.1 靜態(tài)冒險(xiǎn)88
3.4.2 利用卡諾圖發(fā)現(xiàn)靜態(tài)冒險(xiǎn)89
3.4.3 動(dòng)態(tài)冒險(xiǎn)91
3.4.4 設(shè)計(jì)無冒險(xiǎn)電路91
參考資料92
訓(xùn)練題93
練習(xí)題 94
第4章 數(shù)字設(shè)計(jì)實(shí)踐97
4.1 文檔標(biāo)準(zhǔn)97
4.1.1 方框圖98
4.1.2 門的符號(hào)100
4.1.3 信號(hào)名和有效電平101
4.1.4 引腳的有效電平102
4.1.5 常量邏輯信號(hào)103
*4.1.6 “圈到圈”邏輯設(shè)計(jì)104
4.1.7 HDL模型中的信號(hào)命名106
4.1.8 繪制布局圖108
4.1.9 總線110
4.1.10 附帶的圖示信息111
4.2 電路時(shí)序112
4.2.1 時(shí)序圖112
4.2.2 傳輸延遲114
4.2.3 時(shí)序說明115
*4.2.4 采樣時(shí)序說明116
4.2.5 時(shí)序分析工具119
4.3 基于HDL的數(shù)字設(shè)計(jì)120
4.3.1 HDL的歷史120
4.3.2 為什么用HDL121
4.3.3 HDL的EDA工具組121
4.3.4 基于HDL的設(shè)計(jì)流程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 時(shí)間維度163
5.12 模擬164
5.13 測試平臺(tái)165
5.14 時(shí)序邏輯設(shè)計(jì)的Verilog特性169
5.15 綜合169
參考資料170
訓(xùn)練題171
練習(xí)題171
第6章 基本組合邏輯元件173
6.1 只讀存儲(chǔ)器175
6.1.1 ROM和真值表175
6.1.2 用ROM實(shí)現(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實(shí)現(xiàn)的譯碼器190
6.3.5 定制的譯碼器200
6.3.6 七段譯碼器204
6.3.7 二進(jìn)制編碼器205
6.4 多路復(fù)用器206
6.4.1 門級(jí)多路復(fù)用器電路208
6.4.2 擴(kuò)展多路復(fù)用器212
6.4.3 多路復(fù)用器、多路分配器和總線212
6.4.4 用Verilog實(shí)現(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實(shí)現(xiàn)三態(tài)輸出229
7.1.4 用FPGA實(shí)現(xiàn)三態(tài)輸出230
7.2 優(yōu)先編碼器232
7.2.1 級(jí)聯(lián)優(yōu)先編碼器233
7.2.2 用Verilog實(shí)現(xiàn)優(yōu)先編碼器234
7.3 異或門和奇偶校驗(yàn)功能238
7.3.1 異或門和異或非門238
7.3.2 奇偶校驗(yàn)電路240
7.3.3 奇偶校驗(yàn)的應(yīng)用240
7.3.4 用Verilog實(shí)現(xiàn)異或門和奇偶校驗(yà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實(shí)現(xiàn)比較器253
7.4.6 用Verilog實(shí)現(xiàn)比較器254