數(shù)字邏輯基礎與Verilog設計(原書第3版)
鏈接:https://pan.baidu.com/s/1mqgpPsbz03RW6GiXhXwSdQ?pwd=p5ab?
提取碼:p5ab

出版者的話
譯者序
前言
作者簡介
第1章引言1
1.1數(shù)字硬件1
1.2設計流程3
1.3計算機結構4
1.4本書中的邏輯電路設計5
1.5信息的數(shù)字化表示5
1.6理論與實踐9
習題10
參考文獻10
第2章邏輯電路導論11
2.1變量與函數(shù)11
2.2反相12
2.3真值表13
2.4邏輯門和網(wǎng)絡14
2.5布爾代數(shù)17
2.6利用“與”門、“或”門和“非”門進行綜合23
2.7“與非”和“或非”邏輯網(wǎng)絡電路28
2.8設計實例31
2.9CAD工具介紹34
2.10Verilog簡介37
2.11最簡化和卡諾圖41
2.12最小化策略46
2.13和之積形式的最簡式49
2.14非完整定義函數(shù)(無關項)50
2.15多輸出電路51
2.16小結53
2.17解決問題的實例53
習題58
參考文獻61
第3章數(shù)的表示方法和算術運算電路62
3.1按位計數(shù)法(數(shù)的位置表示法)62
3.2無符號數(shù)的加法運算64
3.3有符號數(shù)67
3.4快速加法器75
3.5使用CAD工具設計算術運算電路79
3.6乘法88
3.7其他數(shù)的表示方式90
3.8解決問題的實例94
習題97
參考文獻99
第4章組合電路模塊100
4.1多路選擇器100
4.2譯碼器105
4.3編碼108
4.4代碼轉換器109
4.5算術比較電路109
4.6用Verilog設計組合邏輯電路110
4.7小結121
4.8解決問題的實例121
習題126
參考文獻128
第5章觸發(fā)器、寄存器和計數(shù)器129
5.1基本鎖存器129
5.2門控SR鎖存器131
5.3門控D鎖存器132
5.4邊沿觸發(fā)的D觸發(fā)器134
5.5T觸發(fā)器139
5.6JK觸發(fā)器139
5.7術語小結140
5.8寄存器140
5.9計數(shù)器142
5.10復位同步147
5.11其他類型的計數(shù)器149
5.12用CAD工具設計含存儲元件的電路151
5.13用Verilog構建寄存器和計數(shù)器156
5.14設計舉例160
5.15觸發(fā)器電路的時序分析164
5.16小結167
5.17解決問題的實例167
習題171
參考文獻174
第6章同步時序電路175
6.1基本設計步驟176
6.2狀態(tài)分配問題183
6.3Mealy狀態(tài)模型185
6.4采用CAD工具設計有限狀態(tài)機188
6.5串行加法器實例193
6.6狀態(tài)最小化197
6.7基于時序電路的計數(shù)器設計202
6.8仲裁電路的FSM207
6.9同步時序電路的分析209
6.10算法狀態(tài)機流程圖211
6.11時序電路的形式模型213
6.12小結214
6.13解決問題的實例214
習題219
參考文獻220
第7章數(shù)字系統(tǒng)設計222
7.1總線結構222
7.2簡單的處理器227
7.3位計數(shù)電路234
7.4移位和加乘法器238
7.5除法器242
7.6算術平均248
7.7排序操作251
7.8時鐘同步和時序問題258
7.9小結260
習題261
參考文獻262
第8章邏輯函數(shù)的優(yōu)化實現(xiàn)264
8.1多級綜合264
8.2多級電路分析271
8.3邏輯函數(shù)的其他表示方法273
8.4基于立方體表示法的優(yōu)化技術279
8.5小結288
8.6解決問題的實例289
習題293
參考文獻294
第9章異步時序電路296
9.1異步行為296
9.2異步電路分析298
9.3異步電路綜合303
9.4狀態(tài)化簡309
9.5狀態(tài)分配316
9.6冒險324
9.7一個完整的設計實例328
9.8小結331
9.9解決問題的實例332
習題335
參考答案337
第10章計算機輔助設計工具338
10.1綜合338
10.2物理設計342
10.3小結345
參考文獻345
第11章邏輯電路測試346
11.1故障模型346
11.2測試集的復雜度347
11.3路徑敏化348
11.4樹形結構電路350
11.5隨機測試351
11.6時序電路的測試353
11.7內(nèi)建自測試355
11.8印制電路板359
11.9小結361
習題362
參考文獻363
附錄AVerilog參考364
附錄B實現(xiàn)技術391
部分習題參考答案440
查看全部↓
前言/序言
本書面向數(shù)字邏輯設計的入門課程,這門課程是大多數(shù)電子和計算機工程專業(yè)的一門基礎課程。一個成功的數(shù)字邏輯電路設計者首先必須深入了解其基本概念,并且能夠牢固掌握基于計算機輔助設計(CAD)工具的現(xiàn)代設計方法。
本書的主要目的為:1)通過典型的數(shù)字電路手工設計方法教給學生基本概念;2)清晰地展示當今采用CAD工具設計數(shù)字電路的方法。雖然目前除了少數(shù)情況外已經(jīng)不再采用手工方法進行設計,但我們?nèi)韵胪ㄟ^教授這些手工設計技術,使學生對如何設計數(shù)字電路有一個感性的認識;并且手工設計方法能對CAD工具實現(xiàn)的功能進行很好的解釋,使學生體會到自動設計的優(yōu)勢。本書通過簡單的電路設計案例引出其基本概念,這些案例都同時采用手工方法和現(xiàn)代CAD方法設計。在建立了基本概念后,提供了更多基于CAD工具的復雜例子。因此,本書的重點仍然放在現(xiàn)代設計方法上,以說明當今數(shù)字電路是如何設計的。
技術本書將討論現(xiàn)代數(shù)字電路實現(xiàn)技術,重點為教科書中最適合采用的可編程邏輯器件(PLD),其原因主要表現(xiàn)在兩個方面:第一,PLD在實際設計中被廣泛采用,并且適合于各種數(shù)字電路設計,事實上,從某些方面看學生們在他們的職業(yè)生涯中更喜歡基于PLD進行設計而不是任何別的技術;第二,可以通過最終用戶的編程在PLD上實現(xiàn)電路。因此,在實驗室中可以提供給學生一個機會,即基于實際芯片來實現(xiàn)書中的設計例子;學生也可以用自己的計算機仿真所設計電路的性能。為了達到設計目的,我們采用最常見的PLD:復雜可編程邏輯器件(CPLD)和現(xiàn)場可編程邏輯陣列(FPGA)。
在邏輯電路的具體設計中,我們強調硬件描述語言(HDL)的使用,因為基于HDL的方法在實際應用中是最有效的。我們還詳細介紹了IEEE標準的Verilog HDL語言,并且在例子中廣泛使用。
本書內(nèi)容本書第3版的結構進行了較大的改進,第1~6章覆蓋一個學期內(nèi)該課程所需講述的所有內(nèi)容,而第7~11章則介紹更先進的內(nèi)容。
第1章概述了數(shù)字系統(tǒng)的設計流程,討論了設計流程中的關鍵步驟,解釋了如何運用CAD工具自動實現(xiàn)所要求的眾多工作;同時介紹了數(shù)字信息的表示方式。
第2章介紹了邏輯電路的基本知識,展示了如何使用布爾代數(shù)表示邏輯電路;介紹了邏輯電路綜合和優(yōu)化的概念,展示了如何使用邏輯門實現(xiàn)簡單電路。第一次向讀者展現(xiàn)Verilog,一個可用于描述邏輯電路的硬件描述語言例子。
第3章重點講述了算術運算電路,討論了數(shù)字系統(tǒng)中數(shù)字的表示方式,并說明了這樣的數(shù)字如何運用到邏輯電路中。另外,該章還闡述了如何使用Verilog詳細描述所期望的功能,以及CAD工具如何提供開發(fā)所期望電路的機制。
第4章介紹了用作構建模塊的組合電路,包括編碼器、譯碼器及多路選擇器。這些電路非常便于闡明眾多借助Verilog構建的應用,給讀者提供了一個揭示Verilog更多高級特性的機會。
第5章介紹了存儲單元,討論了采用觸發(fā)器實現(xiàn)的規(guī)則結構,如移位寄存器和計數(shù)器,并給出了這些結構的Verilog描述。
第6章詳細闡明了同步時序電路(有限狀態(tài)機),解釋了這些電路的行為,并介紹了用手工和自動兩種方法進行實際設計開發(fā)的技術。
第7章討論了系統(tǒng)設計中經(jīng)常遇到的問題及其解決辦法,介紹了一個較大規(guī)模的數(shù)字系統(tǒng)層次化設計的例子,并給出了完整的Verilog代碼。
第8章介紹了邏輯功能優(yōu)化實現(xiàn)的更加先進的技術,提供了優(yōu)化算法;解釋了如何與二元決策圖一樣使用一種立方體表示法指定邏輯功能。
第9章討論了異步時序電路。雖然沒有面面俱到地敘述,但清晰展示了時序電路的主要特性。盡管異步時序電路在實際中的應用并不是很廣泛,但是它們提供了一個深刻理解數(shù)字電路操作的非常好的途徑。該章還展示了可能存在于電路結構內(nèi)部的傳播延遲和冒險競爭。
第10章給出了設計者在設計、實現(xiàn)及測試數(shù)字電路過程中經(jīng)歷的一個完整的CAD流程。
第11章介紹了電路的測試。邏輯電路的設計者必須清楚意識到電路測試的必要性,至少應熟悉測試最基本的知識。
附錄A總結了完整的Verilog特性。整本書中都使用了Verilog,該附錄便于讀者在編寫Verilog代碼時隨時查閱與參考。
附錄B給出了數(shù)字電路的電特性,展示了如何采用晶體管搭建基本的門電路,介紹了影響電路性能的各種因素。該附錄重點討論了最新的技術,同時介紹了CMOS工藝和可編程邏輯器件。
課程內(nèi)容建議書中大部分內(nèi)容適用于兩個季度的課程。在不需要花費太多時間教授Verilog和CAD工具時,1個學期甚至1個季度的課程也可以涵蓋大部分最重要的內(nèi)容。為了達到這個目的,我們按照模塊化方式組織了Verilog內(nèi)容以便于自學。多倫多大學不同班級的教學實踐表明,只須用3~4個學時介紹Verilog,即代碼如何編寫,包括使用設計層次結構、標量、矢量,以及指定時序電路所需的代碼形式。本書給出的Verilog例子帶有大量的說明,學生很容易理解。
本書也適用于不涉及Verilog的邏輯設計課程。然而,了解某些Verilog知識,即使是入門水平,對學生也是有益的,并且對于設計工程師日后的工作也非常有幫助。
1個學期的課程課程需要教授的內(nèi)容如下:
第1章:每一節(jié)第2章:每一節(jié)第3章:3.1~3.5節(jié)第4章:每一節(jié)第5章:每一節(jié)第6章:每一節(jié)1個季度的課程課程需要教授的內(nèi)容如下:
第1章:每一節(jié)第2章:每一節(jié)第3章:3.1~3.3節(jié)和3.5節(jié)第4章:每一節(jié)第5章:每一節(jié)第6章:6.1~6.4節(jié)VerilogVerilog是一種復雜的語言,有些教師感到初學者掌握起來很困難,我們完全同意這個觀點,并且試圖解決這個問題。教師在教學過程中沒有必要介紹Verilog語言的全部。本書只介紹對于邏輯電路設計和綜合有用的重要的Verilog語言結構,略去了許多其他語言結構,如那些僅用于仿真的語言結構。并且僅在相關電路設計中用到Verilog更高級的特性時才會介紹這些知識。
本書包含了120多個示例的Verilog代碼:從只包含一些門電路到某些表示整個數(shù)字系統(tǒng)的電路(如一個簡單處理器),以說明如何采用Verilog語言描述不同的邏輯電路。
本書給出的所有Verilog示例的代碼可參考作者的網(wǎng)站:www.eecg.totonto.edu/~brown/Verilog_3e。
問題求解每一章中都包含解決問題的實例,通過這些實例可以求解典型的習題。
課外習題本書提供了400多道習題,書的最后給出了部分習題的答案。與本書配套的《答案手冊》中提供了本書中所有習題的解答,以供老師參考。關于本書教輔資源,用書教師可向麥格勞·希爾教育出版公司北京代表處申請,電話:8008101936/010.62790299.108,電子郵件。——編輯注幻燈片和《答案手冊》讀者可以在作者的網(wǎng)站www.mhhe.com/brownvranesic上獲得本書所有圖的幻燈片。老師可以申請獲得這些幻燈片以及本書的《答案手冊》。
CAD工具現(xiàn)代數(shù)字系統(tǒng)非常龐大,很多復雜的邏輯電路若不使用CAD工具是難以設計的。本書對于Verilog的闡述有助于讀者編寫Verilog代碼以描述不同復雜度的邏輯電路。為了獲得適當?shù)脑O計過程方法,使用商用CAD工具是非常有益的。一些很好的CAD工具是免費的,比如,Altera公司的Quartus Ⅱ CAD軟件,它廣泛應用于基于諸如FPGA類的可編程邏輯器件的設計中。Quartus Ⅱ軟件的網(wǎng)絡版本可以從Altera的網(wǎng)站上下載并且免費使用,而不需要許可證。本書先前版本的附錄中給出了使用Quartus Ⅱ軟件的教程,這些教程可以在作者的網(wǎng)站上找到,也可以通過Altera的編程網(wǎng)站上找到另一些有用的Quartus Ⅱ教程,其網(wǎng)址為www.altera.com/eduction/univ。
致謝對于在本書準備期間給予幫助的人們表達深深的謝意,其中Dan Vranesic提供了大量插圖,他和Deshanand Singh也參與了《答案手冊》的準備;Tom Czajkowski幫助檢查一些答案。Thomas Bradicich,North Carolina State University;James ClarkMcGill University;Stephen DeWeerthGeorgia Institute of Technology;Sander EllerCalPoly Pomona;Clay GlosterJr.North Carolina State University (Raleigh);Carl HamacherQueen’s University;Vincent HeuringUniversity of Colorado;Yu Hen HuUniversity of Wisconsin;Wei.Ming Lin University of Texas(San Antonio);Wayne LoucksUniversity of Waterloo;Kartik MohanramRice University;Jane MoreheadMississippi State University;Chris MyersUnivesity of Utah;Vojin OklobdzijaUnivesity of California(Davis);James PalmerRochester Institute of Technology;Gandhi PuvvadaUniversity of Southern California;Teodoro RoblesMilwaukee School of Engineering;Tatyana RozinerBoston University;Rob RutenbarCarnegie Mellon University;Eric SchwartzUniversity of Florida;Wen.Tsong ShiueOregon State University; Peter SimkoMiami University;Scott SmithUniversity of Missouri(Rolla);Arun SomaniIowa State University;Bernard SvihelUniversity of Texas(Arlington);以及Zeljko ZilicMcGill University給出了有益的批評與很好的改進建議。
感謝McGraw.Hill的工作人員的支持,我們非常感激Raghu Srinivasan、Vincent Bradshaw、Darlene Schueller、Curt Reynolds以及Michael Lange的幫助,也感謝由Techsetters公司提供的排版支持。
Stephen Brown和Zvonko Vranesic
查看全部↓