用書:Digital Number WITH AN INTRODUCTION TOTHE VERILOG 5thEdition
作者:Mani Ciletti
習題解答:第四版解答(注意版本不一樣)
筆記作者:曾理碩/啾咪喵
分享模式:創用cc 姓名標示-相同方式分享 (cc分享限筆記,不包括連外文件、投影片、作業、作業解答)
歡迎分享本文
部格相關連結:
前言:
因為是筆記,通常以自己不會的地方做加強
主要寫概念
而較多複雜邏輯推理的地方會略過
因此使用時請作為導引手冊
請務必搭配課本使用(上方有連結)
內文提到頁碼以紙本課本為主與電子書誤差為16頁[建議以章節翻找]
載點: [筆記] [投影片] [作業] [作業解答]
==========(以下為筆記內容,因為格式關係,完整資料請下載PDF)==========
1-1 數位系統
資訊系統等知識
Binary,
digital device, how it work, out line or the book
學習理由:為了了解不同的數位model,必須學習其原理
其他目標:熟悉DHL設計方法很重要
RTL:
register transfer level
HDL:
hardware description language
1-2 二進位
由十進位規則說到不同基數的通則,然後說到二進位、八進位、十六進位
(p.s. p.21 line6 應該給成”1011011001011111”)
K=
, M=
, G=
, T=




“+”,
”*” 比照十進位處理
學習備註:
1. 一串數字是什麼進位法,會寫在右下(下標),十六進位可省略
2. Binary 二進位
Decimal 十進位
Octal 八進位
Hexadecimal 十六進位
1-3 基數轉換
10進位整數轉換成2進位:用除(/)的
1
3 6 12 24 49
1 1 0 0 0 1
其他如八進位、十六進位也一樣
10進位小數轉換成2進位:用乘(*)的
0.188*2 = 0.376 (MSB最左的位數)
0.376*2 = 0.752
0.752*2 = 1.504
0.504*2 = 1.008
0.008*2 = 0.016
其他如八進位、十六進位也一樣
MSB: Most
significant bit(最具影響的位元)
1-4 八進位與十六進位數字
對照表見p.25
八進位是二進位”三碼一組”、十六進位是二進位”四碼一組”
我們用他們因為比二進位簡潔,尤其偏好十六進位,因為二碼就能表達一個byte
1-5 補數
使用理由:簡化減法
在使用n進位時,我們使用n’s compliment跟(n-1)’s compliment
(n-1)’s compliment即以n為基數反轉(互補到n-1)
n’s compliment即(n-1)’s compliment + 1 (
-N)

做兩次compliment會回歸原數值
補數減法: (使用n’s compliment)
A>B:A – B = [ A + B補數] 去掉最高位
A<B:A – B = [-(A補數+B)] 去掉最高位
= [ A + B補數]補數
1-6 帶號數字
需要1bit紀錄正負,通常是第一位(MSB)記錄,0:+ 1:-
表示負號帶值可用該植或該植的1’’s 或2’s compliment,2’s最常見,不會對0有代碼疑慮
算數加法:用2’s就直接加
算數減法: 減正值 = 加負值 減負值 = 加正值 (都要取減數的補數)
電腦只需要一組電路就能處理”加法””減法”這兩種算數
1-7二進位碼
BCD碼(binary coded decimal)(8421):以二進位表示十進位
為讓熟悉十進位的人容易理解的編碼方式
4bit代表十進位一碼,每一位的值:80 40 20 10 8 4 2 1
效率不及二進位,但容易理解,因為適用二進位直接表示十進位
BCD碼之加法
BCD碼沒有將4bit的代碼使用完全,有六碼未使用到
而十進位逢9進位
因此BCD相加若超過1001(代表9),要補上0110(代表6)來進位
十進位計算
跟二進位是一樣的,要用一位來代表正負
0:+ 9:-
計算方式比照二進位
其他十進位代碼
2421碼、8,4,-2,-1碼
顧名思義:這四個數字各代表四個bit的值
前五碼以0開頭,後五碼以1開頭
(excress-3)(超三碼)
顧名思義:BCD+3
Gray碼
機械瀆職為避免錯誤
寫入資訊時相隔的代碼只差一個bit
可避免潛在錯誤
個人認為:九連環,不過精簡成四碼XD www…不用記沒關係
cyclic
redundancy check(CRC)
ASCII碼
除了數字,我們也為符號、字母、空白、指令做了對照表
數字在ASCII碼裡面是”符號”,並非原數值
為7bit的代碼,有些系統提供擴充成8bit符號量(1bytes)
偵錯碼
傳送資料時,額外加一個bit,以確保資料正確(CRC)。
個人認為:反正AXCII +1bit剛好等於1bytes
Even parity 即”資料+parity bit的一的個數 = 偶數”
Odd parity即”資料+parity bit的一的個數 = 奇數”
傳輸時系統會互相溝通(用even parity),可以回去翻ASCII碼表
發現錯誤回傳NAK(negative
acknowledge)(10010101)
成功接收所有訊息回傳ACK(acknowledge)(00000110)
1-8 位元儲存、暫存
位元:紀錄1, 0兩種數值
暫存器(register):數個位元組成
暫存器轉換:將資訊用暫存器轉換,例如相同數值轉成不同代碼或四則運算
加法舉例:將資料從”memory unit”抓進”process unit”的兩個register,再加到另一個register
最後存回”memory unit”
1-9 邏輯匣
Inverter:將1轉成0、0轉成1
X = A’ = 


AND:只有「A為1」且「B為1」則X = 1
可以有兩個以上輸入
X =
A‧B or X = AB

使用舉例:保留固定的位數,就做一個mask,將要保留的位置為1。
其他跟0 AND的值會被重置
OR:只有「A為0」且「B為0」則X = 0
可以有兩個以上輸入
X =
A+B

使用舉例:將任何字母與”00100000”mask 做OR,就能將字母都轉成小寫
NAND:先做AND再做Inverter
只有「A為1」且「B為1」則X = 0
可以有兩個以上輸入
X =
(AB)’ (注意!= AB’)

為”Universal gate”,因為能用NAND做出所有其他邏輯匣
例如:兩個input連起來,變成NOT(inventer)

NOR:先做OR再做Inverter
只有「A為0」且「B為0」則X = 1
可以有兩個以上輸入
X =
(A+B)’

XOR(exclusive
OR)
「A,B相異」則X = 1
X =
A⊕B =
A’B + AB’

將A’與B’做XOR跟A,B做XOR是相同的
XNOR(exclusive
NOR)
「A,B相同」則X = 1
X =
A⊙B = A’B’
+ AB

沒有留言:
張貼留言