2015-06-02

[數位邏輯]CH5

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



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




部格相關連結:

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

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



==========(以下為筆記內容,因為格式關係,完整資料請下載PDF)==========
...後面位置都跑掉了喵...

5-1   簡介        (其實是上一章複製貼上的XD)
        組合式邏輯電路Combinational logic   (chapter 4)
                一切Output只與Input有關,無記憶體元件
        循序電路Sequential logic             (chapter 5)
                包含記憶元件(storage element)(用狀態來儲存資料)
                Output是由狀態和Input組合而成
相當於Output也受過去的Input影響

5-2   循序電路與分類
一種回授(feedback)”的概念,將某電路輸出再作為其輸入
(input, current state) (output, next state)
clock generator:信號製造器
clock pulses(時脈訊號)
       
”Clock是否同步分類:
同步(synchronous):狀態改變在clock進來時(同一個控制時脈控制)
        最常使用且穩定
非同步(asynchronous):狀態改變在任何時候(不同的控制時脈控制)

        何時可以改變分類(P.212 [FIGURE5.8])
Level triggered En狀態決定可否改變資訊
Positive-level triggered:高電位觸發
Negative-level triggered:低電位觸發
Edge triggered :只有在狀態改變時才能改變資訊
Positive-edge triggered:由低至高電位觸發
Negative-edge triggered:由高至低電位觸發
>Edge trigger level trigger圖示差別在箭頭跟符號輸入名(En, Clk)<

        ”Output輸出所需參數分類(p.232 [FIGURE5.21])
                米利型有限狀態機(Mealy Machine)
                        Output與自己的狀態(State)Input都有關
                摩爾型有限狀態機(Moore Machine)
                        Output只與自己的狀態(State)有關
                        Input無關



5-2.5 名詞解釋(源自5-5)
        狀態篇:
        狀態(State)                         一個儲存位元內所存的值,可為1, 0
                                                        分為present state, next state
        狀態方程(State Equation)      又稱轉移方程(Transition equation)
決定”next state”的方程式
                                                        參數包含Inputpresent state
        狀態表(State Table)                有點像Truth Table
                                                        Inputpresent state所有可能列出
                                                        並對應Output, next state所產生的輸出
        狀態圖(State Diagram)          將一種可能狀態畫成一個圓
                                                        Input分別為0, 1時畫向下一個狀態
                                                        (Moore Machine會直接畫向下一個狀態,無參數)
        輸入方程(Input equation)      又稱激發方程式 (Excitation equation)
由於我們使用不同的Flip Flop來實現電路
                                                        傳給Flip Flop的資料不一定就是我們原始的資料
                                                        參數有Input, present state

                狀態方程(State Equation)、狀態表(State Table)、狀態圖(State Diagram)可互推
                創作電路時常先釐清問題、畫出狀態圖再推其他兩者(5-7 減態&分配時一起寫)
                備註:考試會考一題互推題

        方程表(Function Table)          講述Latches時對輸入對應之輸出結果之列表
                                                        有點像Truth Table
        特性表(Characteristic Tables)        講述Flop Flop時對輸入對應之輸出結果之列表
                                                        好啦好啦!叫Table的都是列表將情形寫出來啦XD
                                                        >考試時會出一個新的電路考<
特徵方程(Characteristic Equations) 跟狀態方程相似
                                                差別在於這是針對一種Flip Flop整體的特性方程式
                                                狀態方程式對於一組電路數個Flip Flop整體方程
Excitation table                       利用present stateNext state變化來得知input



5-3   儲存位元:鎖存器(Latches)
        SR LatchS, R分別代表Set / Reset
                NOR實現:高電位設定(雙高禁用)
                        (S,R) = (0,0):不改變(No operation)
                        (S,R) = (0,1):清除狀態(reset) (reset0)
                        (S,R) = (1,0):設定(set)(set1)
                        (S,R) = (1,1):禁用(forbidden)(因為無法確認結束時會跳成哪一種類型)
                       
                NAND實現:低電位設定(雙低禁用)
                        (S,R) = (0,0):禁用(forbidden)(因為無法確認結束時會跳成哪一種類型)
                        (S,R) = (0,1):設定(set) (set0)
                        (S,R) = (1,0):清除狀態(reset) (reset1)
                        (S,R) = (1,1):不改變(No operation)


D Latch(透明鎖存器):解決禁用問題
                        為解決禁用問題而造成不確定結果的電路風險
                        我們發現(不管NANDNOR實現電路)只要讓SR相反則必定有解
                        然而該如何做出No change?那就加上一個Enable來控制吧!
                        加上我們習慣使用”Enable High”的電路
                        在不多使用邏輯匣的情況下用NAND來實現是最好的
                NAND實現:Enable High
En
D
Q
0
X
No change
1
0
0
1
1
1





                NOR實現:Enable low
En
D
Q(EXIT-1)
0
0
1
0
1
0
1
X
No change




        Latch符號:



5-4   儲存位元:正反器(Flip flop)
正反器(flip-flops):記憶儲存單位
                兩個輸出:正常值、反值
                有人命令他改變狀態他才改變(通常為時脈),有不任意改變的特性
                往後大多將以edge trigger為主

