本書是一本系統介紹數字電路設計的優秀教材,旨在教會讀者關于數字設計的基本概念和基本方法。全書共分10章,內容涉及數字邏輯的基本理論、組合邏輯電路、時序邏輯電路、寄存器和計數器、存儲器與可編程邏輯器件、寄存器傳輸級設計、半導體和CMOS 集成電路、標準IC和FPGA實驗、標準圖形符號、Verilog HDL與數字系統設計等。全書結構嚴謹,選材新穎,內容深入淺出,緊密聯系實際,教輔資料齊全。
第五版前言
自從《數字設計(第四版)》出版以來,
基于數字技術來接收、
控制和傳輸信息的設備在商業領域中的應用呈現快速增長的趨勢,
新的手機和手持移動設備層出不窮,
性能也在大幅提升。在這些美觀的用戶界面之下,使用二進制代碼進行數據傳輸的二進制系統扮演了很重要的角色。這些系統的基本理論并沒有發生太大變化,然而制造商對某些核心理論的完善,
以及現代化設計工具的應用進一步推動了市場的發展。因此,
為適應新技術, 本書精煉了內容并且加強了對數字器件的傳統理解和現代設計方法介紹。
《數字設計與Verilog實現(第五版)》的內容大部分建立在前面四個版本基礎上的,
除此之外, 用戶的反饋也幫助我們確定了一部分內容編寫的方向。 這個版本中的內容更側重于數字設計的基礎課程以及當今主流數字系統設計技術CMOS電路。
本書適合的讀者范圍很廣,
計算機科學、 計算機工程以及電子工程專業的學生均可閱讀。 本書的核心內容包括: (1)布爾邏輯, (2)邏輯門, (3)同步有限狀態機, (4)
數據通路控制器。所有這些都是要通過數字系統的設計來實現的。
該版同時取消了一些電子電路的內容,所以讀者可能無法再找到有關異步狀態機或者雙極型晶體管的描述。
另外, 隨著網絡上有關的輔助材料越來越多, 我們減少了關于FPGA的篇幅。 現在的設計者更倚重于硬件描述語言(HDL), 《數字設計與Verilog實現(第五版)》把更多的注意力放在了應用上, 以及怎樣才能思路清晰地使用Verilog
HDL對數字系統進行設計和開發。
多樣化的學習方法
《數字設計與Verilog實現(第五版)》提供了多樣化的學習方法。稱作VARK的學習方法區分了四種主要的學習模式: (V) Visual,
視覺; (A) Aural,
聽覺; (R) Reading,
閱讀; (K)Kinesthetic,
動覺。 VARK方法以及范例可以用來支持課堂教學。本書中提供了高標準的圖例圖解(Visual), 對于大量的范例及討論, 學生使用免費的模擬器進行實驗, 內容包括怎樣設計一個邏輯系統并使它正常工作(Kinesthetic),
而最后的聽覺(Aural)部分的內容則交給教師來完成。
因此, 使用《數字設計與Verilog實現(第五版)》來開展數字設計課程教學, 可以給學生帶來豐富且循序漸進的學習體驗。
有些人可能會對本書的內容以及第一堂課就涉及硬件描述語言(HDL)抱有疑問,
事實上我們注意到,
伴隨著新生的為集成電路設計的CAD工具的大量普及,
當今工業界已經逐步淘汰了20世紀80年代開始的基于原理圖的設計。原理圖創造了一種用接線圖對系統功能進行描述的方法,
然而其不足之處在于對于任何人來說,
想要在較短時間內沒有任何儀器的幫助和說明書,
僅由畫在紙上的邏輯電路原理圖來確定電路功能無疑是很困難的。因此工業界轉而把目光放在硬件描述語言(諸如Verilog HDL)上,
開始使用HDL來描述邏輯功能的設計,
并且囊括了功能說明、
模擬、 仿真測試以及與實際硬件系統(如標準ASIC或FPGA單元)的綜合調試。原理圖方法只有通過對詳細的并且精確分級的設計模塊文檔的仔細分析,
才能達到實用的目的。較舊的范例中,設計者們依仗多年的經驗來制作電路原理圖以說明其功能。而在當今工業的設計圖中,
設計者們使用硬件描述語言來更直接、
更有效地說明數字系統的功能,
而不需要多年積累的經驗,
同時通過綜合的模擬工具來自動生成原理圖作為參考。工業實踐證明傳統原理圖帶來的低效能如果不被新的分析方法取代,
將會給新一代大型復雜集成電路的設計帶來巨大困難。
我們再次說明,
在《數字設計與Verilog實現(第五版)》的第一課就涉及硬件描述語言,
并不代表要摒棄傳統基礎理論和手工設計方法。對于學生來說理解硬件是如何工作的仍然非常重要。
因此我們保留了詳盡的組合和連續邏輯模塊的內容。手工設計在鍛煉學生能力的同時,
將結果與HDL范例中得到的結果進行比較,
可以進一步加深學生對硬件知識的理解。無論如何,
我們想強調的是硬件是如何設計的,
為學生將來在工業上的工作實踐打下堅實基礎,
這就是為什么基于硬件描述語言的設計實踐是至關重要的。
適用性
書中內容的次序很好地適應了課程需求,
是由基于傳統手工工藝的數字電路設計、
使用硬件描述語言的數字電路設計和在兩者之間或兩者混合的課程組成。因為當今綜合性設計工具的高度自動化使得邏輯分析最小化?ㄖZ圖以及其他相關的主題可以被最優化地呈現在數字設計的開始或者在使用硬件描述語言測試、
設計、 模擬電路之后。本書的內容包含了手工設計電路和基于硬件描述語言設計電路的范例。通過每章結尾前后參照的習題,
讓傳統手工設計任務變成采用硬件描述語言并且需要同伴一起完成的任務。通過在模擬結果、
習題的解答和手工設計的解決方案中添加注釋,
將傳統手工設計和基于硬件描述語言的電路設計有機結合起來。
內容的更新
《數字設計與Verilog實現(第五版)》遵循最新的IEEE 1364標準,
此次修訂后的版本更新如下:
●
去除了一些非典型的邏輯電路(諸如RTL、 DTL、
射級耦合邏輯電路)。
●
在每章的最后加上了有關網絡搜索主題的內容來指導學生在互聯網上進行相關內容的擴展閱讀。
●
每章最后對大約三分之一的問題進行了復習。
●
包含所有新的習題的解答手冊。
●
有關卡諾圖化簡的內容更加合理。
●
增加了基本的CMOS技術在邏輯門上的應用。
●
附錄中包含了有關半導體技術的介紹。
設計方法論
這個版本對于如何在數字系統中設計狀態機來控制數據通道提供了一種比較系統的方法論。
此外,這些材料的框架用來解決控制器如何處理數據通道發出的信號等實際問題,例如系統反饋(響應)的問題。
因此, 我們提供了設計復雜交互數字系統的基本方法。這種方法論在人工以及基于硬件描述語言的設計中都可以得到運用。
合適的HDL內容
僅僅局限于介紹硬件描述語言的語法是遠遠不夠的,書中只在需要的地方提供了這些Verilog語法元素,
而且正確的語法并不意味著這個電路模塊就能夠正常實現它的功能或者順利組合成一個物理硬件。我們希望學生能夠通過生產實踐,確認手工模型能夠有效地被綜合成物理硬件電路。如果不能做到這點會導致軟件競爭問題的出現,
并會造成模擬的結果與綜合成物理硬件后的結果不符。同樣,
設計時不進行生產實踐也許能夠得到正確的模擬結果,
但因為設計者的方法不同,
從而在設計過程中會不經意地造成硬件閉鎖。而工業實踐會給我們提出無競爭和無閉鎖的設計要求,
所以對學生來說,
在生產過程中學習和運用硬件描述語言模型而不是僅僅依賴于綜合工具是十分重要的。驗證
在生產過程中的一個重要步驟是檢驗電路是否能夠正常工作,F在的數字電路教學過程中并沒有足夠地重視驗證這個環節,
而是僅僅關注設計本身,驗證通常被看成是第二位的。這種觀點會帶來一種這個電路將會很好地工作的不成熟的想法。同樣,生產過程中一般是通過分析模型是否可讀、
可攜帶、 可回收來對基于硬件描述語言的模型進行檢驗的。通過對硬件描述語言模型進行檢驗,
可獲取可觀的收益。我們將對模型的建立和參數的使用進行討論。同時本書還將提供測試題和所有練習的解決方案,
用來(1)檢驗電路是否正常工作; (2)強調測試中的重點內容; (3)通過自測題介紹重要的概念, 例如測試平臺的自檢。我們提倡并推薦通過測試方案的研究去指導測試平臺的研制,
我們會在教材中圖文并茂地介紹和推薦一些測試的方法,
并且在教材結尾的習題答案中擴展它們。
硬件描述語言課程的內容
我們確保教材中所有的范例和所有的解決方案符合設計數字化硬件的工業生產標準。像上一版一樣,硬件描述語言內容被放置在一個單獨的部分,
這樣可以按照教學安排進行刪減,這個版本并沒有減少關于手工設計的論述,也沒有制定講課的順序。書中的論述適合同時學習數字電路和硬件描述語言的初學者。本書旨在幫助學生自主設計一個項目并且在以后的計算機體系結構課程中取得成功。
教師資源相關的教師資源申請方式請參見書后的教學支持說明。
教師可以在 www.pearsonhighered.com/mano處下載課程資源, 包括: ● 所有的硬件描述語言示例的源代碼和測試題。
●
教材中所有的數據和表格。
●
所有在手工解決方案中的硬件描述語言模型源代碼。
●
可下載的用于課堂教學的圖形化解決方案。
HDL 模擬器
本書推薦使用兩個由SynaptiCAD(www.syncad.com)提供的模擬器。第一個是VeriLogger Pro, 這是一個傳統的能模擬硬件描述語言示例和檢驗硬件描述語言問題的模擬器。此模擬器符合IEEE1995標準,對舊的模型十分有用。另一個是一種交互的模擬器Verilogger Extreme,
符合IEEE1995和IEEE2001標準。這個模擬器允許設計者在完成對模型的模擬之前對自己的設計方案進行模擬和分析。這種技術對學生十分有用,
它可以快速輸入布爾邏輯和D觸發器以及鎖存器的表達式來校驗等價性和測試觸發器及鎖存器。
各章摘要
下面簡要介紹各章的要點。
第1章:
介紹了用于表達數字系統信息的各種二進計數制,
解釋并說明了二進制數和二進制代碼,
給出了帶符號的二進制數及BCD十進制數的加減法舉例。
第2章:
介紹了布爾代數的基本定理,
描述了布爾表達式與其對應的邏輯圖之間的相互關系,
研究了兩個邏輯變量的所有可能的邏輯運算,
在此基礎上給出了數字系統設計中最有用的邏輯門。本章還介紹了基本的CMOS邏輯門。
第3章:
介紹了布爾表達式的卡諾圖化簡法,
這種方法也可以用于簡化由與或門、
與非門和 或非門構成的數字電路; 討論了其他所有可能的兩級門電路及其實現方法, 給出了Verilog
HDL用于簡單門級建模的例子。
第4章:
概述了組合電路