簡介
邏輯設計基礎(第2版)本書的特色舉例本書的特色舉例在編寫本書的過程中,處處考慮學生的需要。它重點強調的是基礎和通過實例教學。作者認為,學習邏輯設計最好的方法是研究和求解大量的設計問題,給學生實踐的機會。下面一些特點正是為了達到以學生為主這個目的。
例子若干有助於使概念清晰和易於理解的簡易例子,密切貫穿於每一章。 卡諾圖靈活的使用卡諾圖幫助學生抓住開關代數的基本原理。 習題每章都有很多習題,用彩色條加以標識,部分習題答案在附錄B中。 解題實例這是本書的另一特色,在每一章後面的大量的解題實例使學生能夠看到概念如何套用於解決實際問題。 章末測驗“本章測驗”一節用於幫助學生衡量自己是否掌握了本章的關鍵內容。測驗題的答案見附錄C。 設計用標準小規模和中規模積體電路晶片和可程式邏輯器件設計是本書的主要特點之一。 時序系統作者還給出了有特色的時序系統的設計方法。
前言
實驗室四種類型的實驗室實驗使實際電路和理論有機結合,學生可以充分利用傳統的動手操作的硬體實驗;用Windows系統的模擬板或蘋果電腦的模擬板;採用兩個流行的電路設計程式之一,LogicWorks或4Altera Max+plusⅡ進行的模擬實驗室作業。
多輸出問題本書介紹了用卡諾圖、奎恩麥克路斯基法和疊代合意法等求解多輸出問題的多種方法。邏輯設計基礎(第2版)譯者序譯者序《邏輯設計基礎》是計算機、電氣工程及通信、電子等專業學生的一門重要的技術基礎課。以上這些專業的許多專業課程,都需要套用到本門課程所講授的知識。因此,學好本門課程,是對以上各個專業學生的一個基本要求。要學好本門課程,需要掌握好三個環節,即:理論、習題和實驗。為了幫助中國學生學好這門課程,清華大學出版社引進了由美國佛羅里達大西洋大學Alan B. Marcovitz教授編著的《邏輯設計基礎》(第2版)。該書緊緊抓住這些教學環節,理論與實踐並重,是一本很有特色的教材。本書全面系統地闡述邏輯設計的核心內容,尤其突出了系統的分析和設計方法。
內容重點
譯者認為,本教材的特點體現在如下幾個方面。
內容深入淺出
問題的講授總是從給讀者一個粗略的總體概念開始。譬如,第1章即給出組合邏輯設計的過程,使讀者對邏輯設計有一個初步了解,不致使學生在後面內容的學習中對問題感到茫然。然後,介紹邏輯設計過程中各個步驟所需的理論、工具和方法,再到整個系統的設計。做到由淺入深,從個別到一般,在後面逐步把內容擴展開來,一直到把問題介紹得十分透徹。不但在整本書的內容上突出了這些特點,在某些方法的介紹上也是如此。譬如,在邏輯函式化簡時,如果一個邏輯函式式有多個最優解,不是只給出一個最優解,而是給出所有可能的最優解。許多習題,如果有多個最優解,在括弧中給出最優解的數目,要求學生求出全部最優解,而不是只滿足於求得一個解。
注重方法
純粹的理論和方法的介紹,會使讀者感到枯燥。本書採用了兩種方式將讀者帶入正確方法學的軌道: 一種是首先給出一個以上的邏輯設計的實際問題,然後告訴讀者要得到該問題的實際邏輯電路,需要一步一步如何來做;另一種是先通過很簡單的小例題的解答,提煉出分析問題和解決問題的具體方法,並加以深化。許多具體生動的例子,使學生感到邏輯設計這門課實用且有趣。為幫助學生學好這門課,深入系統地掌握它的理論和方法,提供了引人入勝的學習環節。此外,對於解決同一個問題,提供了多種解決該問題的方法和途徑。譬如,對於組合邏輯的化簡,介紹了代數化簡法、卡諾圖化簡法、奎恩麥克路斯基化簡法、疊代合意化簡法,等等,體現了“條條大路通羅馬”的思想,使讀者逐步提高了技能,掌握了方法,並比較所使用的各種方法的優點及其局限性。
實用性強
這主要體現在三個方面: 一是書中有大量的例題、解題實例和習題,使學生學習和掌握書中介紹的各種方法和技巧,便於自學;二是分析和設計所用的電路大多是商用積體電路晶片,使學生在學習過程中即完成了從原理電路到真實電路的過渡,提高實際套用能力;三是在附錄中介紹了4種實驗平台,提供許多實驗室作業,使學生能理論聯繫實際,進一步鞏固所學知識,增強實際工程方面的能力。
最佳化設計
最佳化設計既可降低實現成本,又能減小電路的體積和提高電路的可靠性。這是本書貫徹始終的基本思想。從邏輯函式的化簡求最優解,到組合邏輯電路設計時所用的門數最少、晶片數最少、晶片的種類最少、晶片之間的連線最少,再到時序電路設計時通過狀態化簡和狀態分配,使所用存儲電路最少、組合邏輯最少,等等,都體現了這一思想。完成每一個設計,作者都要計算成本,做到“斤斤計較”,力求最節省,使學生在學習這樣一門專業基礎課的時候,就不知不覺地養成一個“經濟頭腦”,在從事實際設計工作時,力爭最優。
適於作為大學生的教材
本書是作者多年教學工作的總結,其手稿徵求過美國許多大學同行們的意見,並且利用前期的書稿,由作者本人及其同事進行過多個輪次的教學。最後經過多所大學的同行審閱,幾經修改才正式出版。由此可見,美國大學教授們對待自己編寫的教材,態度的確非常認真。在書的前言部分,作者給出了各部分內容的參考學時數,及根據不同具體情況對內容的取捨,供教師們在教學中參考。因此,本書非常適合作為大學生的教材或教學參考書。
便於自學,並可作為考研複習教材
在每一章,除了給出大量的例題、解題實例和習題外,還有一個本章測驗,並給出測驗的參考時間和測驗題的答案,可幫助學生檢驗對該章的理論、技術和方法掌握的情況和熟練程度。對於每章的典型習題,在書末給出了答案,便於學生檢驗所做習題的對錯。這樣一來,可以防止學生做習題時鑽入死胡同,為學生節約了大量的時間。
正是這樣一些特點,使得本書還便於自學。除了可作為全日制大學生的教材之外,也適合於參加成人教育、網路教育的大學生作為教材或教學參考書。對於有志於考碩士研究生繼續深造的學生,也是一本用於複習的難得的好書,它可幫助你收到事半功倍的效果。
本書原版的一些插圖,為彩色印刷,某些部分使用紅色、綠色或灰色,用以突出其中某一部分。很遺憾,由於技術條件所限,譯著未能採用彩色印刷,這樣在看插圖時會帶來一些不便。原書有個別印刷錯誤,譯者在翻譯時已逐一做了改正。
本書的前言及第1章由楊匡漢教授翻譯;第2、3、4、5、6章由殷洪璽博士翻譯;第7、8章和本書的中、英文術語對照表由劉新元博士翻譯;第9章和附錄A、B、C由禹瑩高工翻譯。殷洪璽博士對全書譯稿做了統一審定。
由於譯者水平有限,加之時間匆促,譯文中的不妥之處,希望廣大讀者給予批評指正。最後,譯者對清華大學出版社,特別是龍啟銘編輯對本書翻譯工作的大力支持和幫助表示由衷感謝。
邏輯設計基礎(第2版)作者言
本書是計算機科學、計算機工程和電氣工程等專業的學生學習邏輯設計的入門教程。學習本教程不需要任何先決條件,雖然先學習一門工程導論課或者初級程式設計課會有所幫助。
本書強調基礎知識。通過大量實例進行講授。作者認為,學習邏輯設計的惟一途徑便是做大量的設計例題。因此,除了在正文中列舉大量例題之外,每章都另有一些解題實例,既有問題,也有答案。同時還附有大量練習(部分習題的答案在附錄B中給出)和每章的測驗題(答案在附錄C中)。此外,還安排有一系列實驗,以便把理論和實踐緊密聯繫起來。附錄A中列舉了進行這些實驗所需的實驗室標準硬體配置(晶片、開關、燈和導線)、適用於PC機或蘋果機的模擬板和兩個製作原理圖的工具。本課程可以單獨講授,不做實驗。但是,如果能配合做8~10個精心選擇的實驗,學生將會受益匪淺。
雖然計算機輔助工具已經廣泛用於大型系統的設計,但是學生必須先打好基礎。作為一門導論課,本書提供的基礎綽綽有餘。本書的原理圖製作練習和第8章關於硬體設計語言部分使學生可以順利過渡到基於計算機輔助設計工具的下一門課程。
出於本書敘述的需要,第1章首先對數製做一簡單扼要的回顧。已經學過這部分內容的學生,可跳過1.1節,直接學1.2節。然後著手討論組合系統設計過程中的各個步驟,以及如何編制真值表。
第2章介紹開關代數和利用通用門——與門、或門、非門、與非門、或非門、異或門和同或門(AND、OR、NOT、NAND、NOR、ExclusiveOR、ExclusiveNOR)實現開關函式。這裡關心的是它們的邏輯性能,而非它們的電子實現。
第3章討論用卡諾圖進行化簡。本章提供多種解題方法(可多達6個變數),既有單輸出,也有多輸出的題目。
第4章介紹兩種求解組合邏輯問題的運算方法:奎恩麥克路斯基方法和疊代合意法(Iterated Consensus)。這兩種方法都給出一個函式或一組函式的全部質蘊含項,然後用同樣的列表法求出最簡與或解。
第5章是關於更大規模組合系統的設計。本章介紹了幾種市場上可以買到的較大規模的器件,包括加法器、比較器、解碼器、編碼器、優先權編碼器和數據選擇器。接著討論邏輯陣列的套用——唯讀存儲器(ROM)、可程式邏輯陣列(PLA)、可程式陣列邏輯(PAL),從而實現中規模組合系統。最後,本章有兩個較大系統的設計。
第6章介紹時序系統。首先介紹鎖存器和觸發器的特性,然後討論分析時序系統特性的方法。
第7章介紹時序系統的設計過程。接著研究計數器的特殊情況。最後,便是對文字問題的求解,詳細介紹如何對文字表述的問題編制狀態表和狀態圖。
第8章討論更大規模的時序系統。首先研究移位暫存器和計數器的設計,然後介紹可程式邏輯器件(PLD),接著討論用於設計較複雜系統的三種方法,即算法狀態機圖(ASM, algorithmic state machine diagrams)、單次編碼和硬體設計語言(HDL,Hardware Design Languages)。最後,給出兩個較大系統的例子。
第9章研究狀態化簡和狀態分配問題。首先介紹用列表法進行狀態化簡,然後介紹利用分割法進行狀態化簡和狀態分配,從而簡化所用的組合邏輯。
本書的一大特點是提供了大量的解題實例。每一章都有大量例題,用以闡明書中介紹的各種方法。對於每一個例題都進行了詳細的求解。學生應在不參考本書答案之前,自行求解每一個例題,然後才將自己的答案和本書的答案相比較。
本書每一章還有一整套習題。部分習題的答案在附錄B中。授課教師可以通過我們的網站得到全部答案。此外,每章還有一套測驗題,測驗題的答案見附錄C。
本書的另一個特點便是在附錄中提供了許多實驗室作業,在附錄A中。有4個操作平台:基於硬體的邏輯實驗室(利用晶片、導線等);硬體實驗室模擬器,使學生可以在計算機螢幕上“連線”導線;還有兩個電路製作程式——LogicWorks 4 和Altera Max+plusII。關於這兩個程式,書中有詳盡的說明,使學生可以完成多種實驗。本書還有26個實驗室作業,其中一些有多個選項,教師可以任意採用某些選項,以改變作業的細節。
我們使用本教材作為一門4學分的課程。每周授課三個半小時,外加8個實驗室作業(實驗室由研究生助教管理,每周開放40小時,學生可以隨時前往做實驗。由研究生助教評定成績)。在授課過程中,我們講了如下各個章節:
第1章:全部。
第2章:全部(2.11除外)。
第3章:全部。
第4章:如果時間允許,放在期末。
第5章:全部(5.8節除外)。但有一個打分設計題需要參考這部分內容,分值占10%,學生通常分成2或3人一組來完成。
第6章:全部。
第7章:全部。
第8章:8.1節、8.2節和8.3節。有時根據8.7節安排第二個作業。
第9章和第4章:有時候我們還會剩一點時間來講其中一部分,但是從來未能二者兼顧。
要是學時不夠,2.10節可以壓縮,3.5節可以略去而不影響連續性。3.6節的內容用到5.7.2節中討論PLA。第5章和其他各章聯繫不大,雖然這部分內容對學生今後會有用處,教師可在內容上做一些取捨。第6章和第7章的SR和T觸發器可以刪去。7.2節和7.3節,即使刪去,關係也不大。同第5章的情況一樣,教師可在第8章的內容上做一些取捨。如果時間有限,可以只講9.1節。如果時間多一些,可以跳過9.1節,講9.2節和9.3節,即利用分割法進行狀態化簡。
致謝
我要感謝我的妻子Allyn對我的鼓勵,以及由於我埋頭著述而使她長期忍受寂寞。我在佛羅里達大西洋大學的幾位同事讀過我的部分手稿,並且利用我前期的書稿進行過教學。我要特別感謝Mohammad Ilyas、Imad Mahgoub、Oge Marques、Imad Jawhar、Abhi Pandya和Shi Zhong等人的幫助。此外,我要表達對Mohammad Ilyas、Roy Levow和Borko Fuhrt三位主任的謝意,他們的教學任務安排使我能夠完成本書的寫作。我特別要感謝我的學生們,正是他們給予了我寫這樣一本比較合適的教材的動力,本書前期的草稿也讓他們吃了不少苦頭,他們還提了許多建議和改進意見。我還要感謝Visram Rathnam對Altera 工具這一節所做的貢獻。
參與審閱 者
Michael McCool滑鐵盧大學
Pinaki Mazumder密西根大學
Nick Phillips南依利諾伊大學
Gary J. Minden堪薩斯大學
Daniel J. Tylavsky亞利桑那州立大學
Nadar I. Rafla波塞州立大學
Dan Stanzione克萊姆森大學
Frank M. Candocia佛羅里達國際大學
Lynm Stauffer索諾瑪州立大學
Rajeev Barua馬里蘭大學
上述各位審稿人提出了許多意見和建議,他們的寶貴意見使本書增色不少。最後,McGrawHill出版社的工作人員,特別是Carlise Paulson、Melinda Dougharty、Jane Mohr、Betsy Jones、Barbara Somogyi、Rick Noel、Sandy Ludovissy、Audrey Reiter和Dawn Bercier對於本書的最終出版起了不可替代的作用。互動寫作公司的Michael BohrerClancy也做出了很大貢獻。
艾倫·馬科維奇
目錄
第1章導論1
1.1數制的簡單回顧2
1.1.1八進制數和十六進制數5
1.1.2二進制加法7
1.1.3有符號數9
1.1.4二進制減法12
1.1.5二十進制碼(BCD)13
1.1.6其他編碼15
1.2組合系統的設計過程17
1.3無關條件19
1.4列真值表20
1.5實驗室23
1.6解題實例24
1.7習題33
1.8本章測驗題36
第2章開關代數與邏輯電路38
2.1開關代數的定義38
2.2開關代數的基本性質41
2.3代數函式的處理43
2.4用與門、或門和非門實現邏輯函式47
2.5從真值表到代數表達式51
2.6卡諾圖初步54
2.7反函式和或與式60
2.8與非門、或非門和異或門63
2.9代數表達式的化簡68
2.10代數函式的處理及與非門實現74
2.11更一般的布爾代數80
2.12解題實例82
2.13習題99
2.14本章測驗題105
第3章卡諾圖108
3.1用卡諾圖求解最簡與或表達式111
3.1.1卡諾圖法1111
3.1.2卡諾圖法2117
3.2無關項122
卡諾圖法3124
3.3或與式125
3.4最省門的電路實現128
3.5五變數和六變數的卡諾圖130
3.6多輸出問題136
3.7解題實例145
3.8習題166
3.9本章測驗題170
第4章函式的最簡化算法174
4.1單輸出問題的奎恩麥克路斯基方法174
4.2單輸出問題的疊代合意法177
4.3單輸出問題的質蘊含項表180
4.4多輸出問題的奎恩麥克路斯基方法187
4.5多輸出問題的疊代合意法190
4.6多輸出問題的質蘊含項表192
4.7解題實例196
4.8習題214
4.9本章測驗題215
第5章較大規模的組合邏輯系統216
5.1組合邏輯電路中的延時216
5.2加法器和其他算術運算電路218
5.2.1加法器218
5.2.2減法器和加/減法器221
5.2.3比較器221
5.3解碼器222
5.4編碼器和優先權編碼器227
5.5數據選擇器228
5.6三態門230
5.7門陣列——ROM、PLA和PAL231
5.7.1用唯讀存儲器進行設計234
5.7.2用可程式邏輯陣列進行設計235
5.7.3用可程式陣列邏輯進行設計237
5.8較大規模電路的例子239
5.8.1七段顯示(第一個主要的例子)240
5.8.2差錯編碼系統246
5.9解題實例248
5.10習題275
5.11本章測驗題284
第6章時序系統的分析288
6.1狀態表和狀態圖289
6.2鎖存器和觸發器291
6.3時序系統的分析298
6.4解題實例305
6.5習題314
6.6本章測驗題320
第7章時序系統的設計322
7.1觸發器的設計方法326
7.2同步計數器的設計338
7.3異步計數器的設計347
7.4生成狀態表和狀態圖350
7.5解題實例361
7.6習題375
7.7本章測驗題381
第8章求解更大規模的時序問題383
8.1移位暫存器383
8.2計數器387
8.3可程式邏輯器件(PLD)392
8.4用ASM圖進行設計396
8.5單次編碼399
8.6硬體設計語言399
8.7更複雜的例子402
8.8解題實例407
8.9習題413
8.10本章測驗題416
第9章時序電路化簡418
9.1列表法進行狀態化簡419
9.2分割法426
9.2.1分割的性質429
9.2.2求SP分割429
9.3用分割法進行狀態化簡432
9.4狀態分配437
9.5解題實例443
9.6習題456
9.7本章測驗題460
附錄A實驗室實驗462
A.1硬體邏輯實驗室462
A.2WinBreadboardTM和MacBreadboardTM465
A.3LogicWorks4簡介466
A.4AlteraMax+plusⅡ簡介470
A.5一組邏輯設計實驗472
A.5.1基於第2章內容的實驗473
A.5.2基於第5章內容的實驗474
A.5.3基於第6章內容的實驗476
A.5.4基於第7章內容的實驗478
A.5.5基於第8章內容的實驗478
A.6在本書正文和實驗中提到過的晶片的布局479
附錄B部分習題答案484
附錄C每章測驗題答案506
中、英文術語對照表517