type
status
date
slug
summary
tags
category
icon
password

Ch6 Digital Arithmetic: Operations & Circuits

Binary Addition

相信二進位的加減不用複習了,但我們要介紹用二進為表達負數,用的sign notation怎麼計算
notion image
首先,為什麼下面的數字代表-52,是因為它跟上面的+52相加,剛好會是0,因此它被定為-52,應該沒有更快的計算方法了
他們是經過以下的方法計算
notion image
一看就懂:),又稱作negation

Sign Extension

以下在解釋,當我們的系統有8-bit,但是我們只需要表示5-bit的正數、負數該怎麼辦,剩下的三位數
  • 假如是正數,那就補0
  • 假如是負數,那就補1

overflow

就是你的加法爆掉了
酷酷的圖片補充說明
notion image

Binary Multiplication

有手就行
notion image
假如遇到負數,那就先把負數都negation回來,再把東西乘起來,再看是不是負的,把他complement回去

Arithmetic Circuits

以下是ALU的構造
notion image
  • Accumulator, B register都是flip-flop,他們是快快的記憶體
步驟:
  1. Control Unit先去看一下 Memory unit,了解現在要做什麼
  1. Memory unit會把要被加的數字放到B register
  1. Logic circuits 負責把 Accumulator和 B register 加起來,並且放到 Accumulator
  1. 持續以上的步驟
  1. 如果加完了,那就把Accumulator放回 Memory unit
 
 
 
notion image
加法的詳細符號
 
notion image
實際上加法的流程
 

Full Adder/ Half Adder

了解以上的加法,我們就可以依照增值表把東西給生出來,十分暴力
notion image
增值表
 
notion image
實際畫出來的人
半加器(Half Adder):只有兩個input,通常是用LSB,因為沒有東西要進位
 
 

把register加上去的ALU

notion image

Register Notation

Transfer data from A to B
用Register來看ALU
notion image
 
 

Parallel Adder

 
notion image
 
notion image
 

Ch7 Counters and Registers Part 1

主要是課本的7-1到7-14,在說明Counter的部分
其中 7-9說明分析,7-10說明設計,7-11說明PLM的Library,7-12 to 14在說HDL

Ripple Counter

圖片:基本上看了一目了然,就是利用前一個JK ff下降的時候,下一個才會改變狀態
notion image
同時觀察,每一個ff它們的frequence是不一樣的
一個使用的Example,以及會出現propagation delay的地方
notion image
notion image
 
所以可以發現,當我們想要做很大的counter,利用ripple的結構會讓整體的delay非常嚴重,因此會使用到paralle的結構
notion image
基本上再多的FF我們的delay都是一樣的,但詳細這邊就不去思考了
 

製作一個 <的計數器

上面給的例子,都只會再進位的時候變成全部都是0,我們希望他可以更有彈性一點
notion image
notion image
用State Transition dagram來表達這個counter的狀態
 

製作up/down counter

notion image
notion image
 

Presettable counters

notion image
可以設定從哪個數字開始
 
不用為了設定另一個數字,重新改整個電路的配置
細一點的流程
這個預設操作也被稱為對計數器進行並行加載。 圖7-12顯示了一個三位預設並行上計數器的邏輯電路。J, K, 和CLK輸入端被連接以作為並行上計數器運行。異步的PRESET和CLEAR輸入被連接以執行異步預設。通過執行以下操作,可以在任何時候用任何期望的計數值來加載計數器:
  1. 將期望的計數值應用到並行數據輸入端,P2, P1, 和 P0。
  1. 向並行加載輸入,PL,應用一個低脈衝。
這個程序將會執行一個異步轉移,將P2, P1, 和P0的級別分別轉移到觸發器Q2, Q1, 和Q0中(參見第5-16節)。這個堵塞轉移的發生是獨立於J, K, 和CLK輸入的。只要PL處於其活動低狀態,CLK輸入的效果就會被禁用,因為當PL = 0時,每個FF都會有一個異步輸入被激活。 一旦PL返回高,FFs就能對它們的CLK輸入作出反應,並可以從加載到計數器中的計數值開始恢復計數上的操作。
 

一些實際的Counter IC

notion image
參考就好:)

Decoding a Counter

 
簡單的版本:偵測有沒有數到那個數字,只有兩個狀態(是或不是)
  • Active-HIGH Decoding:用AND去實現
  • Active-LOW Decoding:用NAND去實現
 
BCD Counter Decoding:就把它翻譯成人類看得懂的十進位
 

Ch7 Counters and Registers Part 2

主要是課本的7-15到7-22,在說明Registers
 
7-15在說無聊名詞,其他自己類推
  • PIPO(平行進平行出)
  • SISP(異進異出)
 
7-16在說明IC registers
 

Shift-Register Counters

Ring Counter

基於Shift-Register來達成的,如下圖,它就是把那個1一直送給下一個人
 
notion image
(計算數字的樣子)
notion image
(結構)

Johnson Counter

在設計上是Ring Counter的小修改版
 
notion image
notion image
 
Decode的方法
notion image
 
數位邏輯 - ch1 - ch5數位邏輯 - ch8 - ch9