# 數系 : Chapter 5 ###### tags: `Digital system` ## 一 . 循序電路 ### (一) . 循序電路的基本概念 ### (二) . ```Latch``` 1. 功用 : 記憶單元,可以記憶1bit的二進位。 - 為$level\ trigger$。 - 用$feeback$為電路的輸入。 3. 電路圖 : - $R$ : 代表 $reset$,為$set'$。 - $S$ : 代表 $set$,為要存入的單元。 - $Q$ : 代表目前存入的bit。 - $Q'$ : 代表 $Q'$。  3. 真值表 : - 輸入為$0,0$ : 代表要讀取目前儲存的$Q$。 - 輸入為$0,1$ 或 $1,0$ :代表要存入的為0或1(看set)。 - 輸入為$1,1$ : 非法的輸入,會造成震盪,即造成輸出在0和1間變化。  ### (三) . ```NAND```實作```Latch``` 1. 功用 : 同Latch,但為```active low```。 - 存入的bit為$set$的反向。 - 為$level\ trigger$、用$feeback$為電路的輸入。 2. 電路圖和真值表 : - 輸入 $set$ : 儲存$set'$。 - 輸入為 $0,0$ : 非法。 - 輸入為 $1,1$ : 為讀取。  3. 加入$enable$訊號 :設為$active\ height$的enable。 - 加入一個enable訊號可以將原本$active\ low$的電路反過來。  ### (四) . Latch 的問題 1. 問題 : $Level - trigger$ 的反應,會在整個clock為反應的時候都執行儲存。 2. 解決方法 : $Edge - trigger$的儲存裝置。 - 在clock的正波或負波的瞬間儲存。 ## 二 . Flip-Flop ### (一) . Master-slave 的 flip-flop 1. 組成 : 兩個$D-latch$和一個$enable$。 2. 電路圖 :  ### (二) . Edge-trigger的 D flip-flop 1. 組成 : 三個$D-latch$。 2. 電路圖 :  ### (三) . Set-up time和Hold\ time 1. 定義 : - $Set-up\ time$ : 輸入$D$到可以和clock訊號正確反應的時間。 - $Hold\ time$ : $clock$訊號需要維持的時間。 2. 例子 : - $set-up\ time$ : 輸入$D$造成A、B邏輯閘產生新的訊號,並輸出到S和R邏輯閘的時間。 - $hold \ time$ : $clock$改變後,要等邏輯閘反升反應的時間。 - 即輸入D訊號要clock差set-up time而clock訊號需要至少維持hold-time的時間。  3. 結論 : - $set-up\ time$多為邏輯閘$A$加$B$的$delay$。 - $hold \ time$ 多為邏輯閘$S$和$R$的$delay$。 ### (四) Clock 名詞 1. $Clock\ Period$ : 一個波的週期時間。 2. $Clock\ width$ : 可以理解為方波的波長。 3. $Duty\ cycle$ : $Clock\ width / Clock\ period$ 4. $Rising\ Edge$ : 方波上升的瞬間。 5. $Falling\ Edge$ : 方波下降的瞬間。  ### (五) . Clock Period 1. $Critical\ path$ : 一個電路的『最長時間路徑』,決定整體電路的delay。 2. 電路模組化 : 將電路分成一個個的模組。 - 可以使的部分反應較快的電路等待反應較慢的電路輸出,形成正確輸出。 - 可以分割電路,類似軟工裡面的函式化。 3. 多個電路模組的$critical \ path$ : 最大的那個模組。 - 如下圖 : 前後的模組可以同時執行。 - 記憶單元的clock週期時間 : 記憶單元本身的set-up或hlod time,和前後電路的critical path。 - 如下例,模組的critical path為16.6秒。 - 但應該還要加入記憶單元的set和hold time,因此變為18秒。 - 電路和clock源的距離不同,造成的時間差,也需注意。  4. clock的震源器必須小於電路的最大需求。 - 如下例 : 最大的電路為25nm。 - 則震源最大可以為1/25nm(hz)。 - 這邊沒有計算set或hold time  5. 降低時間的方法 : 將$critical\ path$分割。 - 如下 : 將原本為$critical$的電路,分成兩的步驟,增加一個flip-flop。 - 此方法稱為$peliing line$。  ## 三 . 其他flip-flop ### (一) . JK flip-flop 1. 功用 : 可以記住1bit的0或1,但需要兩個輸入。 2. 真值表 : $Q(t)$為當前的儲存內容,$Q(t+1)$為下一個時刻的內容。 - $J=0, K=0$ : 讀取,不會改變$Q(t)$。 - $J=1, K=0$ : reset,將儲存設為1。 - $J=0, K=1$ : clear,將儲存設為0。 - $J=1, K=1$ : 取目前的補數。  3. 電路圖 : - 可以重新設計一個電路。 - 或使用已有的D flip-flop。  ### (二) . Toggle flip-flop 1. 功用 : 可以記住1bit的0或1,但只能設定取補數。 2. 真值表 : $Q(t)$為當前的儲存內容,$Q(t+1)$為下一個時刻的內容。 - $T=0$ : 保持當前的儲存。 - $T=1$ : 取補數。  3. 電路圖 :  ### (三) . Characteristic Equations/Tables 1. Characteristic Tables : 對一個儲存單元,輸入和當前儲存和下一個儲存的關係。  2. Characteristic Equations : 對一個儲存單元,會造成$Q(t+1)$為1的輸入和當前狀況($Q(t)$)組成。 ### (四) . set 和reset 1. reset : active low。 - 同步 : reset訊號會等clock訊號。 - 非同步 : reset訊號不會等clock訊號。 2. 圖一 : 非同步,reset訊號為0的瞬間,馬上reset。  3. 圖二 : 同步,reset訊號為0,還要看看clock是否為1,為1才為reset。  ### (五) . 分析循序電路 1. 重點方法 : 算出目前的狀態與輸入和下一個狀態的關係。 - $step1 $ : 先搞清楚用的是什麼儲存方法。 - $step2 $ : 依照$flip-flop$的特性,列出$Q(t+1)$的方程。  2. 列出 : - $State\ transition$ : 下一個時刻,和現在時刻的關係。 - $output\ equation$ : 輸出和現在時刻的關係。 ## 三 . State Table ### (一) . State table 1. 功用 : 列出循序電路中的兩個方程式 $State transition$和$Output\ equation$ 。   ### (二) . State diagram 1. 功用 : 列出循序電路中,state間彼此的關係,會因為input的變化造成如何的state變化和output變化。 2. 表示 : - 圓圈 : 代表狀態。 - 直線 : 代表狀態變化(用input/output)表示。 3. 例 : - 00到00所需要的input和input造成的output(0/1)。  ### (三) . 分析JK flip-flop : given function 1. $step1$ : 由電路圖導出J和K的bool function。 2. $step2$ : 列出所有的狀態和輸入的集合。 3. $step3$ : 導出下一個時刻的J和K值。 4. $step4$ : 由JK值,在導出下一個時刻的state。   ## 四 . 循序電路設計 ### (ㄧ) . 設計步驟 - 電路的規則 : 例如紅綠燈,必先紅色後綠色。 - 檢查狀態 : 可能可以減少需要的狀態,可能可以降低成本。 - 分配適當的二進位值。 - 得出state table。 - 選擇flip-flop。 - 化簡flip-flop的輸入等式。 ### (二) . 設計方法  1. 分部 : 一班會將電路分成兩個部分。 - control unit : 由現在狀態計算下一個狀態。 - data path : 接收control unit的訊號,並進行計算。 2. control unit : 分成三個步驟。 - output logic : 根據現在的狀態,和控制狀態,算出需要的控制訊號。 - state register : 存放狀態的單元。 ### (三) . Finite State Machine ### (四) . 設計FSM 1. $step1$ : state reduction (不考)。 - 由state table 找出有相同next state和output的state並消除,如 : 。 - state table可以由state diagram或bool function知道。   2. $step2$ : state assignment(不考)。 3. $step3$ : 決定Flip-flop。 4. $step4-1$ : 導出
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up