2015-06-20

[數位邏輯]CH6

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



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




部格相關連結:

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

載點:    [CH6]    [筆記]    [投影片]       [段考加碼實作]


==========(以下為筆記內容,因為格式關係,完整資料請下載PDF)==========

計數器&暫存器
                暫存器是一系列的Flip flop
                計數器就是暫存器的一種
                只是資訊順序已經被決定了

6-1, 6-2 暫存器
        Parallel register(並聯):
Register:
就是一系列Flip Flop
無計算功能
狹義上是並聯
Register with parallel load:
                在前者並聯的register加入load功能
                跟前者一樣沒有計算功能
                方法:    當load=1時,將資料衝入D Flip Flop    (LOAD)
                                當load=0時,將D Flip Flop反饋    (維持資訊)




Serial register(串聯):
Shift register:
即串聯的Flip Flop
可執行”shift right”或”shift left”來將資訊向左右傳遞
                (Shitt right/left:依照畫圖方向判斷)
                執行時最邊緣的Flip Flop會將資訊丟出去
                另一邊則接受新的input
假設要將A傳進B裡    (A, B接指shift register)
                將A的輸出設成”A的輸入”跟”B的輸入”
                在適當執行多次shift即可
Serial adder
用此類型的A, B register,將其中所存資訊相加(存回A)
本例中因為要存回A,因此將sum連至A的input
        D Flip flop+加法器實作
而額外加入的Flip flop的用途在於:計住進位
        如果沒有它,很可能在啟動瞬間FA的z輸入也跟著改變而導致錯誤
        JK Flip flop實作
                由第五章的實作方法畫出state table
                輸入:present state[前一位進位], input(x,y)[各位的數值]    [排列組合吧]
                輸出:next state[進位], output[和]
                推導出:Flip flop input J/K[應當JK Flip Flop適當的輸入讓next state正確(ch5)]
Ring counter
        將shift counter的輸出作為自身輸入
        其計算就會不停重複相同的狀態
        結合組合電路能達到”改變時脈”功能
        而且比一般counter來的容易控制時脈
        缺點是會花比較多的Flip flop
                Johnson counter(switch ring counter)
                        Ring counter加強版
                        希望狀態更多卻又不想增加Flip flop
                        那麼將shift counter的輸出作為自身輸入的”反向”
                        狀態至多能為原先的兩倍



        Universal shift register(萬能):
                技能點滿的傢伙
                能parallel transfer, shift transfer, clear
                方法乃用MUX控制(控制閥因電路而有所不同)
                MUX輸出的四個選項分別為:
                        不變:            輸入為register自己的輸出
                        Shift right:    輸入為左邊register的輸出
                        Shift left:      輸入為右邊register的輸出
                        Parallel load:        輸入為平行輸入口



6-3, 6-4 計數器
        依同步性分類
                Ripple counter
                        非共用同一個clock
                        Flip flop各自的output可以當作其他的Flip flop的clock
                        可以做為放慢clock的方法
                Synchronous counter
                        接受同一個clock
        依功能區分
                Binary counter
                        用二進位計算次數
                        完全不需要input,因為現在的state就決定了next state
                        性質上會發現只要AND比較小的所有位數就知道該不該轉態了
                        [用ch5方法實作]
Up-down counter
                        利用up, down兩條資訊線來控制該上升或下降
                        up函式同上,down亦能用ch5的方法實作
                                up = 0, down = 0保持不變
                                up = 0, down = 1 下數
up = 1, down = 0 上數
up = 1, down = 1 (設定優先)[投影片設定為上數]
        設定優先的方式是較高位要用其”反向”與另一個資訊做AND
        就能屏避掉該訊息
Binary counter with parallel load
                        Load = 1的時候將輸入開啟
                        投影片因為用JK Flip flop因此複雜了一些
                BCD counter
                        跟前者差不多
                        不過不會用到全部的state
                        亦能用ch5來實現
        另一種做法是用” Binary counter with parallel load”來實作:
                                數到”9”[1001]讓next state = 0
                                數到”10”[1010]同時執行clear

        該注意
                沒用到的state 的next state應當指向任一有用的狀態

                以免因意外導致在沒有意義的狀態中繞圈圈

沒有留言:

張貼留言