薛宏熙《數(shù)字邏輯設(shè)計》cha課件
《薛宏熙《數(shù)字邏輯設(shè)計》cha課件》由會員分享,可在線閱讀,更多相關(guān)《薛宏熙《數(shù)字邏輯設(shè)計》cha課件(76頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、2008.11 1 第4章 數(shù)的表示方法和算術(shù)運算電路 【 課 前 思 考 】【 學(xué) 習(xí) 指 南 】4.1 數(shù) 制 和 編 碼4.2 無 符 號 數(shù) 的 加 法 運 算4.3 有 符 號 數(shù) 的 表 示 方 法 和 算 術(shù) 運 算4.4 用 EDA工 具 設(shè) 計 算 術(shù) 運 算 電 路 示 例【 本 章 小 結(jié) 】 2008.11 2 4.1數(shù)制和編碼 日 常 生 活 中 最 常 見 的 數(shù) 據(jù) 表 示 形 式 是 十 進 制 數(shù) , 與 此同 時 也 存 在 大 量 的 其 它 數(shù) 制 。 例 如 12英 寸 為 1英 尺 是 十 二 進 制 ; 60秒 為 1分 鐘 是 六 十 進 制 ;
2、 24小 時 為 1天 是 二 十 四 進 制 。 數(shù) 字 電 路 只 可 能 有 2個 穩(wěn) 定 狀 態(tài) ( H / L) , 因 此 數(shù) 字系 統(tǒng) 內(nèi) 部 采 用 二 進 制 數(shù) 也 合 乎 邏 輯 。 把 數(shù) 據(jù) 轉(zhuǎn) 換 為 一 組 代 碼 ( 這 里 特 指 二 進 制 代 碼 ) 稱 為編 碼 。 2008.11 3 數(shù)的位置表示法 十 進 制 數(shù) 2758.12可 以 表 示 為 :(2758.12)10 = 2 103 + 7 102 + 5 101 + 8 100 + 1 10-1 + 2 10-2 十 進 制 數(shù) 的 一 般 形 式 : ( D) 10 = dn-1dn-2di
3、d1d0.d-1d-m 可 以 表 示 為 : 式 ( 4 - 1) 中 : 下 標 i 代 表 數(shù) 字 d i 的 位 置 , p i是 十 進 制 數(shù) 第 i 位 數(shù) 字 的 權(quán) 。 十 進 制 數(shù) 中 每 一 位 d i有 10種 可 能 的 取 值 , 并 且 其 權(quán) 重 為 10的冪 , 故 稱 其 為 以 10為 基 的 數(shù) 。 110 10)( n mi ii dD )14(10)( 110 iin mi ii pdpD 式 中 2008.11 4 數(shù)的位置表示法(續(xù)) 二 進 制 數(shù) 的 一 般 形 式 : 式 ( 4 - 2) 中 : 下 標 i 代 表 數(shù) 字 b i 的
4、位 置 , p i 是 二 進 制 數(shù) 第 i 位 數(shù) 字 的 權(quán) 。 二 進 制 數(shù) 中 每 一 位 b i有 2 種 可 能 的 取 值 , 并 且 其 權(quán) 重 為 2 的冪 , 故 稱 其 為 以 2為 基 的 數(shù) 。 12 2)( n mi ii bB )24(2)( 12 iin mi ii pbpB 式 中 2008.11 5 數(shù)的位置表示法(續(xù)) r 進 制 數(shù) 的 一 般 形 式 : 式 ( 4 - 3) 中 : 下 標 i 代 表 數(shù) 字 s i 的 位 置 , p i 是 r 進 制 數(shù) 第 i 位 數(shù) 字 的 權(quán) 。 r 進 制 數(shù) 中 每 一 位 s i有 r 種 可
5、能 的 取 值 , 并 且 其 權(quán) 重 為 r 的 冪 , 故稱 其 為 以 r 為 基 的 數(shù) 。 1)( n mi iir srS )34()( 1 iin mi iir rpspS 式 中 2008.11 6 數(shù)的位置表示法(續(xù)) r 進 制 數(shù) 第 i 位 數(shù) 字 si 的 權(quán) 值 為 pi , 屬 于 有 權(quán) 編 碼 。 ( 與 此 相 對 的 是 無 權(quán) 編 碼 ) 數(shù) 字 系 統(tǒng) 中 常 用 的 數(shù) 制 : 提 醒 : 二 進 制 數(shù) 中 某 一 位 b i 的 單 位 為 比 特 ( bit) , 比 特 的 取 值 可 為 0 或 1, 這 里 的 0 或 1 具 有 數(shù) 值
6、 的 意 義 。 第 1章 中 談 及 布 爾 函 數(shù) 和 布 爾 變 量 時 ,布 爾 變 量 的 取 值 也 可 用 0 或 1 表 示 , 但 那 時 0 的 含 義 是 假 , 1 的 含 義 是真 。 2008.11 7 二進制數(shù)與十進制數(shù)的相互轉(zhuǎn)換 二 進 制 數(shù) 轉(zhuǎn) 換 為 十 進 制 數(shù) : 式 ( 4 - 2) 是 二 進 制 數(shù) 與 十 進 制 數(shù) 相 互 轉(zhuǎn) 換 的 數(shù) 學(xué) 基 礎(chǔ) 例 : )24(2)( 12 iin mi ii pbpB 式 中 2008.11 8 二進制數(shù)與十進制數(shù)的相互轉(zhuǎn)換(續(xù)) 十 進 制 數(shù) 轉(zhuǎn) 換 為 二 進 制 數(shù) : 通 常 把 整 數(shù)
7、部 分 與 小 數(shù) 部 分 分 別 處 理 整 數(shù) 部 分 :( 1) 將 十 進 制 整 數(shù) 除 以 2, 所 得 余 數(shù) 即 為 對 應(yīng) 二 進 制 數(shù) 最 低 位 的 值 ;( 2) 將 上 次 所 得 商 再 除 以 2, 所 得 余 數(shù) 即 為 對 應(yīng) 二 進 制 數(shù) 次 低 位 的 值 ;( 3) 重 復(fù) 執(zhí) 行 第 ( 2) 步 的 操 作 , 直 到 商 為 0 時 為 止 。 余 數(shù) 構(gòu) 成 二 進制 數(shù) 每 一 位 的 值 。 例 :( 45) 10 = ( 101101) 2 2008.11 9 二進制數(shù)與十進制數(shù)的相互轉(zhuǎn)換(續(xù)) 十 進 制 數(shù) 轉(zhuǎn) 換 為 二 進 制
8、數(shù) : 整 數(shù) 部 分 轉(zhuǎn) 換 簡 略 的 形 式 : 除 數(shù) 2 被 除 數(shù) /商 余 數(shù) 2 45 .1 2 22 .0 2 11 .1 2 5 .1 2 2 .0 2 1 .1 低 位 高 位 0 例 : ( 45) 10 = ( 101101) 2 2008.11 10 二進制數(shù)與十進制數(shù)的相互轉(zhuǎn)換(續(xù)) 十 進 制 數(shù) 轉(zhuǎn) 換 為 二 進 制 數(shù) ( 續(xù) ) : 小 數(shù) 部 分 :( 1) 將 十 進 制 小 數(shù) 乘 以 2, 所 得 乘 積 的 整 數(shù) 部 分 ( 0或 1) 即 為 對 應(yīng) 二進 制 小 數(shù) 最 高 位 的 值 ;( 2) 將 上 次 所 得 乘 積 的 小 數(shù)
9、部 分 再 乘 以 2, 所 得 乘 積 的 整 數(shù) 部 分 即 為對 應(yīng) 二 進 制 小 數(shù) 次 高 位 的 值 ;( 3) 重 復(fù) 執(zhí) 行 第 ( 2) 步 的 操 作 , 直 到 乘 積 的 小 數(shù) 部 分 為 0或 所 得 小 數(shù)部 分 已 滿 足 精 度 要 求 時 為 止 。 例 :(0.6875) 10 = (0.1011)2 乘 積 的 整 數(shù) 部 分 即 二 進 制 數(shù) 的 小 數(shù) 部 分 十 進 制 數(shù) 的 小 數(shù) 部 分 乘 以 2 0.6875 ( 2 高 位 1 0.3750 ( 2 0 0.7500 ( 2 1 0.5000 ( 2 低 位 1 0.0000 200
10、8.11 11 二進制數(shù)與八進制數(shù)的相互轉(zhuǎn)換 八 進 制 數(shù) 的 二 進 制 編 碼 : 3位 二 進 制 數(shù) 對 應(yīng) 于 1 位 八 進 制 數(shù) 2008.11 12 二進制數(shù)與八進制數(shù)的相互轉(zhuǎn)換(續(xù)) 二 進 制 數(shù) 轉(zhuǎn) 換 為 八 進 制 數(shù) : 3位 二 進 制 數(shù) 對 應(yīng) 于 1 位 八 進 制 數(shù) , 轉(zhuǎn) 換 算 法 非 常 簡 單 :( 1) 以 小 數(shù) 點 為 分 界 線 , 分 別 向 左 和 向 右 每 3 位 看 作 一 組 。 注 意 , 遇 到 不 足 3 位 時 將 其 補 足 3 位 , 向 左 擴 展 時 向 高 位 補 0, 向 右擴 展 時 向 低 位 補
11、0。( 2) 把 每 一 組 的 二 進 制 碼 替 換 為 對 應(yīng) 的 八 進 制 碼 。 例 : 2008.11 13 二進制數(shù)與八進制數(shù)的相互轉(zhuǎn)換(續(xù))八 進 制 數(shù) 轉(zhuǎn) 換 為 二 進 制 數(shù) :( 1) 以 小 數(shù) 點 為 分 界 線 , 分 別 向 左 和 向 右 對 每 一 八 進 制碼 進 行 轉(zhuǎn) 換 。( 2) 把 每 一 八 進 制 碼 替 換 為 對 應(yīng) 的 二 進 制 碼 。 注 意 , 轉(zhuǎn) 換 后 的 二 進 制 碼 必 須 是 3 位 , 例 如 28應(yīng) 轉(zhuǎn) 換 為0102, 而 不 是 102。例 : 2008.11 14 二進制數(shù)與十六進制數(shù)的相互轉(zhuǎn)換 十 六
12、進 制 數(shù) 的 二 進 制 編 碼 : 4位 二 進 制 數(shù) 對 應(yīng) 于 1 位 十 六 進 制 數(shù) 2008.11 15 二進制數(shù)與十六進制數(shù)的相互轉(zhuǎn)換(續(xù)) 二 進 制 數(shù) 轉(zhuǎn) 換 為 十 六 進 制 數(shù) : 4位 二 進 制 數(shù) 對 應(yīng) 于 1 位 十 六 進 制 數(shù) , 轉(zhuǎn) 換 算 法 非 常 簡 單 :( 1) 以 小 數(shù) 點 為 分 界 線 , 分 別 向 左 和 向 右 每 4 位 看 作 一 組 。 注 意 : 遇 到 不 足 4 位 時 將 其 補 足 4 位 , 向 左 擴 展 時 向 高 位 補 0, 向 右擴 展 時 向 低 位 補 0。( 2) 把 每 一 組 的 二
13、 進 制 碼 替 換 為 對 應(yīng) 的 十 六 進 制 碼 。 例 : 2008.11 16 二進制數(shù)與十六進制數(shù)的相互轉(zhuǎn)換(續(xù)) 十 六 進 制 數(shù) 轉(zhuǎn) 換 為 二 進 制 數(shù) :( 1) 以 小 數(shù) 點 為 分 界 線 , 分 別 向 左 和 向 右 對 每 一 十 六 進制 碼 進 行 轉(zhuǎn) 換 。( 2) 把 每 一 十 六 進 制 碼 替 換 為 對 應(yīng) 的 二 進 制 碼 。 注 意 , 轉(zhuǎn) 換 后 的 二 進 制 碼 必 須 是 4 位 , 例 如 316 應(yīng) 轉(zhuǎn)換 為 00112, 而 不 是 112。 例 : 2008.11 17 十進制數(shù)的二進制編碼 用 二 進 制 代 碼 表
14、 示 十 進 制 數(shù) 稱 為 二 十 進 制 碼 或 BCD碼 ( Binary Coded Decimal, BCD) 。 4位 二 進 制 代 碼 可 以 代 表 24 = 16種 狀 態(tài) , 而 十 進 制 數(shù) 只需 要 10種 狀 態(tài) , 因 此 需 要 舍 棄 其 中 6種 狀 態(tài) 不 用 。 8421碼 : 8421分 別 代 表 各 位 的 權(quán) 值 。 最 高 位 的 權(quán) 值 為 8、 次 高 位 為 4、 再 次 為 2、 最 低 位 為 1。 2008.11 18 十進制數(shù)的二進制編碼(續(xù)) 余 3碼 : 是 一 種 無 權(quán) 碼 。 二 進 制 編 碼 對 應(yīng) 的 十 進 制
15、 數(shù) 0000 舍 棄 不 用 0001 舍 棄 不 用 0010 舍 棄 不 用 0011 0 0100 1 0101 2 0110 3 0111 4 1000 5 1001 6 1010 7 1011 8 1100 9 1101 舍 棄 不 用 1110 舍 棄 不 用 1111 舍 棄 不 用 互 為 反 碼 2008.11 19 十進制數(shù)的二進制編碼(續(xù)) 十 進 制 數(shù) 的 有 權(quán) 編 碼 示 例 : 2008.11 20 格雷碼 格 雷 碼 是 一 種 無 權(quán) 碼 , 其特 點 為 任 何 2個 相 鄰 的 代 碼之 間 只 在 某 1位 上 取 值 不 同 。 此 特 點 在 某
16、 些 場 合 特 別 有用 , 可 以 減 少 代 碼 變 換 過程 中 發(fā) 生 錯 誤 的 機 會 , 是一 種 高 可 靠 性 編 碼 。 右 圖 為 二 進 制 數(shù) 反 射 格 雷碼 。 反 射 碼 和 二 進 制 數(shù) 之 間的 對 應(yīng) 關(guān) 系 : 二 進 制 數(shù) b3b2b1b0 格 雷 碼 g3g2g1g0 0000 0000 0001 0001 0010 0011 0011 0010 0100 0110 0101 0111 0110 0101 0111 0100 1000 1100 1001 1101 1010 1111 1011 1110 1100 1010 1101 1011
17、1110 1001 1111 1000 )( 441 iii bbg 2008.11 21 格雷碼(續(xù)) 十 進 制 數(shù) 反 射 格 雷 碼 示 例 : 十 進 制 數(shù) 格 雷 碼 0 0000 1 0001 2 0011 3 0010 4 0110 5 1110 6 1010 7 1011 8 1001 9 1000 2008.11 22 字符編碼 數(shù) 字 系 統(tǒng) 中 , 0和 1不 僅 可 以 代 表 數(shù) 字 , 而 且 可 以 進 行組 合 用 于 表 示 字 母 、 運 算 符 以 及 控 制 符 等 。 為 了 在 各 種 數(shù) 字 系 統(tǒng) 之 間 方 便 地 交 換 信 息 , 必
18、須 使 用統(tǒng) 一 的 編 碼 方 案 , 目 前 被 廣 泛 使 用 的 是 ASCII碼 。( American Standard Code for Information Interchange) ASCII碼 由 7位 二 進 制 代 碼 組 成 , 共 27 = 128個 字 符 : 英 文 字 母 : 大 寫 、 小 寫 字 母 各 26個 , 共 52個 ; 數(shù) 字 ( 0 9) : 10個 ; 專 用 符 號 : 34個 ; 控 制 符 號 : 32個 。 2008.11 23 字符編碼 ASCII碼 2008.11 24 奇偶校驗碼 奇 偶 校 驗 編 碼 的 規(guī) 則 : 奇
19、校 驗 編 碼 : 編 碼 結(jié) 果 中 含 奇 數(shù) 個 1。 偶 校 驗 編 碼 : 編 碼 結(jié) 果 中 含 偶 數(shù) 個 1。 例 : 原 始 數(shù) 據(jù) b6b5b4b3b2b1b0 奇 校 驗 編 碼 結(jié)果 b 7b6b5b4b3b2b1b0 偶 校 驗 編 碼 結(jié)果 b7b6b5b4b3b2b1b0 0000000 10000000 00000000 1111111 0 1111111 11111111 0101010 00101010 10101010 1110001 11110001 01110001 2008.11 25 奇偶校驗碼(續(xù)) 奇 偶 校 驗 碼 是 一 種 最 簡 單 的
20、 、 能 發(fā) 現(xiàn) 某 些 錯 誤 的 編 碼 。 應(yīng) 用 舉 例 : 信 息 發(fā) 送 /接 收 過 程 中 采 用 偶 校 驗 檢 錯 : 2008.11 26 奇偶校驗碼(續(xù)) 以 偶 校 驗 編 碼 為 例 , 說 明 數(shù) 據(jù) 編 碼 、 傳 送 及 檢 錯 的 過 程 : 發(fā) 送 方 給 原 始 數(shù) 據(jù) b6b5b4b3b2b1b0增 加 1個 偶 校 驗 位 b7, 構(gòu) 成 8位的 偶 校 驗 編 碼 。 b7 = b6 b5 b4 b3 b2 b1 b0 ( 4 - 5) 發(fā) 送 方 把 8位 的 偶 校 驗 編 碼 b7b6b5b4b3b2b1b0發(fā) 送 出 去 。 接 收 方 收
21、 到 8位 的 偶 校 驗 編 碼 b7b6b5b4b3b2b1b0。 接 收 方 校 驗 電 路 的 輸 出 信 號 為 check, 用 來 檢 查 8位 數(shù) 據(jù) 中 取 值為 1的 個 數(shù) 是 否 為 偶 數(shù) : check = b 7 b6 b5 b4 b3 b2 b1 b0 ( 4 - 6) 若 為 偶 數(shù) ( check = 0) , 表 明 數(shù) 據(jù) 傳 送 過 程 中 沒 有 發(fā) 生 錯 誤 , 簡 單地 將 偶 校 驗 位 去 掉 即 得 原 始 數(shù) 據(jù) ; 若 為 奇 數(shù) ( check = 1) , 表 明 數(shù) 據(jù) 傳 送 過 程 中 發(fā) 生 錯 誤 , 接 收 方 發(fā)出
22、報 警 信 號 。 2008.11 27 奇偶校驗碼(續(xù)) 偶 校 驗 的 形 成 及 校 驗 電 路 : 根 據(jù) 式 ( 4 - 5) 可 以 得 到 發(fā) 送 方 的 偶 校 驗 位 ( b7) 形 成 電 路 ; 根 據(jù) 式 ( 4 - 6) 可 以 得 到 接 收 方 的 偶 校 驗 ( check) 電 路 b6 b5 b4 b3 b2 b1 b0 b7 b6 b5 b4 b3 b2 b1 b0 check b7 ( b) 接 收 方 ( a) 發(fā) 送 方 2008.11 28 輸 入 輸 出 a i b i c i sum i c i +1 0 0 0 0 0 0 0 1 1 0 0
23、 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 a i b i iiiiiii iiii cbcabac cbasum 1 ( a) 符 號 圖 ( b) 真 值 表 與 布 爾 表 達 式 ( c) 原 理 圖 sum i c i + 1 c i a i b i full_adder sum i c i + 1 c i 4.2無符號數(shù)的加法運算 無 符 號 數(shù) 代 表 數(shù) 的 絕 對 值 , 或 者 是 省 略 了 符 號 的 正 數(shù) 。 1 位 全 加 器 的 實 現(xiàn) : 2008.11 29 4位行波進位加法器 優(yōu) 點
24、 : 結(jié) 構(gòu) 簡 單 、 造 價 較 低 ; 缺 點 : 進 位 信 號 由 低 位 向 高 位 逐 級 傳 遞 , 當 加 法 器 的 長 度 n 較 大 時 ( 例 如 32或 64) , 進 位 信 號 的 傳 播 延 時 很 大 。 改 進 思 路 : 先 行 進 位 加 法 器 進 位 鏈 。 2008.11 30 加法器的先行進位進位鏈 2008.11 31 加法器的先行進位進位鏈(續(xù)) 實 例 : 4位 加 法 器 中 每 一 位 ( i = 0 3) 的 進 位 信 號 分 析 : 2008.11 32 a 2 b 2 a 1 b 3 a 3 b 1 a 0 b 0 c 2 c
25、 4 c 3 c 1 c 0 g 2 g 3 g 1 p 2 p 3 p 1 g 0 p 0 4 位加法器的先行進位進位鏈(續(xù)) 根 據(jù) 布 爾 表 達 式 ( 4 - 8) 、 ( 4 - 9) 、 ( 4 - 10) 和 ( 4 - 11) 畫 出 先 行 進位 鏈 的 原 理 圖 。 2008.11 33 4 位加法器的先行進位進位鏈(續(xù)) 符 號 圖 : 分 析 : 低 位 進 位 信 號 c 0 到 達 進 位 鏈 輸 出 端 ( c4, c3, c2, c1) 所 經(jīng) 歷 的 傳 播路 徑 長 度 大 體 相 同 , 因 而 延 遲 時 間 也 大 體 相 同 。 對 于 處 于
26、相 對 高 位 的 c4 來 說 , 其 延 遲 時 間 縮 小 ! 隨 著 i 的 增 大 , c i 的 布 爾 表 達 式 復(fù) 雜 度 增 大 , 相 應(yīng) 電 路 的 復(fù) 雜 度 也增 大 , 因 此 這 種 把 c i逐 級 展 開 的 方 法 不 可 能 無 限 制 地 繼 續(xù) 下 去 。 當 加 法 器 的 長 度 n 較 大 時 , 可 將 其 分 組 , 組 與 組 之 間 可 以 采 用 行 波進 位 的 方 法 , 或 在 組 間 也 采 用 先 行 進 位 的 方 法 。 2008.11 34 4位先行進位加法器 sum 3 c 3 a 3 b 3 full_adder
27、sum 2 c 2 a 2 b 2 full_adder sum 1 c 1 a 1 b 1 full_adder sum 0 c 0 a 0 b 0 full_adder 先 行 進 位 鏈 c 0 a 3 b3 a 2 b2 a 1 b1 a 0 b0 c 1 c 2 c 3 c 4 c 4 a 3 b3 a 2 b2 a 1 b1 a 0 b0 sum 3 sum 2 sum 1 sum 0 2008.11 35 BCD 碼形式的十進制數(shù)加法運算 例 : 1位 8421碼 十 進 制 數(shù) 加 法 器 手 工 設(shè) 計 : 有 多 種 方 法 可 供 選 擇 , 例 如 列 出 真 值 表
28、, 寫 出 相 應(yīng) 的 布 爾 表 達 式 , 最 后 導(dǎo) 出 電 路 圖 。 ( 由 于 輸 入 變 量 個 數(shù) 多 達 9個 , 此 設(shè) 計 過 程 可 能 比 較 繁 瑣 ) 借 助 普 通 的 二 進 制 數(shù) 加 法 器 , 再 加 上 輔 助 的 修 正 電 路 構(gòu) 成 目標 電 路 。 2008.11 36 例: 1位8421碼十進制數(shù)加法器 圖 4.9 初 步 設(shè) 想 : 2008.11 37 例: 1位8421碼十進制數(shù)加法器(續(xù)) 校 正 條 件 分 析 : 輸 入 變 量 X和 Y的 取 值 為 ( 0 9) , 再 加 上 可 能 存 在 的 低 位進 位 cin, 因
29、而 加 法 運 算 結(jié) 果 的 取 值 范 圍 為 ( 0 19) 。 由 于 普 通 的 4位 二 進 制 數(shù) 加 法 器 是 逢 16進 位 , 而 十 進 制 數(shù) 加 法器 是 逢 10進 位 , 因 而 需 要 對 4_adder_1的 輸 出 ( Z和 c) 進 行 修正 , 修 正 的 具 體 要 求 見 表 4.11( 見 下 頁 ) 。 仔 細 分 析 表 4.11可 以 得出 校 正 的 判 別 條 件 和 應(yīng) 采 取 的 校 正 措 施 : 2008.11 38 例: 1位8421碼十進制數(shù)加法器(續(xù))表 4.11 2008.11 39 圖4.9的改進 圖 4.9中 的 多
30、 路 器 可 以 省 略 , 改 進 后 的 方 案 示 于 圖 4.10。 2008.11 40 圖4.10的改進 圖 4.10中 起 校 正 作 用 的 二 進 制 數(shù) 加 法 器 4_adder_2只 是 實 現(xiàn) 加 6( 即 二 進 制 代 碼 0110) 或 加 0的 運 算 , 其 長 度 可 以 縮 短 , 改 進 后的 方 案 示 于 圖 4.11。 2008.11 41 一個3位十進制數(shù)加法器的實例 2008.11 42 啟 示想 通 過 手 工 設(shè) 計 得 到 一 個 理 想 的 結(jié) 果 , 十 分 不 易 。 精 心 設(shè) 計 和 一 般 練 習(xí) 的 效 果 大 不 相 同
31、 。通 過 EDA工 具 設(shè) 計 數(shù) 字 電 路 省 時 省 力 。 EDA工 具 提 供 的 庫 元 件 一 般 都 是 精 心 制 作 的 佳 品 。 2008.11 43 原 碼 二 進 制 數(shù) 補 碼 反 碼 有 符 號 定 點 數(shù) 原 碼 十 進 制 數(shù) 補 碼 4.3有符號數(shù)的表示方法和算術(shù)運算 有 符 號 定 點 數(shù) 的 編 碼 方 法 : 定 點 數(shù) : 小 數(shù) 點 的 位 置 固 定 , 常 用 的 2種 形 式 是 : 小 數(shù) 點 放 在 最 低 位 之 后 , 這 種 形 式 表 示 的 是 整 數(shù) 。 小 數(shù) 點 放 在 最 高 位 之 前 , 這 種 形 式 表 示
32、的 小 數(shù) 。 從 數(shù) 學(xué) 的 觀 點 出 發(fā) , 這 2種 形 式 沒 有 本 質(zhì) 的 差 別 , 僅 僅 相 差 一個 比 例 系 數(shù) 。 以 下 敘 述 中 把 小 數(shù) 點 放 在 最 低 位 之 后 , 符 號 位放 在 最 高 位 之 前 。 2008.11 44 符 號 位 0 代 表 正 1 代 表 負 數(shù) 值 部 分 ( 絕 對 值 ) . 二進制定點數(shù)的原碼表示形式 小 數(shù) 點 的 位 置 只 是 一 種 約 定 , 并 不 需 要 專 門 的 硬 件 作標 記 。 2008.11 45 取 出 X原 , Y原 |X| |Y|? 求 出 R = |X| + |Y| 求 出 |
33、X|, |Y| 是 否 否 在 R 的 最 高 位 處 添 加 上 X原 的 符 號 位 , 得 X+Y原 是 求 出 R = |Y | - |X| 求 出 R = |X| - |Y| 符 號 位 相 同 ? 在 R 的 最 高 位 處 添 加 上 Y原 的 符 號 位 , 得 X+Y原 運 算 過 程 過 于 復(fù) 雜 , 很 少 應(yīng) 用 二進制定點數(shù)的原碼表示形式(續(xù)) 原 碼 加 法 流 程 圖 : 2008.11 46 二進制定點數(shù)的補碼表示形式 設(shè) 二 進 制 定 點 數(shù) X的 表 示 形 式 為 : X = 0 x n -2 x n -3x ix 0 ( 字 長 n 位 , 最 高
34、位 為 0) 由 X求 X補 的 規(guī) 則 : 當 X為 正 數(shù) 時 , X補 = X = 0 x n -2 x n -3x ix 0 當 X為 負 數(shù) 時 , ( 按 位 求 反 后 末 位 加 1) 由 以 上 規(guī) 則 求 出 的 X 補 的 最 高 位 為 符 號 位 : 符 號 位 為 0 代 表 正 數(shù) ; 符 號 位 為 1 代 表 負 數(shù) 。 1x.x.xx0X 032 inn補 2008.11 47 二進制定點數(shù)的補碼表示形式(續(xù)) 由 X求 X補 舉 例 : 【 例 4.1】 : X = +01101, 求 X補 : X為 正 數(shù) , X補 = X = 01101 【 例 4.
35、2】 : X = 01101, 求 X補 : X為 負 數(shù) , 第 1步 : 對 X按 位 求 反 : 01101 10010第 2步 : 末 位 加 1: 10010 10011 2008.11 48 二進制定點數(shù)的補碼表示形式(續(xù))由 X補 求 X的 規(guī) 則 : X補 的 符 號 位 為 0( 正 數(shù) ) 時 , X補 = X( 二 者 相 同 ) X補 的 符 號 位 為 1( 負 數(shù) ) 時 , 求 X分 2步 走 :第 1步 : 包 括 符 號 位 在 內(nèi) 按 位 求 反 ;第 2步 : 在 第 1步 的 結(jié) 果 上 末 位 加 1, 再 在 數(shù) 值 前 添 加 負 號 。 【 例
36、4.3】 : X 補 = 10011, 求 X: 第 1步 : 包 括 符 號 位 在 內(nèi) 按 位 求 反 : 10011 01100 第 2步 : 末 位 加 1, 再 添 負 號 : 01100 01101 2008.11 49 補碼的加法運算 補 碼 加 法 運 算 規(guī) 則 : 補 碼 加 法 中 的 “ 溢 出 ” 問題 :【 例 】 : X = 01011, Y = 01000 X補 = 01011, Y補 = 01000執(zhí) 行 補 碼 加 法 :X+Y 補 = 01011 + 01000 = 10011 結(jié) 果 不 正 確 , 因 為 2個 正 數(shù) 相 加的 結(jié) 果 絕 不 應(yīng) 該
37、 是 負 數(shù) ! 分 析 原 因 :本 例 字 長 5 位 , 而 本 例 的 (X+Y)超 過 了 字 長 所 能 表 示 的 范 圍 。 取 出 X補 , Y補 X補 +Y補 結(jié) 果 為 X+Y補 若 最 高 位 有 進 位 將 其 舍 去 X補 和 Y補 的 符 號 位 同 樣 參 加 運 算 2008.11 50 補碼加法運算(續(xù)) 發(fā) 現(xiàn) “ 溢 出 ” 的 方 法 ( 方 法 之 一 ) :1. 把 操 作 數(shù) X補 和 Y補 的 符 號 位 向 左 擴 展 1位 , 并 且 新 擴 展 的符 號 位 與 原 來 的 符 號 位 取 值 相 同 。 即 X補 和 Y補 的 字 長
38、由原 來 的 n 位 擴 展 到 ( n + 1) 位 。2. 補 碼 加 法 運 算 規(guī) 則 不 變 , 即 補 碼 中 各 位 ( 包 括 2個 符 號 位 在內(nèi) ) 按 照 同 樣 規(guī) 則 參 加 運 算 。3. 若 運 算 結(jié) 果 的 2個 符 號 位 取 值 不 同 , 表 示 運 算 結(jié) 果 “ 溢 出 ”( 應(yīng) 當 發(fā) 出 報 警 信 號 ) ; 否 則 運 算 結(jié) 果 正 常 。 2008.11 51 補碼加法運算(續(xù)) 補 碼 加 法 示 例 : X 補 00 1001 ( 9) 10 Y補 00 0011 ( 3) 10 X補 +Y補 00 1100 ( 12) 10 運
39、算 結(jié) 果 中 的 2 個 符 號 位 取 值 相 同 , 情 況 正 常 操 作 數(shù) 中 的 符 號 位 和 其 它 位 同 樣 參 加運 算 , 本 例 的 最 高 位 處 沒 有 產(chǎn) 生 進 位 2008.11 52 補碼加法運算(續(xù)) 補 碼 加 法 示 例 : X 補 001001 ( 9) 10 Y補 001010 ( 10) 10 X 補 +Y補 010011 ( 19) 10, 超 出 約 定 范 圍 運 算 結(jié) 果 中 2 個 符 號 位取 值 不 同 , 發(fā) 生 “ 溢 出 ” 符 號 位 同 樣 參 加 運 算 , 本 例的 最 高 位 處 沒 有 產(chǎn) 生 進 位 200
40、8.11 53 補碼加法運算(續(xù)) 補 碼 加 法 示 例 : X 補 111001 ( 7) 10 Y補 001010 ( 10) 10 X 補 +Y補 000011 ( 3) 10 運 算 結(jié) 果 中 2 個 符 號 位 取 值 相 同 , 情 況 正 常 最 高 位 發(fā) 生 進 位 , 簡 單 地 舍 去 即 可 2008.11 54 補碼加法運算(續(xù)) 一 個 補 碼 加 法 器 的 實 例 : 2008.11 55 補碼的減法運算 補 碼 減 法 運 算 規(guī) 則 : 為 了 發(fā) 現(xiàn) 運 算 過 程 中是 否 發(fā) 生 “ 溢 出 ” ,繼 續(xù) 采 用 雙 符 號 位 的補 碼 形 式
41、。 表 示 對 Y補 執(zhí)行 求 補 操 作 , 即 第 1步 : 包 括 符 號位 在 內(nèi) 按 位 求 反 ; 第 2步 : 末 位 加 1。 取 出 X 補 , Y補 結(jié) 果 為 X Y補 若 最 高 位 有 進 位 將 其 舍 去 X補 , Y補 的 符 號 位 同 樣 參 加 運 算 補補補 YX 由 Y補 求 Y補 |補 : 末 位 加 1 Y補 按 位 求 反 補補Y 2008.11 56 s4 s3 s2 s1 s0 x4 x3 x2 x1 x0 y4 y3 y2 y1 y0 s4 s3 s2 s1 s0 X補 (3.0) Y補 (3.0) 5bit_adder sub_add o
42、verflow sub_ add = 1時 , 做 減 法 ; sub_ add = 0時 , 做 加 法 。 一個補碼加法 / 減法器的實例 由 于 補 碼 加 法 與 補 碼 減 法 的 流 程 相 差 甚 少 , 唯 一 的 差 別 是 補 碼 減法 操 作 中 需 要 對 Y補 多 作 一 次 求 補 操 作 。 2008.11 57 s4 s3 s2 s1 s0 x4 x3 x2 x1 x0 y4 y3 y2 y1 y0 s4 s3 s2 s1 s0 X補 (3.0) Y補 (3.0) 5bit_adder sub_add overflow sub_ add = 1時 , 做 減 法
43、 ; sub_ add = 0時 , 做 加 法 。 一個補碼加法 / 減法器的實例 由 于 補 碼 加 法 與 補 碼 減 法 的 流 程 相 差 甚 少 , 唯 一 的 差 別 是 補 碼 減法 操 作 中 需 要 對 Y補 多 作 一 次 求 補 操 作 。 廣 泛 應(yīng) 用 ! 2008.11 58 二進制定點數(shù)的反碼表示形式 由 X求 X反 的 規(guī) 則 : X為 正 數(shù) 時 , X反 = X = 0 x n -2 x n -3x i x 0 X為 負 數(shù) 時 , 由 以 上 規(guī) 則 求 出 的 X反 的 最 高 位 為 符 號 位 , 符 號 位 為 0代 表 正 數(shù) ,符 號 位 為
44、 1代 表 負 數(shù) 。【 例 4.8】 : X = +01101, 求 X 反 :X為 正 數(shù) , X反 = X = 01101【 例 4.9】 : X = 01101, 求 X反 : X為 負 數(shù) , X反 = 10010 ( 按 位 求 反 ) 032 x.x.xx0X inn 反 2008.11 59 二進制定點數(shù)的反碼表示形式 由 X反 求 X的 規(guī) 則 : X反 的 符 號 位 為 0( 正 數(shù) ) 時 , X反 = X( 二 者 相 同 ) X反 的 符 號 位 為 1( 負 數(shù) ) 時 , 將 X反 按 位 求 反 , 再 在 數(shù) 值 前面 添 加 負 號 “ ” ?!?例 4.
45、10】 : X反 = 10011, 求 X: 第 1步 : 包 括 符 號 位 在 內(nèi) 按 位 求 反 : 10011 01100 第 2步 : 在 數(shù) 值 前 面 添 加 負 號 : 01100 01100 2008.11 60 反碼的加法運算 為 便 于 判 斷 “ 溢 出 ” , 也 采 用 雙 符 號 位 。 取 出 X反 , Y反 X反 +Y反 結(jié) 果 為 X +Y反 若 最 高 位 有 進 位 , 將 其 送至 最 低 位 再 次 相 加 X反 和 Y反 的 符 號 位 同 樣 參 加 運 算 2008.11 61 X 反 111010 ( 5) 10 Y反 11 1001 ( 6
46、) 10 X 反 +Y反 11 0011 11 0011 1 X + Y 反 = 11 0100 ( 11) 10 最 高 位 發(fā) 生 進 位 , 送 到 末 位 再 次 相 加 反碼加法示例 設(shè) X = ( 5 )10 = ( 0101 )2 , Y = ( 6 )10 = ( 0110 )2, 求 X+Y反 雙 符 號 位 X反 = 111010, Y反 = 111001 2008.11 62 反碼的減法運算 X反 和 Y反 |反 的 符 號 位 同 樣 參 加 運 算 X 反 +Y反 |反 結(jié) 果 為 X Y反 若 最 高 位 有 進 位 , 將 其 送至 最 低 位 再 次 相 加 取
47、 出 X反 , Y反 Y反 |反 := 對 Y反 按 位 求 反 2008.11 63 X 反 111010 ( 5) 10 Y反 |反 : 00 0110 ( 6) 10 X 反 +Y反 |反 : 00 0000 00 0000 1 X Y 反 = 00 0001 ( 1) 10 最 高 位 發(fā) 生 進 位 , 送 到 末 位 再 次 相 加 反碼減法運算示例設(shè) X = ( 5 )10 = ( 0101 )2 , Y = ( 6 )10 = ( 0110 )2, 求 X Y反 雙 符 號 位 表 示 , X反 = 111010, Y反 = 111001, : 手 工 計 算 的 準 備 工
48、作 : Y反 |反 = 000110; 2008.11 64 4.4用EDA工具設(shè)計算術(shù)運算電路示例 補 碼 形 式 的 加 法 /減 法 器 : 輸 入 信 號 : x(3.0) 和 y(3.0)是 補 碼 形 式 的 有 符 號 二 進 制 數(shù) ( 1個 符 號 位 ) , sub_add是 加 法 / 減 法 的 控 制 信 號 。 輸 出 信 號 : s(3.0)代 表 運 算 結(jié) 果 , 是 補 碼 形 式 的 有 符 號 二 進 制 數(shù) ( 1個 符 號 位 ) ; overflow是 溢 出 報 警 信 號 。 2008.11 65 補碼形式的加法/減法器(續(xù)) VHDL行 為
49、描 述 : 2008.11 66 補碼形式的加法/減法器(續(xù)) VHDL行 為 描 述 ( 續(xù) ) : 2008.11 67 補碼形式的加法/減法器(續(xù)) 功 能 模 擬 波 形 : 2008.11 68 1位8421碼十進制數(shù)加法器 用 EDA工 具 設(shè) 計 手 工 設(shè) 計 寫 出 VHDL行 為 描 述 提 交 EDA工 具 Q uartus 2008.11 69 1位8421碼十進制數(shù)加法器(續(xù)) VHDL代 碼 2008.11 70 1位8421碼十進制數(shù)加法器(續(xù)) VHDL代 碼 ( 續(xù) ) architecture behav of bcd_adder is - 結(jié) 構(gòu) 體 用
50、于 定 義 電 路 的 行 為 begin process (x, y, cin ) variable temp : std_logic_vector( 4 downto 0 ); - 聲 明 一 個 臨 時 變 量 begin temp := ( 0 - 把 8421 碼 當 作 普 通 的 二 進 制 數(shù) 相 加 if temp 2#01010# then - 結(jié) 果 無 需 校 正 的 情 況 s = temp( 3 downto 0 ); cout = 0; else - 結(jié) 果 需 要 校 正 ( +6) 的 情 況 temp := temp + 6; s = temp( 3 dow
51、nto 0 ); cout = 1; end if; end process; end behav; 2008.11 71 1位8421碼十進制數(shù)加法器(續(xù)) 功 能 模 擬 波 形 : 2008.11 72 3位8421碼十進制數(shù)加法器 實 現(xiàn) 方 案 之 一 : 用 原 理 圖 作 電 路 的 結(jié) 構(gòu) 描 述 2008.11 73 3位8421碼十進制數(shù)加法器(續(xù)) 實 現(xiàn) 方 案 之 二 : 用 VHDL作 電 路 的 結(jié) 構(gòu) 描 述 元 件 例 化 語 句 調(diào) 用 子 元 件 2008.11 74 3位8421碼十進制數(shù)加法器(續(xù)) 實 現(xiàn) 方 案 之 二 : 用 VHDL作 電 路
52、的 結(jié) 構(gòu) 描 述 (續(xù) ) 元 件 例 化 語 句 調(diào) 用 子 元 件 architecture struc of bcd_adder_3 is - 3 位 十 進 制 數(shù) 加 法 器 的 結(jié) 構(gòu) 體 描 述 signal temp1, temp2 : std_logic; - 聲 明 2 個 內(nèi) 部 信 號 begin - 以 下 使 用 3 個 直 接 元 件 例 化 語 句 , 直 接 例 化 庫 元 件 u1: work.bcd_adder(behav) port map ( x( 3 downto 0), y( 3 downto 0), 0 , temp1, s( 3 downto
53、 0) ); u2: work.bcd_adder(behav) port map ( x( 7 downto 4), y( 7 downto 4), temp1, temp2, s( 7 downto 4) ); u3: work.bcd_adder(behav) port map ( x( 11 downto 8 ), y( 11 downto 8), temp2, open, s( 11 downto 8) ); end struc; 2008.11 75 本章小結(jié) 數(shù) 制 與 編 碼 : 二 進 制 數(shù) 、 十 進 制 數(shù) 、 八 進 制 數(shù) 和 十 六 進 制 數(shù) 。 編 碼 方 式
54、 : 有 權(quán) 碼 : 最 常 見 的 是 8421碼 無 權(quán) 碼 ; 最 常 見 的 是 格 雷 碼 , 它 是 一 種 無 權(quán) 碼 , 其特 點 是 任 意 2個 相 鄰 碼 之 間 僅 1位 取 值 不 同 。 有 符 號 數(shù) 的 編 碼 : 原 碼 、 補 碼 和 反 碼 等 3種 編 碼 形 式 ,其 中 以 補 碼 應(yīng) 用 最 廣 。 計 算 機 內(nèi) 部 多 采 用 補 碼 系 統(tǒng) , 數(shù) 據(jù) 的 存 儲 與 運 算 都 是補 碼 形 式 , 僅 在 輸 入 輸 出 時 才 轉(zhuǎn) 換 為 人 所 習(xí) 慣 的 表 示形 式 。 2008.11 76 本章小結(jié)(續(xù)) 有 符 號 二 進 制 數(shù) 補 碼 的 表 示 形 式 及 其 加 /減 運 算 規(guī) 則 , 給 出 了 補 碼 加 法 /減 法 器 的 設(shè) 計 過 程 十 進 制 數(shù) 的 二 進 制 編 碼 簡 稱 BCD碼 , 設(shè) 計 了 8421碼 的 十 進 制 數(shù) 加 法 器 。 進 行 了 手 工 設(shè) 計 與 使 用 EDA工 具 設(shè) 計 的 對 比 , 凸 顯 了后 者 的 優(yōu) 越 性 ! 優(yōu) 點 之 一 : 提 高 設(shè) 計 效 率 ; 優(yōu) 點 之 二 : EDA工 具 提 供 了 模 擬 驗 證 的 手 段 , 使 設(shè)計 者 可 自 己 檢 驗 設(shè) 計 的 正 確 性 。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案