300 likes | 1.16k Views
數位邏輯與實習. Week 8-12 邏輯閘層次的最小化 曾建勳. 非退化形式. 四種基本閘 : AND, OR, NAND, NOR 二階閘的組合電路中, 假如在第一階安排其中一種 基本 形式的閘,且在第二階也安排一種形式的閘 ( 可相同 ) ,則我們可以找到16種可能組合的二階形式 ( e.g. NAND-NAND 電路)。 其中有8種:稱為退化 (degenerate) 形式 => 因為它們退化成一個單一的運算 (e.g. AND-AND=AND) 其他 8 種為非退化 (nondegenerate) 形式 :
E N D
數位邏輯與實習 Week 8-12 邏輯閘層次的最小化 曾建勳
非退化形式 • 四種基本閘: AND, OR, NAND, NOR • 二階閘的組合電路中,假如在第一階安排其中一種基本形式的閘,且在第二階也安排一種形式的閘(可相同),則我們可以找到16種可能組合的二階形式 (e.g.NAND-NAND電路)。 • 其中有8種:稱為退化 (degenerate) 形式=> 因為它們退化成一個單一的運算 (e.g. AND-AND=AND) • 其他8種為非退化 (nondegenerate) 形式: • AND-OR 與OR-AND:基本二階閘 • NAND-NAND = 積項和 NOR-NOR = 和項積 • NOR-OR, NAND-AND, OR-AND, AND-OR 下面討論 AND-OR NAND-NAND NOR-OR OR-AND OR-AND NOR-NOR NAND-AND AND-OR dual
AND-OR-INVERT電路 AND-OR-INVERT (AOI) 電路: • AND-NOR = NAND-AND = AOI電路 (和項積表示) • E.g. F = (AB+CD+E)‘ 以線結-AND邏輯閘表示: 先以F‘ = AB+CD+E (積項和)表示,再求補數F OR-反相 反相-AND
OR-AND-INVERT電路 OR-AND-INVERT (OAI)電路 • OR-NAND = NOR-OR = OAI (積項和表示) • F = ((A+B)(C+D)E)'以線結-OR邏輯閘表示: 先以F' = (A+B)(C+D)E (和項積)表示,再求補數F 反相-OR AND-反相
列表總論與舉例說明 例題 3-11利用圖(a)完成表3-3的4種電路 F‘ = x’y+xy‘+z(F’:以0得出積項和) • F = (x‘y+xy’+z)‘ (F:AOI電路 AND-NOR,NAND-AND) F = x'y'z' + xyz' (F:以1得出積項和) • F' = (x+y+z)(x'+y'+z) (F':和項積) • F = ((x+y+z)(x‘+y’+z))‘ (F: OAI電路 OR-AND, NOR-OR)
列表總論與舉例說明 ∵OR-反相=反相-AND ∵AND-反相=反相-OR
互斥-OR函數 • 互斥-OR函數[Exclusive-OR (XOR)]: 奇函數 • x Å y = xy'+x'y • 互斥-NOR (XNOR) (equivalence): 偶函數 • (xÅy)' = xy + x'y' • 一些恆等式應用在XOR • xÅ0 = x • xÅ1 = x' • xÅx = 0 • xÅx' = 1 • xÅy' = (xÅy)' • x'Åy = (xÅy)' • 交換性與結合性 • AÅB = BÅA • (AÅB) ÅC = AÅ (BÅC) = AÅBÅC
互斥-OR函數 電路實現: • (x'+y')x + (x'+y')y = xy'+x'y = xy x Å y = xy'+x'y ∵反相-OR=AND-反相
三變數奇函數與偶函數 • ABC = (AB)C(AB'+A'B)C' +(AB+A'B')C = AB'C'+A'BC'+ABC+A'B'C = S (1,2,4,7) • 函數成立奇數個變數都等於1
三變數奇函數與偶函數 奇函數與偶函數的邏輯圖
四變數互斥-OR函數 AÅBÅCÅD=(AÅB)Å(CÅD ) =(AB’+A’B)Å(CD’+C’D) =(AB’+A’B)(CD+C’D’)+(AB+A’B’)(CD’+C’D) = Σ(1,2,4,7,8,11,13,14)
同位產生器與檢查 • 為了在資料通訊及處理上檢查錯誤,有時候會在ASCII字元上加上第8個位元來指示同位位元。(chapter 1.7) • 同位位元 (parity bit) : 用來指示訊息中1的總數是偶數或是奇數的一個額外的位元。 • 偶同位檢查: • 全列位元1的總數是偶數第8個位元 = 0 接收端檢查無誤; • 全列位元1的總數是奇數第8個位元 = 1 接收端檢查出錯誤 • 奇同位檢查: • 全列位元1的總數是奇數第8個位元 = 0 接收端檢查無誤; • 全列位元1的總數是偶數第8個位元 = 1 接收端檢查出錯誤 • 傳送器中產生同位位元的電路稱為同位產生器 • 接收器中檢查同位的電路稱為同位檢查器
同位產生器與檢查 一起被以偶同 位方式傳送出 傳送器中 1+1=2 (偶數個1) P=1 P是奇函數 P = xÅyÅz
同位產生器與檢查 (偶同位傳送)奇數個1 資料傳送有錯誤 C=1 (有反應) C也是奇函數 C = xÅyÅzÅP
同位產生器與檢查 • 摘要:同位產生器與檢查器 • 偶同位位元: P = xÅyÅz • 同位檢查器: C = xÅyÅzÅP • C =1:奇數個資料位元錯誤發生 • C = 0:資料正確或偶數個資料位元錯誤發生(接收的位元值=0) 圖(b)=圖(a) if P=0 (∵z⊕0=z)
硬體描述語言(HDL) • 一種以計算機為基礎而用文字的形式來描述數位系統硬體電路的語言: • 硬體結構 • 功能/行為 • 時序 • HDL: • VHDL: 最初用來作為軍事防衛的防禦命令語言 • Verilog HDL: Cadence Design Systems 公司開發,比VHDL容易學及使用 (本書採用)
A Top-Down Design Flow Specification RTL design and Simulation Logic Synthesis Gate Level Simulation ASIC Layout FPGA Implementation
模組宣告 • 關鍵字範例: module, end-module, input, output, wire, and, or,與not. HDL範例3-1
HDL範例 3.1 • 圖3-37電路的HDL描述 例證後的模組
HDL 範例 3.2 • 將範例3-1中and, or和not閘分別具有時間延遲30, 20, 10 ns。假如這個電路被模擬,並且輸入由A,B,B=0 變成 A,B,C=1,則輸出的改變如表3-6所示。
閘延遲 (範例3-1)
HDL範例 3.3 HDL範例3-3為模擬一個具有延遲電路的測試
布林表示式 • 圖3-37電路的布林表示式 • 布林表示式: HDL範例 3.4
使用者定義的基本閘 • 使用關鍵字primitive作宣告,後面接著是名稱以及埠名單。 • 只可以有一個輸出,且此輸出必須列在埠名單的第一個,還有必須用關鍵字output來宣告。 • 輸入數目不限制,至於它們在input宣告中的順序則必須與它們在下面表中所給值的順序相同。 • 真值表必須在關鍵字table及endtable之間。 • 輸入值依順序列出,用冒號 (:) 代表結束。輸出通常是每一列的最後一個記錄,後面跟著是一個分號 (;)。 • 最後用關鍵字endprimitive做為UDP宣告的結束。 宣告: 產生一個可實現圖3-39所示硬體的電路。
HDL範例 3.5 只能用在模擬 不能用在合成