D Flip-Flop
        Master-slave D Flip-Flop
                        En是正的時候,Y = DYQ斷開
                        而在轉換的瞬間,該瞬間的Y傳入Q
                        故其為edge trigger

                D-type positive-edge-triggered Flip-Flop
                        幹!為啥要這麼複雜!
因為用到的邏輯匣比上面少了整整兩個(25%)
NAND實現
        因為用NAND Latch               
                                因此假定現在的情形S = 1, R = 1(No change)
                                接著將Clk數值由010來觀察變化
                                會發現只有01的瞬間D的值才會衝入Q
                                如果是negative-edge-triggered?
給我在Clk加個inverter結束這回合
                        NOR實現
        因為用NOR Latch         
                                因此假定現在的情形S = 0, R = 0(No change)
                                會發現只有10的瞬間D的值才會衝入Q
                                圖瑱直接將上圖的NAND改成NOR



JK Flip Flop
J\K
0
1
0
Q
0
1
1
Q’
                注意:這裡事先設定結果,再決定電路
                先決定Characteristic Table後觀察
                如最右方表格
                向左則+ Q;向下則+ Q’,以此推出方程式
D Flip-Flop實現
                        Q(t+1) = JQ’ + K’Q




NAND實現
                         Q(t+1) = JQ’ + K’Q

NOR實現
                        NAND改成NOR
                        因為J, K, Q, Q’, CLK都被反向
                        因此結果不變,不過時脈變成negative-edge-triggered

        T Flip Flop
D Flip-Flop實現
Q(t+1) = TQ’ + T’Q
JK Flip Flop實現
Q(t+1) = TQ’ + T’Q = JQ’ + K’Q
        J, K同輸入
NAND實現
        唉呀!把輸入相連就OK啦!
NOR實現
                        同上


 
Q(t+1) = D
D
Q(t+1)
0
0
1
1
特點:
                D Flip-Flop
                        Next state = Input
                        可以控制成”0”, “1”

Q(t+1) = TQ
T
Q(t+1)
0
Q(t)
1
Q’(t)
T Flip Flop
                        Next stateInput來決定是否要改變
                        結果是”Q(x)”改變, “Q’(x)”不改變
                        Q(t+1) = TQ’ + T’Q = TQ
                        JK Flip Flop輸入相同,使其結果為”Q””Q’”
Q(t+1) = JQ’ + K’Q
J
K
Q(t+1)

0
0
Q(t)
No change
0
1
0
Reset
1
0
1
Set
1
1
Q’(t)
inverter
                        也可以用D Flip Flop實現,將T XOR Q作為input

JK Flip Flop
用兩個輸入來控制Next state的四種狀態
結果包含上面的兩種

        圖示:

Asynchronous reset(非同步重設)
                非特定時間點,只要特定信號進來就會改變
                加入”reset”,可以設定初始判斷
                reset = 0,可以將Q值重置為0
                注意圖示上的符號reset有圈圈



5-5   分析電路圖
        步驟:
                由電路圖寫出State tableState equationOuput inquation
                對應不同Flip FlopCharacteristic Table寫出Input inquation
                畫出狀態圖

        D Flip Flop的分析
                因為Input = Next State
                Input equation = State equation
        JKT Flip Flop的分析
                在寫State table
                記得將Input轉成Flip FlopInput
                每筆Flip FlopInput都是一個Input equation

5-6   被忽略的章節是沒有名字的
5-7   減少狀態(State reduction)
                我們為了解決問題而製作電路
                在成效不變(做完state reduction input, out不能改變)的情況下
                用最少的狀態(Flip Flop)來完成是最好的(Kmap很像)
                即便state數量不同,只要input, out不變,就視同相同的電路
Unused stste 視為don’t care
State 像是當作CH1的位元來編碼一樣

        步驟
state diagram 化成state table
觀察,若有完全相同的”next state”, “output”,這兩個相等
刪掉其中一條,整個state table的代數都改掉(改成其一)
重複3, 4

        狀態分配
                如同CH1的位元來編碼
                我們也可以決定不同狀態要用哪種分配方式
                Biniary
                        一般的位元編碼
                Gray
                        相鄰差一個做為位元編碼
                One hot
有幾個State就要幾個Flip Flop
雖然用較多的Flip flop,卻有機會減少其他電路需要的邏輯匣



5-8 設計流程
Excitation table
利用present stateNext state變化來得知input
Q(t)
Q(t+1)
J
K
0
0
0
x
0
1
1
x
1
0
x
1
1
1
x
0
Q(t)
Q(t+1)
T
0
0
0
0
1
1
1
0
1
1
1
0

        流程
釐清問題,可能的狀態有幾種(可先用, 表示),畫出State diagram
        執行State reduction
        分配狀態
        State table
        選擇哪類型的Flip flop寫出Input equation
                D Flip flop
                                因為Input = Next State
                                Input equation = State equation
                JK, T Flip flop
                        寫出state table,填上Excitation table對應的J, Kinput

        畫邏輯電路圖

沒有留言:

張貼留言