內容提要
本書是由具有多年豐富教學和實踐經驗的高校教師編寫,密切結合實際,概念清晰,結構合理,重點突出,便於教學和學習。
本書內容包括數字電路基礎、集成邏輯門、組合邏輯電路、觸發器、時序電路、存儲器和可程式邏輯器件、脈衝波形產生和定時電路、數模和模數轉換電路、數字系統設計舉例等,各章附有習題和答案。
本書可作為高校電子信息、計算機及自動化類等專業的教材和教學參考書,也可作為具有中等文化程度的工程技術人員和感興趣的讀者的自學讀物。
圖書目錄
第1章 引言
用數位訊號完成對數字量進行算術運算和邏輯運算的電路稱為數字電路,或數字系統。由於它具有邏輯運算和邏輯處理功能,所以又稱數字邏輯電路。現代的數字電路由半導體工藝製成的若干數字集成器件構造而成。邏輯門是數字邏輯電路的基本單元。存儲器是用來存儲二值數據的數字電路。從整體上看,數字電路可以分為組合邏輯電路和時序邏輯電路兩大類。
1.1 數字電路和數字系統
1.2 數字邏輯和邏輯代數
1.3 數字積體電路和器件
第2章 數字邏輯基礎
邏輯運算又稱布爾運算 布爾用數學方法研究邏輯問題,成功地建立了邏輯演算。他用等式表示判斷,把推理看作等式的變換。這種變換的有效性不依賴人們對符號的解釋,只依賴於符號的組合規律 。這一邏輯理論人們常稱它為布爾代數。20世紀30年代,邏輯代數在電路系統上獲得套用,隨後,由於電子技術與計算機的發展,出現各種複雜的大系統,它們的變換規律也遵守布爾所揭示的規律。邏輯運算 (logical operators) 通常用來測試真假值。最常見到的邏輯運算就是循環的處理,用來判斷是否該離開循環或繼續執行循環內的指令。
2.1 數制與代碼
2.2 基本邏輯運算和邏輯門
2.3 邏輯函式及邏輯代數公式
2.4 邏輯函式標準表達式
2.5 邏輯函式化簡
2.6 邏輯函式的門電路實現
習題
第3章 集成邏輯門
3.1 概述
3.2 CMOS邏輯門
3.3 TTL邏輯門
3.4 ECL邏輯門
習題
第4章 組合邏輯電路
4.1 組合邏輯電路分析和設計
4.2 加法器
加法器是產生數的和的裝置。加數和被加數為輸入,和數與進位為輸出的裝置為半加器。若加數、被加數與低位的進位數為輸入,而和數與進位為輸出則為全加器。常用作計算機算術邏輯部件,執行邏輯操作、移位與指令調用。在電子學中,加法器是一種數位電路,其可進行數字的加法計算。在現代的電腦中,加法器存在於算術邏輯單元(ALU)之中。 加法器可以用來表示各種數值,如:BCD、加三碼,主要的加法器是以二進制作運算。由於負數可用二的補數來表示,所以加減器也就不那么必要。
加法器是為了實現加法的。
即是產生數的和的裝置。加數和被加數為輸入,和數與進位為輸出的裝置為半加器。若加數、被加數與低位的進位數為輸入,而和數與進位為輸出則為全加器。常用作計算機算術邏輯部件,執行邏輯操作、移位與指令調用。
對於1位的二進制加法,相關的有五個的量:1,被加數A,2,被加數B,3,前一位的進位CIN,4,此位二數相加的和S,5,此位二數相加產生的進位COUT。前三個量為輸入量,後兩個量為輸出量,五個量均為1位。
對於32位的二進制加法,相關的也有五個量:1,被加數A(32位),2,被加數B(32位),3,前一位的進位CIN(1位),4,此位二數相加的和S(32位),5,此位二數相加產生的進位COUT(1位)。
要實現32位的二進制加法,一種自然的想法就是將1位的二進制加法重複32次(即逐位進位加法器)。這樣做無疑是可行且易行的,但由於每一位的CIN都是由前一位的COUT提供的,所以第2位必須在第1位計算出結果後,才能開始計算;第3位必須在第2位計算出結果後,才能開始計算,等等。而最後的第32位必須在前31位全部計算出結果後,才能開始計算。這樣的方法,使得實現32位的二進制加法所需的時間是實現1位的二進制加法的時間的32倍。
4.3 算術邏輯單元
算術邏輯單元(arithmetic logic unit,縮寫ALU)是進行整數運算的結構。現階段是用電路來實現,套用在電腦晶片中。
在計算機中,算術邏輯單元(ALU)是專門執行算術和邏輯運算的數字電路。ALU是計算機中央處理器的最重要組成部分,甚至連最小的微處理器也包含ALU作計數功能。在現代CPU和GPU處理器中已含有功能強大和複雜的ALU;一個單一元件也可能含有ALU。
1945年數學家馮諾伊曼在一篇介紹被稱為EDVAC的一種新型電腦的基礎構成的報告中提出ALU的概念。
早期發展
1946年,馮諾伊曼與同事合作為普林斯頓高等學習學院(IAS)設計計算機。隨後IAS計算機成為後來計算機的原形。在論文中,馮諾伊曼提出他相信計算機中所需的部件,其中包括ALU。 馮諾伊曼寫到,ALU是計算機的必備組成部分,因為已確定計算機一定要完成基本的數學運算,包括加減乘除。於是他相信「(計算機)應該含有專門完成此類運算的部件。」
數字系統
ALU必須使用與數字電路其他部分使用同樣的格式進行數字處理.對現代處理器而言,幾乎全都使用二進制補碼錶示方式。早期的計算機曾使用過很多種數字系統,包括反碼、符號數值碼,甚至是十進制碼,每一位用十個管子。 以上這每一種數字系統所對應的ALU都有不同的設計,而這也影響了當前對二進制補碼的優先選擇,因為二進制補碼能簡化ALU加法和減法的運算。 一個簡單的能進行與或非和加運算的2位ALU。
可行性分析
絕大部分計算機指令都是由ALU執行的。ALU從暫存器中取出數據,數據經過處理將運算結果存入ALU輸出暫存器中。其他部件負責在暫存器與記憶體間傳送數據。 控制單元控制著ALU,通過控制電路來告訴ALU該執行什麼操作。
簡單運算
大部分ALU都可以完成以下運算∶
整數算術運算(加、減,有時還包括乘和除,不過成本較高)
位邏輯運算(與、或、非、異或)
移位運算(將一個字向左或向右移位或浮動特定位,而無符號延伸),移位可被認為是乘以2或除以2。
複雜運算
工程師可設計能完成任何運算的ALU,不論運算有多複雜;問題在於運算越複雜,ALU成本越高,在處理器中占用的空間越大,消耗的電能越多。 於是,工程師們經常計算一個折中的方案,提供給處理器(或其他電路)一個能使其運算高速的ALU,但同時又避免ALU設計的太複雜而價格昂貴。構想你需要計算一個數的平方根,數字工程師將評估以下的選項來完成此操作∶
設計一個極度複雜的ALU,它能夠一步完成對任意數字的平方根運算。這被稱為單時鐘脈衝計算。
設計一個非常複雜的ALU,它能夠分幾步完成一個數字的平方根運算。不過,這裡有個訣竅,中間結果經過一連串電路,就像是工廠里的生產線。這甚至使得ALU能夠在完成前一次運算前就接受新的數字。這使得ALU能夠以與單時鐘脈衝同樣的速度產生數字,雖然從ALU輸出的結果有一個初始延遲。這被稱為計算流水線。
設計一個複雜的ALU,它能夠計算分幾步計算一個數字的平方根。這被稱為互動計算,經常依賴於帶有嵌入式微碼的複雜控制單元。
在處理器中設計一個簡單的ALU,去掉一個昂貴的專門用於此運算的處理器,再選擇以上三個選項之一。這被稱為協處理器。
告訴編成人員沒有協處理器和仿真設備,於是他們必須自己寫出算法來用軟體計算平方根。這是由軟體圖書館完成的。
對協處理器進行仿真,也就是說,只要一個程式想要進行平方根的計算,就讓處理器檢查當前有沒有協處理器。如果有的話就使用其進行計算,如果沒有的話,中斷程式進程並調用作業系統通過軟體算法來完成平方根的計算。這被稱為軟體仿真。
以上給出的選項按最快和最貴到最慢和最經濟排列。於是,雖然甚至是最簡單的計算機也能計算最複雜的公式,但是最簡單的計算機經常需要耗費大量時間,通過若干步才能完成。 強大的處理器,比如英特爾酷睿和AMD64系列對一些簡單的運算採用1號選項,對最常見的複雜運算採用2號選項,對極為複雜的運算採用3號選項。這是具有在處理器中構造非常複雜的ALU的能力為前提的。
輸入和輸出
ALU的輸入是要進行操作的數據(稱為運算元)以及來自控制單元的指令代碼,用來指示進行哪種運算。它的輸出即為運算結果。 在許多設計中ALU也接收或發出輸入或輸出條件代碼到(或來自)狀態暫存器。這些代碼用來指示一些情況,比如進位或借位、溢出、除數為零等。
ALU與FPU
浮點單元也對兩個數值進行算術運算,但是這種運算已浮點數表示,比在ALU中一般使用的補碼錶示方式複雜的多。為了完成此類運算,FPU里嵌入了多個複雜電路,包括一些內部ALU。 工程師一般認為ALU是處理整數型(比如補碼和BCD碼)算術運算的的電路,而對更為複雜的格式(比如浮點型、複數型)進行計算的電路則擁有一個更加匹配的稱謂。
4.4 編碼器
編碼器(encoder)是將信號(如比特流)或數據進行編制、轉換為可用以通訊、傳輸和存儲的信號形式的設備。編碼器把角位移或直線位移轉換成電信號,前者稱為碼盤,後者稱為碼尺。按照讀出方式編碼器可以分為接觸式和非接觸式兩種;按照工作原理編碼器可分為增量式和絕對式兩類。增量式編碼器是將位移轉換成周期性的電信號,再把這個電信號轉變成計數脈衝,用脈衝的個數表示位移的大小。絕對式編碼器的每一個位置對應一個確定的數字碼,因此它的示值只與測量的起始和終止位置有關,而與測量的中間過程無關。
4.5 解碼器
4.6 數據選擇器和數據分配器
4.7 數值比較器
4.8 組合邏輯電路的競爭冒險
4.9 VHDL語言
4.10 組合邏輯電路VHDL設計舉例
習題
第5章 觸發器
5.1 基本RS觸發器
5.2 時鐘觸發器
5.3 邊沿觸發器
5.4 主從觸發器
5.5 觸發器的動態特性
5.6 觸發器的激勵表及相互轉換
5.7 集成觸發器
習題
第6章 時序邏輯電路
6.1 概述
6.2 同步時序邏輯電路分析
6.3 計數器
6.4 暫存器
6.5 同步時序邏輯電路設計
6.6 時序邏輯電路VHDL設計舉例
習題
第7章 存儲器和可程式邏輯器件
第8章 脈衝波形產生和定時電路
第9章 數模和模數轉換電路
第10章 數字系統設計舉例
習題參考答案
附錄 典型中規模積體電路的國標邏輯符號及說明
參考文獻