本書是為“數字邏輯設計”課程編寫的入門教材,這門課是電氣工程和計算機專業(yè)的基礎課程。本書著重闡述了數字邏輯基礎與邏輯電路的基本設計技術,通過許多例子來引入基本概念,強調綜合電路及如何在實際芯片上實現(xiàn)電路。主要內容包括:邏輯電路、算術運算電路、編碼器、譯碼器、多路選擇器、移位寄存器、計數器、同步時序電路、異步時序電路、數字系統(tǒng)設計、邏輯函數的優(yōu)化、計算機輔助設計工具等。
本書面向數字邏輯設計的入門課程,這門課程是大多數電子和計算機工程專業(yè)的一門基礎課程。一個成功的數字邏輯電路設計者首先必須深入了解其基本概念,并且能夠牢固掌握基于計算機輔助設計(CAD)工具的現(xiàn)代設計方法。
本書的主要目的為:1)通過典型的數字電路手工設計方法教給學生基本概念;2)清晰地展示當今采用CAD工具設計數字電路的方法。雖然目前除了少數情況外已經不再采用手工方法進行設計,但我們仍想通過教授這些手工設計技術,使學生對如何設計數字電路有一個感性的認識;并且手工設計方法能對CAD工具實現(xiàn)的功能進行很好的解釋,使學生體會到自動設計的優(yōu)勢。本書通過簡單的電路設計案例引出其基本概念,這些案例都同時采用手工方法和現(xiàn)代CAD方法設計。在建立了基本概念后,提供了更多基于CAD工具的復雜例子。因此,本書的重點仍然放在現(xiàn)代設計方法上,以說明當今數字電路是如何設計的。
技術本書將討論現(xiàn)代數字電路實現(xiàn)技術,重點為教科書中最適合采用的可編程邏輯器件(PLD),其原因主要表現(xiàn)在兩個方面:第一,PLD在實際設計中被廣泛采用,并且適合于各種數字電路設計,事實上,從某些方面看學生們在他們的職業(yè)生涯中更喜歡基于PLD進行設計而不是任何別的技術;第二,可以通過最終用戶的編程在PLD上實現(xiàn)電路。因此,在實驗室中可以提供給學生一個機會,即基于實際芯片來實現(xiàn)書中的設計例子;學生也可以用自己的計算機仿真所設計電路的性能。為了達到設計目的,我們采用最常見的PLD:復雜可編程邏輯器件(CPLD)和現(xiàn)場可編程邏輯陣列(FPGA)。
在邏輯電路的具體設計中,我們強調硬件描述語言(HDL)的使用,因為基于HDL的方法在實際應用中是最有效的。我們還詳細介紹了IEEE標準的Verilog HDL語言,并且在例子中廣泛使用。
本書內容本書第3版的結構進行了較大的改進,第1~6章覆蓋一個學期內該課程所需講述的所有內容,而第7~11章則介紹更先進的內容。
第1章概述了數字系統(tǒng)的設計流程,討論了設計流程中的關鍵步驟,解釋了如何運用CAD工具自動實現(xiàn)所要求的眾多工作;同時介紹了數字信息的表示方式。
第2章介紹了邏輯電路的基本知識,展示了如何使用布爾代數表示邏輯電路;介紹了邏輯電路綜合和優(yōu)化的概念,展示了如何使用邏輯門實現(xiàn)簡單電路。第一次向讀者展現(xiàn)Verilog,一個可用于描述邏輯電路的硬件描述語言例子。
第3章重點講述了算術運算電路,討論了數字系統(tǒng)中數字的表示方式,并說明了這樣的數字如何運用到邏輯電路中。另外,該章還闡述了如何使用Verilog詳細描述所期望的功能,以及CAD工具如何提供開發(fā)所期望電路的機制。
第4章介紹了用作構建模塊的組合電路,包括編碼器、譯碼器及多路選擇器。這些電路非常便于闡明眾多借助Verilog構建的應用,給讀者提供了一個揭示Verilog更多高級特性的機會。
第5章介紹了存儲單元,討論了采用觸發(fā)器實現(xiàn)的規(guī)則結構,如移位寄存器和計數器,并給出了這些結構的Verilog描述。
第6章詳細闡明了同步時序電路(有限狀態(tài)機),解釋了這些電路的行為,并介紹了用手工和自動兩種方法進行實際設計開發(fā)的技術。
第7章討論了系統(tǒng)設計中經常遇到的問題及其解決辦法,介紹了一個較大規(guī)模的數字系統(tǒng)層次化設計的例子,并給出了完整的Verilog代碼。
第8章介紹了邏輯功能優(yōu)化實現(xiàn)的更加先進的技術,提供了優(yōu)化算法;解釋了如何與二元決策圖一樣使用一種立方體表示法指定邏輯功能。
第9章討論了異步時序電路。雖然沒有面面俱到地敘述,但清晰展示了時序電路的主要特性。盡管異步時序電路在實際中的應用并不是很廣泛,但是它們提供了一個深刻理解數字電路操作的非常好的途徑。該章還展示了可能存在于電路結構內部的傳播延遲和冒險競爭。
第10章給出了設計者在設計、實現(xiàn)及測試數字電路過程中經歷的一個完整的CAD流程。
第11章介紹了電路的測試。邏輯電路的設計者必須清楚意識到電路測試的必要性,至少應熟悉測試最基本的知識。
附錄A總結了完整的Verilog特性。整本書中都使用了Verilog,該附錄便于讀者在編寫Verilog代碼時隨時查閱與參考。
附錄B給出了數字電路的電特性,展示了如何采用晶體管搭建基本的門電路,介紹了影響電路性能的各種因素。該附錄重點討論了最新的技術,同時介紹了CMOS工藝和可編程邏輯器件。
課程內容建議書中大部分內容適用于兩個季度的課程。在不需要花費太多時間教授Verilog和CAD工具時,1個學期甚至1個季度的課程也可以涵蓋大部分最重要的內容。為了達到這個目的,我們按照模塊化方式組織了Verilog內容以便于自學。多倫多大學不同班級的教學實踐表明,只須用3~4個學時介紹Verilog,即代碼如何編寫,包括使用設計層次結構、標量、矢量,以及指定時序電路所需的代碼形式。本書給出的Verilog例子帶有大量的說明,學生很容易理解。
本書也適用于不涉及Verilog的邏輯設計課程。然而,了解某些Verilog知識,即使是入門水平,對學生也是有益的,并且對于設計工程師日后的工作也非常有幫助。
1個學期的課程課程需要教授的內容如下:
第1章:每一節(jié)第2章:每一節(jié)第3章:3.1~3.5節(jié)第4章:每一節(jié)第5章:每一節(jié)第6章:每一節(jié)1個季度的課程課程需要教授的內容如下:
第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代碼:從只包含一些門電路到某些表示整個數字系統(tǒng)的電路(如一個簡單處理器),以說明如何采用Verilog語言描述不同的邏輯電路。
本書給出的所有Verilog示例的代碼可參考作者的網站:www.eecg.totonto.edu/~brown/Verilog_3e。
問題求解每一章中都包含解決問題的實例,通過這些實例可以求解典型的習題。
課外習題本書提供了400多道習題,書的最后給出了部分習題的答案。與本書配套的《答案手冊》中提供了本書中所有習題的解答,以供老師參考。關于本書教輔資源,用書教師可向麥格勞·希爾教育出版公司北京代表處申請,電話:8008101936/010.62790299.108,電子郵件!庉嬜』脽羝汀洞鸢甘謨浴纷x者可以在作者的網站www.mhhe.com/brownvranesic上獲得本書所有圖的幻燈片。老師可以申請獲得這些幻燈片以及本書的《答案手冊》。
CAD工具現(xiàn)代數字系統(tǒng)非常龐大,很多復雜的邏輯電路若不使用CAD工具是難以設計的。本書對于Verilog的闡述有助于讀者編寫Verilog代碼以描述不同復雜度的邏輯電路。為了獲得適當的設計過程方法,使用商用CAD工具是非常有益的。一些很好的CAD工具是免費的,比如,Altera公司的Quartus Ⅱ CAD軟件,它廣泛應用于基于諸如FPGA類的可編程邏輯器件的設計中。Quartus Ⅱ軟件的網絡版本可以從Altera的網站上下載并且免費使用,而不需要許可證。本書先前版本的附錄中給出了使用Quartus Ⅱ軟件的教程,這些教程可以在作者的網站上找到,也可以通過Altera的編程網站上找到另一些有用的Quartus Ⅱ教程,其網址為www.altera.com/eduction/univ。
致謝對于在本書準備期間給予幫助的人們表達深深的謝意,其中Dan Vranesic提供了大量插圖,他和Deshanand Singh也參與了《答案手冊》的準備;Tom Czajkowski幫助檢查一些答案。Thomas Bradicich,North Carolina State University;James Clark,McGill University;Stephen DeWeerth,Georgia Institute of Technology;Sander Eller,CalPoly Pomona;Clay Gloster,Jr.,North Carolina State University (Raleigh);Carl Hamacher,Queen’s University;Vincent Heuring,University of Colorado;Yu Hen Hu,University of Wisconsin;Wei.Ming Lin, University of Texas(San Antonio);Wayne Loucks,University of Waterloo;Kartik Mohanram,Rice University;Jane Morehead,Mississippi State University;Chris Myers,Univesity of Utah;Vojin Oklobdzija,Univesity of California(Davis);James Palmer,Rochester Institute of Technology;Gandhi Puvvada,University of Southern California;Teodoro Robles,Milwaukee School of Engineering;Tatyana Roziner,Boston University;Rob Rutenbar,Carnegie Mellon University;Eric Schwartz,University of Florida;Wen.Tsong Shiue,Oregon State University; Peter Simko,Miami University;Scott Smith,University of Missouri(Rolla);Arun Somani,Iowa State University;Bernard Svihel,University of Texas(Arlington);以及Zeljko Zilic,McGill University給出了有益的批評與很好的改進建議。
感謝McGraw.Hill的工作人員的支持,我們非常感激Raghu Srinivasan、Vincent Bradshaw、Darlene Schueller、Curt Reynolds以及Michael Lange的幫助,也感謝由Techsetters公司提供的排版支持。
Stephen Brown和Zvonko Vranesic
斯蒂芬·布朗(Stephen Brown),本科畢業(yè)于加拿大布倫斯維克大學,獲得電子工程學士學位,此后就讀于多倫多大學并取得電子工程碩士和博士學位,于1992年進入多倫多大學任教,目前為該校電子與計算機工程系教授,同時在Altera公司發(fā)起的國際大學計劃中擔任理事職務。
研究領域包括現(xiàn)場可編程VLSI技術以及計算機結構,曾獲得由加拿大自然科學與工程研究委員會頒發(fā)的1992年佳博士論文獎,并且發(fā)表了超過100篇的科研論文。
在電子工程、計算機工程以及計算機科學相關課程方面獲得過5次優(yōu)異教學成果獎,并且與他人合編了兩本知名教材:《Fundamentals of Digital Logic with VHDL Design》(第3版)以及《FieldProgrammable Gate Arrays》。
斯萬克·瓦拉納西(Zvonko Vranesic)擁有多倫多大學電子工程學士、碩士和博士學位。1963~1965年在位于安大略省布拉馬里的北方電力有限公司擔任設計工程師;1968年進入多倫多大學任教,現(xiàn)為該校電子與計算機工程系以及計算機科學系的榮譽退休教授;1978~1979年為英國劍橋大學的高級訪問學者;1984~1985年為巴黎第六大學的訪問學者;1995~2000年擔任多倫多大學工程科學部主席,同時還參與了Altera公司多倫多科技中心組織的研發(fā)工作。
目前的研究領域包括計算機架構以及現(xiàn)場可編程VLSI技術研究。
除了本書之外,與他人合編了另外3本知名教材:《Computer Organization and Embedded Systems》(第6版),《Microcomputer Structures》與《FieldProgrammable Gate Arrays》。1990年由于指導本科生實驗的創(chuàng)新和杰出貢獻而獲得懷頓(Wighton)獎金;2004年獲得由多倫多大學應用科學和工程教師組織頒發(fā)的教學獎。
此外,他曾多次代表加拿大出席國際象棋大賽,并被冠以“國際象棋大師”的頭銜。