設萬維讀者為首頁 廣告服務 技術服務 聯繫我們 關於萬維
簡體 繁體 手機版
分類廣告
版主:
萬維讀者網 > 靈機一動 > 帖子
乘法器的設計試解
送交者: 粱遠聲 2010年10月28日15:53:08 於 [靈機一動] 發送悄悄話
乘法器的設計

假設有一個4位(bit)的乘法器,是組合電路構成。還有一個16位的加法器,也是
組合電路構成。當加法器的輸入懸空時,加法器把它理解成邏輯 0 (低電位)。
現在要完成 8 位乘  8 位的乘法。乘數和被乘數分別放在2個8位的寄存器里。
結果放在一個16位的寄存器里,初始狀態是全0。

還有2個4位的 2 傳 1 多路傳輸器。選擇線為0時,第0組(4位)輸入被傳到輸出端。
選擇線為1時,第1組(4位)輸入被傳到輸出端。

還提供一個8位的 1 傳 4 譯碼器。選擇線為00時,輸入(8位)被傳到第0組輸出端。
選擇線為01時,輸入(8位)被傳到第1組輸出端。選擇線為10時,輸入(8位)被傳到
第2組輸出端。選擇線為11時,輸入(8位)被傳到第3組輸出端。沒有選到的輸出端
處在高阻抗狀態。

還有1個2位的計數器。每個主鍾脈衝後,計數器 的狀態是 00, 01, 10, 11。

請問怎樣連接才能完成8 位乘  8 位的乘法?

解:

設乘數為A1*2^4+A0,被乘數為B1*2^4+B0,分別放在乘數寄存器和被乘數寄存器
里。結果的表達式是 A1*B1*2^8 + A1*B0*2^4 + A0*B1*2^4 + A0*B0

加法器的輸出(16位)接結果寄存器的輸入(16位)。結果寄存器的輸出(16位)接加
法器的被加數(16位)。

被乘數寄存器輸出的低4位接被乘數2傳1多路傳輸器的第0組(4位)輸入。被乘數寄
存器輸出的高4位接被乘數2傳1多路傳輸器的第1組(4位)輸入。選擇線接計數器的
低位。被乘數多路傳輸器的輸出接乘法器的被乘數(4位)。

乘數寄存器輸出的低4位接乘數2傳1多路傳輸器的第0組(4位)輸入。乘數寄存器輸
出的高4位接乘數2傳1多路傳輸器的第1組(4位)輸入。選擇線接計數器的高位。乘
數多路傳輸器的輸出接乘法器的乘數(4位)。

乘法器的積(8位)接1傳4譯碼器的輸入(8位)。譯碼器的第0組輸出接加法器加數的
低8位。第1組輸出接加法器加數的中8位。第2組輸出接加法器加數的中8位。第3組
輸出接加法器加數的高8位。

分析:

初始狀態,結果寄存器是全0。計數器是00。
計數器的低位0選擇被乘數B0,計數器的高位0選擇乘數A0。計數器是00把積A0*B0
送到法器加數的低8位。一個時鐘脈衝後,結果寄存器的內容是A0*B0。計數器是01。

計數器的低位1選擇被乘數B1,計數器的高位0選擇乘數A0。計數器是01把積A0*B1
送到法器加數的中8位。一個時鐘脈衝後,結果寄存器的內容是
A0*B1*2^4 + A0*B0。
計數器是10。

計數器的低位0選擇被乘數B0,計數器的高位1選擇乘數A1。計數器是10把積A1*B0
送到法器加數的中8位。一個時鐘脈衝後,結果寄存器的內容是
A1*B0*2^4 + A0*B1*2^4 + A0*B0。
計數器是10。

計數器的低位1選擇被乘數B1,計數器的高位1選擇乘數A1。計數器是11把積A1*B1
送到法器加數的高8位。一個時鐘脈衝後,結果寄存器的內容是
A1*B1*2^8 + A1*B0*2^4 + A0*B1*2^4 + A0*B0。

計數器是00。

0%(0)
0%(0)
標 題 (必選項):
內 容 (選填項):
實用資訊
回國機票$360起 | 商務艙省$200 | 全球最佳航空公司出爐:海航獲五星
海外華人福利!在線看陳建斌《三叉戟》熱血歸回 豪情築夢 高清免費看 無地區限制
一周點擊熱帖 更多>>
一周回復熱帖
歷史上的今天:回復熱帖
2008: 馬和瓦的問題
2007: 最小周長整數三角形簡單辦法
2007: 求個位數字解
2005: 怎樣過橋
2005: 如何對 cos ^3/2 X 積分?