數位邏輯設計與實習 主講者:杜勇進
教材 數位邏輯設計,劉倫偉、高立圖書公司 數位邏輯設計、江眧皚譯、滄海圖書公司 數位邏輯設計、林銘波、全華圖書公司 Verilog FPGA晶片設計、林灶生、全華圖書公司
課程大綱 Ch01數字系統與數碼系統 Ch02基本邏輯閘與布林代數 Ch03布林函數化簡 Ch04組合邏輯電路設計 Ch05序向邏輯電路 Ch07 Verilog語法 Ch08實驗室實習
數位化 類比:大自然環境 連續變化。如:壓力、濕度、溫度、電壓、電流 數位:電腦世界。不連續變化 數位化類比量轉成數位量 問題:如何表示? 本章重點:人類的資料在電腦中如何表示 123? -543? John ABC 台灣 ?
R(Radix,Base)進制 R>1 R=2進制:0,1 R=8進制:0,1,2,…6,7 R=10進制:0,1,2,……8,9 R=16進制: 0,1,2,……,9,A,B,C,D,E,F R=...........
b(R)進制
各種進制的比較
B(R)進制轉成10進制 210進制 810進制 1610進制
2->10進制(手算) 1101.01 (2) =? (10) Ans:13.25
2->10進制 展開成2的冪次方
6->10進制(手算) ex: 543 (6) =? (10) Ans: 207 (10)
8->10進制 展開成8的冪次方
16->10進制(手算) ex: AB.C (16) =? (10) Ans:171.75 (10)
16->10進制 展開成16的冪次方
10進制轉成B(R) 進制 10->2進制 10->8進制 10->16進制 方法:整數連除R,小數連乘R
10->2進制(手算) 100.125(10)?(2) Ans:1100100.001 (2)
10->2進制 整數連除2,小數連乘2 109.78125
10->8進制(手算) ex: 245.5 (10) = ? (8) Ans:365.4 (8)
10->8進制 整數連除8,小數連乘8 250.38
10->16進制(手算) ex: 167.0625 (10) =? (16) Ans: A7.1
10->16進制 整數連除16,小數連乘16 167.45
10->2進制(8421) 0 (10) =0000 (2) 1 (10) =0001 (2) 2 (10) =0010 (2) 3 (10) =0011 (2) 4 (10) =0100 (2) 5 (10) =0101 (2) 6 (10) =0110 (2) 7 (10) =0111 (2) 8 (10) =1000 (2) 9 (10) =1001 (2)
10,2,8,16進制
2,8,16進制互換 28進制 82進制 216進制 162進制 小數點為準,每3 bit化成1數字 每1數字轉成3 bits
2->8進制 110010101.0110 = 110 010 101.011 000 = 6 2 5.3
8->2進制
2->16進制
16->2進制
8->16進制 方法:8->2->16進制 35 (8) =? (16) Ans: 1D
16->8進制 方法:16->2->8進制 AB (16) =? (8) Ans:253 (8)
R進制四則運算 四則運算:+ - × ÷ + - ×:逢R進位 ÷ 先化成10進制,再將結果化成R進制
R進制加法 101.1 (2) +011.1 (2) AB (16) +CD (16) 123 (8) +456 (8) Ans:1001.0 (2) 178 (16) 601 (8)
R進制減法 110 (2) -011 (2) 3FB (16) -1AE (16) 724 (8) -156 (8) Ans:011 (2) 24D (16) 546 (8)
R進制乘法 101 (2) *011 (2) 2A5 (16) *34 (16) 45 (8) *23 (8) Ans:1111 (2) 8984 (16) 1277 (8)
補數 R進制有兩種補數 R’s補數 (R-1)’s補數
R’s補數 以R為底的任一正數N,整數部份長度n,小數部份長度m, 其R’s補數Rn-N if N≠0 543 (10) 457 (10) 123 (8) 655 (8) 1AF (16) E41 (16)
(R-1)’s補數 以R為底的任一正數N,整數部份長度n,小數部份長度m, 其(R-1)’s補數Rn-R-m-N 543 (10) 456 (10) 123 (8) 654 (8) 1AF (16) E40 (16)
2補數與1補數 N=1011 (2) N=10000 (2) 2補數0101 (2) 1補數0100 (2) 2補數10000 (2) 1補數01111 (2)
負數表示 符號大小表示法(sign magnitude) 1’s補數表示法(1’s complement)
符號大小表示法 最左邊位元當符號用:0:表示正數;1表示負數 其餘位元表示大小 Ex n=8 bit (長度) 9 0 000 1001 -9 1 000 1001 n=3 bit (長度) 3 0 11 -3 1 11
1’s補數表示法 若是負數則取1’s補數 Ex n=8 bit (長度) 9 0 000 1001 -9 1 111 0110
2’s補數表示法 若是負數則取2’s補數 Ex n=8 bit (長度) 9 0 000 1001 -9 1 111 0111
N=4 bit 各種表示
各種表示法的範圍 符號大小表示法(sign magnitude) - (2n-1 – 1 ) ~ (2n-1 – 1 ) 1’s補數表示法(1’s complement) - (2n-1 – 1 ) ~ (2n-1 – 1 ) 2’s補數表示法(2’s complement) - (2n-1 ) ~ (2n-1 - 1 ) N=4 符號大小表示法:-7 ~ 7 1’s補數表示法: -7 ~ 7 2’s補數表示法 : -8 ~ 7
各種表示法的範圍 N=8 符號大小表示法:-127 ~ 127 1’s補數表示法: -127 ~ 127 2’s補數表示法 : -128 ~ 127 N=16 符號大小表示法:-32767 ~ 32767 1’s補數表示法: -32767 ~ 32767 2’s補數表示法 : -32768 ~ 32767
2’s補數表示法優點 可表示範圍較大(多1個) 零只有一種表示法 運算處理流程較簡單(減法只需加一次)
用加補數代替減法—1’s 取1’s補數相加 看結果 有進位:再加1 無進位:即為答案
1’s 範例1 45-33 (n=8 bit) 45=00101101 (2) 33=00100001 (2) 45-33=00101101 – 00100001 00101101 + 11011110 (-33的1’s補數表示) ========= 100001011 + 1 ========= 00001100 12
1’s 範例2 33-45 (n=8 bit) 45=00101101 (2) 33=00100001 (2) 33 - 45= 00100001 – 00101101 00100001 + 11010011 (-45的1’s補數表示) ========= 11110100 -12
1’s 範例3 2-1 (以4bits表示) 0010 - 0001
1’s 範例4 1-2 (以4bits表示) 0001 - 0010
用加補數代替減法—2’s 取2’s補數相加 看結果 有進位:捨棄,即為答案 無進位:即為答案
2’s 範例1 45-33 (n=8 bit) 45=00101101 (2) 33=00100001 (2) 45-33=00101101 – 00100001 00101101 + 11011111 (-33的2’s補數表示) ========= 100001100 12
2’s 範例2 33-45 (n=8 bit) 45=00101101 (2) 33=00100001 (2) 33 - 45= 00100001 – 00101101 00100001 + 11010011 (-45的2’s補數表示) ========= 11110100 -12
2’s範例3 2-1 (以4bits表示) 0010 - 0001
2’s範例4 1-2 (以4bits表示) 0001 - 0010
2’s補數特別數 n=4(長度) -1 -8 n=8 (長度) -128
溢位 溢位(overflow):超出所能表示範圍 ex: (0100)2 + (0100)2 =?
溢位判斷 方法: 有進入sign bit之進位,而沒有從sign bit出來的進位
溢位判斷1 (0100)2 + (0101)2
溢位判斷2 (1000)2 + (1110)2
數碼系統 加權碼:每一bit有權重 BCD碼、84-2-1碼、2421碼、二五碼 非加權碼:每一bit沒有權重 超三碼(excess-3)、葛雷碼(Gray)、五取二碼(2 out of 5)
加權碼
非加權碼
BCD碼 (28)10 (?)BCD (123.4)10(?)BCD (10010100.1000)BCD(?)10 BCD(Binary Code Decimal) 0~9用4個bit表示 (28)10 (?)BCD (123.4)10(?)BCD (10010100.1000)BCD(?)10 (00111001)BCD(?)10
超三碼 38 (10) = (?)x’3 11001000.0101 (x’3) = (?)10
葛雷碼(Gray)
互斥或(Exclusive OR) 不一樣為1 一樣為0 0⊕0=0 0⊕1=1 1⊕0=1 1⊕1=0
二進制與葛雷碼互換
二進制葛雷碼(Gray) 方法:由右至左,兩兩互斥(不一樣為1,一樣為0) 01010110 (2) ? (gray)
葛雷碼(Gray) 二進制 方法:由左至右,兩兩互斥 011111101 (gray)? (2)
ASCII ASCII(American Standard Code for Information Interchange) 每一字(符號)用7 bits表示 0~31沒有字,通訊控制碼 ‘A’ 100 0001 (2)0x4165 (10) ‘a’ 110 0001 (2)0x6197 (10) ‘0’011 0000(2)0x3048(10)
ASCII表
錯誤偵測同位元 奇同位:訊息與同位元”1”的總合為奇數 偶同位:訊息與同位元”1”的總合為偶數 ex: 採奇同位 1001□1 1001□0 只能偵測奇數個錯誤,且無法更正(correct)