本書是一本系統介紹數字電路設計的權威教材,旨在教會讀者關于數字設計的基本概念。全書共分12章,內容涉及數字系統和二進制數、布爾代數與邏輯門、門級最小化,組合邏輯、同步時序邏輯、寄存器和計數器、存儲器和可編程邏輯設備、寄存器傳輸級設計、異步時序邏輯、數字集成電路、標準IC和FPGA實驗、標準圖形符號等。全書結構嚴謹,內容深入淺出,緊密聯系實際,教輔資料齊全。
本書是國外經典的一本著作,作者是業界非常有名的一位教授,出版過數字系統方面的多部著作。本書結構嚴謹,注重理論與實踐的結合。在國外再版過多次,是一本難得的數字電路設計方面的優秀教材。
M. Morris Mano,美國加利福尼亞州立大學電子和計算機工程系的教授,出版過多部有關數字邏輯、計算機設計基礎的教材;Michael D. Ciletti,美國科羅拉多大學教授。
第1章 數字系統與二進制數
1.1 數字系統
1.2 二進制數
1.3 數制的轉換
1.4 八進制和十六進制數
1.5 補碼
1.6 帶符號的二進制數
1.7 二進制碼
1.8 二進制存儲與寄存器
1.9 二進制邏輯
習題
參考文獻
網絡搜索主題
第2章 布爾代數和邏輯門
2.1 引言 第1章 數字系統與二進制數
1.1 數字系統
1.2 二進制數
1.3 數制的轉換
1.4 八進制和十六進制數
1.5 補碼
1.6 帶符號的二進制數
1.7 二進制碼
1.8 二進制存儲與寄存器
1.9 二進制邏輯
習題
參考文獻
網絡搜索主題
第2章 布爾代數和邏輯門
2.1 引言
2.2 基本定義
2.3 布爾代數的公理
2.4 布爾代數的基本定理和性質
2.5 布爾函數
2.6 范式與標準式
2.7 其他邏輯運算
2.8 數字邏輯門
2.9 集成電路
習題
參考文獻
網絡搜索主題
第3章 門電路化簡
3.1 引言
3.2 圖形法化簡
3.3 四變量卡諾圖
3.4 和之積式的化簡
3.5 無關條件
3.6 與非門和或非門實現
3.7 其他兩級門電路實現
3.8 異或函數
3.9 硬件描述語言
習題
參考文獻
網絡搜索主題
第4章 組合邏輯
4.1 引言
4.2 組合電路
4.3 分析步驟
4.4 設計步驟
4.5 二進制加減器
4.6 十進制加法器
4.7 二進制乘法器
4.8 數值比較器
4.9 譯碼器
4.10 編碼器
4.11 數據選擇器
4.12 組合電路的HDL模型
習題
參考文獻
網絡搜索主題
第5章 同步時序邏輯
5.1 引言
5.2 時序電路
5.3 存儲元件: 鎖存器
5.4 存儲元件: 觸發器
5.5 鐘控時序電路分析
5.6 時序電路的可綜合HDL模型
5.7 狀態化簡與分配
5.8 設計過程
習題
參考文獻
網絡搜索主題
第6章 寄存器和計數器
6.1 寄存器
6.2 移位寄存器
6.3 行波計數器
6.4 同步計數器
6.5 其他計數器
6.6 寄存器和計數器的HDL描述
習題
參考文獻
網絡搜索主題
第7章 存儲器和可編程邏輯器件
7.1 引言
7.2 隨機存取存儲器
7.3 存儲器譯碼
7.4 檢糾錯
7.5 只讀存儲器
7.6 可編程邏輯陣列
7.7 可編程陣列邏輯
7.8 時序可編程器件
習題
參考文獻
網絡搜索主題
第8章 寄存器傳輸級設計
8.1 引言
8.2 寄存器傳輸級定義
8.3 HDL的寄存器傳輸級描述
8.4 算法狀態機(ASM)
8.5 設計舉例(ASMD流程圖)
8.6 設計舉例的HDL描述
8.7 時序二進制乘法器
8.8 控制邏輯
8.9 二進制乘法器的HDL描述
8.10 用數據選擇器進行設計
8.11 無競爭設計(軟競爭條件)
8.12 無鎖存設計(為什么浪費硅片?)
8.13 語言的其他特性
習題
參考文獻
網絡搜索主題
第9章 用標準IC和FPGA進行實驗
9.1 實驗介紹
9.2 實驗1: 二進制和十進制數
9.3 實驗2: 數字邏輯門
9.4 實驗3: 布爾函數化簡
9.5 實驗4: 組合電路
9.6 實驗5: 代碼轉換
9.7 實驗6: 使用數據選擇器進行設計
9.8 實驗7: 加法器和減法器
9.9 實驗8: 觸發器
9.10 實驗9: 時序電路
9.11 實驗10: 計數器
9.12 實驗11: 移位寄存器
9.13 實驗12: 串行加法
9.14 實驗13: 存儲器單元
9.15 實驗14: 燈式手球
9.16 實驗15: 時鐘脈沖發生器
9.17 實驗16: 并行加法器和累加器
9.18 實驗17: 二進制乘法器
9.19 Verilog HDL模擬實驗和使用FPGA的快速原型驗證
第10章 標準圖形符號
10.1 矩形符號
10.2 限定符號
10.3 相關符號
10.4 組合部件符號
10.5 觸發器符號
10.6 寄存器符號
10.7 計數器符號
10.8 RAM符號
習題
參考文獻
網絡搜索主題
附錄A 半導體和CMOS集成電路
部分習題解答
譯 者 序
當今的信息時代, 數字系統在我們的日常生活中起著越來越重要的作用, 并被廣泛地應用于通信、 計算機、 自動控制、 GPS導航、 互聯網、 物聯網、 大數據等領域。從數字電話到數字電視, 從數字通用光盤到數字計算機, 從數碼相機到軍用雷達、 醫用CT儀器設備, 數字技術的應用比比皆是。由于數字技術在處理和傳輸信息方面的各種優點, 數字電路得到非常廣泛的應用。
“數字電路與邏輯設計”是電子工程、 信息工程、 計算機科學與技術等專業的一門非常重要的專業基礎課。對于每一個工科電子信息類專業的學生和設計工程師, 數字電路與數字設計的基礎知識是必備常識。我們翻譯本書的目的正是要為電子工程、 信息工程專業和其他相近專業的本科生提供一本優秀的教材。
數字設計經歷了從單元電路到系統電路、 從小規模電路到大規模、 超大規模集成電路的發展過程。隨著微電子技術和信息處理技術的飛速發展, 各種類型的數字集成電路不斷推出并廣泛應用于各種技術領域, 數字電路與數字系統的設計方法與設計手段也發生了很大的變化。利用先進的EDA軟件工具和可編程邏輯器件, 采用硬件描述語言已經成為當今數字設計技術的主流。
M.Morris Mano編著的《數字設計》是一本系統介紹數字電路與系統設計理論和技術的巨著, 自本書第一版出版以來已經被許多所著名大學選作教材。我們翻譯的是這本書的第五版, 該版保留了前四版中經檢驗的經典內容, 主要包括二進制與布爾代數基礎、 組合邏輯電路的分析與設計、 時序邏輯電路的分析與設計、 寄存器與計數器、 寄存器傳輸級設計、 存儲器與可編程邏輯器件、 數字集成電路與FPGA實驗、 標準圖形符號等。根據最新的IEEE 1364標準更新和擴充了有關Verilog HDL的內容, 增加了半導體技術和CMOS集成電路的知識。全書中有大量的例題, 以幫助讀者對所學知識的理解。每章末尾都附有大量的習題, 這些習題中的一部分是為鞏固已學知識而設立的, 另一部分則是為開拓學生視野、 緊密聯系工程實際而設立的。全書內容系統完整, 結構新穎, 理論嚴謹, 深入淺出, 是一本不可多得的好教材。
本書由徐志軍教授負責翻譯前言, 第1章至第4章由徐志軍和倪雪共同翻譯, 第5章至第7章、 第9章由尹廷輝和薛紅共同翻譯, 第8章、 第10章及附錄由尹廷輝翻譯。全書由徐志軍審校統稿。碩士研究生徐程驥、 孔磊、 陳志偉協助完成了部分章節的翻譯工作, 南京工業大學的何英老師對本書的翻譯提供了很多的幫助, 在此特向他們致以深切的謝意。
數字設計是一門正在發展的技術, 涉及面廣, 技術更新快, 新器件不斷涌現。由于譯者學識所限, 疏漏乃至錯誤在所難免, 敬請讀者指正。
第五版前言
自從《數字設計(第四版)》出版以來, 基于數字技術來接收、 控制和傳輸信息的設備在商業領域中的應用呈現快速增長的趨勢, 新的手機和手持移動設備層出不窮, 性能也在大幅提升。在這些美觀的用戶界面之下,使用二進制代碼進行數據傳輸的二進制系統扮演了很重要的角色。這些系統的基本理論并沒有發生太大變化,然而制造商對某些核心理論的完善, 以及現代化設計工具的應用進一步推動了市場的發展。因此, 為適應新技術, 本書精煉了內容并且加強了對數字器件的傳統理解和現代設計方法介紹。
《數字設計與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范例中得到的結果進行比較, 可以進一步加深學生對硬件知識的理解。無論如何, 我們想強調的是“硬件是如何設計的”, 為學生將來在工業上的工作實踐打下堅實基礎, 這就是為什么基于硬件描述語言的設計實踐是至關重要的。
適用性
書中內容的次序很好地適應了課程需求, 是由基于傳統手工工藝的數字電路設計、 使用硬件描述語言的數字電路設計和在兩者之間或兩者混合的課程組成。因為當今綜合性設計工具的高度自動化使得邏輯分析最小化。卡諾圖以及其他相關的主題可以被最優化地呈現在數字設計的開始或者在使用硬件描述語言測試、 設計、 模擬電路之后。本書的內容包含了手工設計電路和基于硬件描述語言設計電路的范例。通過每章結尾前后參照的習題, 讓傳統手工設計任務變成采用硬件描述語言并且需要同伴一起完成的任務。通過在模擬結果、 習題的解答和手工設計的解決方案中添加注釋, 將傳統手工設計和基于硬件描述語言的電路設計有機結合起來。
內容的更新
《數字設計與Verilog實現(第五版)》遵循最新的IEEE 1364標準, 此次修訂后的版本更新如下:
● 去除了一些非典型的邏輯電路(諸如RTL、 DTL、 射級耦合邏輯電路)。
● 在每章的最后加上了有關“網絡搜索主題”的內容來指導學生在互聯網上進行相關內容的擴展閱讀。
● 每章最后對大約三分之一的問題進行了復習。
● 包含所有新的習題的解答手冊。
● 有關卡諾圖化簡的內容更加合理。
● 增加了基本的CMOS技術在邏輯門上的應用。
● 附錄中包含了有關半導體技術的介紹。
設計方法論
這個版本對于如何在數字系統中設計狀態機來控制數據通道提供了一種比較系統的方法論。 此外,這些材料的框架用來解決控制器如何處理數據通道發出的信號等實際問題,例如系統反饋(響應)的問題。 因此, 我們提供了設計復雜交互數字系統的基本方法。這種方法論在人工以及基于硬件描述語言的設計中都可以得到運用。
合適的HDL內容
僅僅局限于介紹硬件描述語言的語法是遠遠不夠的,書中只在需要的地方提供了這些Verilog語法元素, 而且正確的語法并不意味著這個電路模塊就能夠正常實現它的功能或者順利組合成一個物理硬件。我們希望學生能夠通過生產實踐,確認手工模型能夠有效地被綜合成物理硬件電路。如果不能做到這點會導致軟件競爭問題的出現, 并會造成模擬的結果與綜合成物理硬件后的結果不符。同樣, 設計時不進行生產實踐也許能夠得到正確的模擬結果, 但因為設計者的方法不同, 從而在設計過程中會不經意地造成硬件閉鎖。而工業實踐會給我們提出無競爭和無閉鎖的設計要求, 所以對學生來說, 在生產過程中學習和運用硬件描述語言模型而不是僅僅依賴于綜合工具是十分重要的。驗證
在生產過程中的一個重要步驟是檢驗電路是否能夠正常工作。現在的數字電路教學過程中并沒有足夠地重視驗證這個環節, 而是僅僅關注設計本身,驗證通常被看成是第二位的。這種觀點會帶來一種“這個電路將會很好地工作”的不成熟的想法。同樣,生產過程中一般是通過分析模型是否“可讀、 可攜帶、 可回收”來對基于硬件描述語言的模型進行檢驗的。通過對硬件描述語言模型進行檢驗, 可獲取可觀的收益。我