2015-05-01

[數位邏輯]CH4

[數位邏輯]CH4
用書:Digital Number WITH AN INTRODUCTION TOTHE VERILOG  5thEdition



作者:Mani Ciletti
習題解答:第四版解答(注意版本不一樣)
筆記作者:曾理碩/啾咪喵
分享模式:創用cc 姓名標示-相同方式分享 (cc分享限筆記,不包括連外文件、投影片、作業、作業解答)
                      歡迎分享本文




部格相關連結:

前言:
    因為是筆記,通常以自己不會的地方做加強
    主要寫概念
    而較多複雜邏輯推理的地方會略過
    因此使用時請作為導引手冊
    請務必搭配課本使用(上方有連結)
    內文提到頁碼以紙本課本為主
    與電子書誤差為16頁[建議以章節翻找]

載點:    [筆記]    [投影片]    [作業]    [作業解答]






==========(以下為筆記內容,因為格式關係,完整資料請下載PDF)==========
4-1   簡介
        Combinational logic        (chapter 4)
                Output只與Input有關
        Sequential logic              (chapter 5)
                包含記憶元件(狀態)
                Output是由狀態和Input組合而成
相當於Output也受過去的Input影響


4-2   Combinational logic(組合電路)
        當有n個輸入
        就會有個輸出
        應用:加法器、減法器、乘法器、比較器、解碼器、編碼器


4-3 分析步驟         (分析一個邏輯電路)
        先確定這不是Sequential logic (沒有回受[Feedback]或記憶體元件)
        寫出Output的函式
                標記InputOutput的代數
                將所有Output賦予有意義的名字
                將每個電路段都標記符號
                將每個符號都用Input表示出來
        寫出truth table
整理函式


4-4   設計流程        (設計一個邏輯電路)
                了解問題
                確定有哪些InputOutput
                標記InputOutput的代數
                寫出truth table
                簡化方程式(K’s map)
                畫邏輯電路圖
                (例子見p.148[電子書p.132])


4-5 二進制加、減法器
        (4-4做出來)
        加法器有兩種:
                Half adder:只能做2 input的相加
                        只有兩個input跟兩個output
                        S = xy
                        C = xy
                Full adder:能處理3 input的相加(多了前一位進位”)
                        有三個input跟兩個output
                        S      = xyz    (實作時使用)
                                 = xy’z’ + x’yz’ + xyz + x’y’z
                        C      = xy + yz + xz
                                 = (xy)z + xy    (實作時使用,可重複使用邏輯匣)
                之後只要使用加法器串在一起就能進行多位數加法

        進位傳播(延遲)
                然而上方的加法器有個缺點:進位傳輸要經過兩個邏輯匣
                也就是每進一次未就會有兩個邏輯匣的delay
                到第n位會有2n個邏輯匣的delay
                寧可用複雜一點的電路,也要維持住速度
因此我們想到:其實每個C(進位)都是由一個方程式來控制
            通常定義   
                         =
                                                 =  +

                        推得             = 前一位進位
                                             =  +
                                             =  +
 =  +
 =  +  +
                                             =  +
                                                 =  +  +  +
                                                 =  +  +  +
                                                (這裡看出課本P.156[電子書P.140]寫錯了)
                        藉由這個方法,每個進位只會有兩個邏輯匣的delay
                        將整個電路整合在一起就是4bit的加法器


減法器
        簡單的說:使用加法器配合2’s compliment就能達成

溢位
        兩個正數相加時
                過大會使MSB-1進位進到標記正負號MSB
                導致變成負數
                (MSB-1位數進位)
        兩個負數相加時
                過大會使MSB-1無法進位到MSB
                MSB是兩個1而進位變成0
                導致變成正數
                (MSB位數進位)
                為確保數值正確
                MSBMSB-1的位置值拉出來取OR
                當這個值 = 1時,我們就知道溢位了
                (4bit加法器裡要取出OR的值為)


4-6   十進制加法器
        先用4-4的設計流程跑一次好了
                十進位在布林是以4bit表現
                因此兩個十進位數字相加有九個input (2*4bit數字 + 進位1bit)
                output5(4bit數字 + 進位1bit)
                總共有組合,5條方程式
                ……
        等等!會算死呦喵!

        解決的方法是使用剛剛製造出來的4bit的加法器
        不過要使用兩個呦!
        ?為啥?
        因為十進位以二進位表示時
        6個值是沒有使用到的
        當發現有進位(超過1001)
        應當把值 再加上6” (詳見CH1)
                這邊判定進位請使用 ”4-4設計流程
        因此實作如p.162[電子書p.146]

4-7   二進制乘法
        乘法就使用直式乘法來處理
        然後會用到加法器,再配合使用就可以了

4-8   比較器
        4bit比較器為例
        相等情形
                相等情形就是每一位都相同
                使用”4-4設計流程判定知道其每個bit都以Exclusive NOR處理
                但是
                為了減少使用的邏輯匣
                實作上是不一樣…(p.166[電子書p.150])
        大於跟小於情形
都要從最高為開始比較
                值得注意的是高位樹已經比出結果
                就會有電路去屏蔽後面位元比較的結果


4-9   解碼器
        圖示:
        編碼器就是將n bit輸入的數值
        在不同的訊號下分別由output選一條輸出1(使用NAND就輸出0)
        例如三轉八的編碼器會寫做”3x8 decoder”

        在組合上可以直接製做
也可以用兩個3x8 decoder來組成4x16 decoder
以此類推

至於為何要把密碼拆出來
可以想像每條線都是一個minterm
使用時需要哪些可以很直覺的拉出來
也可以加入”Enable”
只要Enable = 1就輸出全部都是0(使用NAND就輸出1)


4-10編碼器
        編碼器也可以使用”4-4設計流程來做出函式給每個output

        優先編碼法(Priority encoded)
                但是輸入如果有誤時(例如全為0或超過一個為1) [NAND情況依舊相反]
                無法確定輸出
                因此我們以檢查的方式來判定
                優先順位由最高位開始依序向右
                        有一碼為有效值輸出”(V)
                        若都沒有則使V = 0令輸出無效化
當為有效輸出時
                        優先順序由D3>D2>…>D0 (注意:由右而左!)
                        由優先順序大開始檢查
                        檢查到1為止

                        (p.172[電子書p.156])
                        剩下可使用”4-4設計流程完成

        有一碼為有效值輸出”(V)
        若其為0輸出無效
        當為有效輸出時
        優先順序由D3>D2>…>D0
        由優先順序大開始檢查
        檢查到1為止




4-11 多功器
        圖示:
        兩個以上input的資訊,但只有一個output line
        用多功器選擇要讀取那些資訊輸出(通常到螢幕)
        其實只需要用幾個select bit()來選取需要的線路就能做出來了


可以拿MUX實現布林函式(個人認為只用在考題= =|||)
                簡單的說在這種情況下
                只有一種資訊
                其他都是選擇該資訊走向的select bit
                因為資訊產生出來的組合只有四種(D, D’, 1, 0)
                因此可能有一些input是一樣的東西

        三態匣(Three-State Gates)
                算是一種斷路系統
                用一個”Control input”來控制電路是否通路(1時通路)
                用三態匣搭配解碼器能控制要放哪一條訊息到output
                就相當於MUX

Enable 釐清
Enable Low
Enable0時才能執行的電路
Enable1會斷路或無輸出的電路
        同理知Enable High


4-12 HDL(請恕我忽略)

沒有留言:

張貼留言