乘法器的設計試解 |
送交者: 粱遠聲 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。 |
|
|
|
實用資訊 | |
|
|
一周點擊熱帖 | 更多>> |
|
|
一周回復熱帖 |
|
|
歷史上的今天:回復熱帖 |
2008: | 馬和瓦的問題 | |
2007: | 最小周長整數三角形簡單辦法 | |
2007: | 求個位數字解 | |
2005: | 怎樣過橋 | |
2005: | 如何對 cos ^3/2 X 積分? | |