[RTLLM-p009] Arithmetic/Multiplier/multi_booth_8bit


提交解答


分數: 5
時間限制: 2.0s
記憶體限制: 256M

作者:
題目代碼
題目類型
允許的語言
Verilog

8 位元 Radix-4 Booth 乘法器

題目說明

請設計一個名為 multi_booth_8bit 的 Verilog 模組,使用 Radix-4 Booth 演算法完成兩個 8 位元輸入資料的乘法運算。

模組輸入:

  • a:8 位元被乘數
  • b:8 位元乘數

並輸出:

  • p:16 位元乘法結果
  • rdy:完成旗標

此乘法器需要透過 Clock 控制,在多個 cycle 中完成運算。

當乘法完成時:

rdy = 1

表示:

p

中的結果有效。


模組介面

方向 位元寬度 描述
clk input 1 Clock 訊號
reset input 1 Reset 訊號 (High Active)
a input 8 被乘數
b input 8 乘數
p output 16 乘法結果
rdy output 1 運算完成旗標

設計要求

  • 模組名稱:
multi_booth_8bit
  • 使用 Booth multiplication algorithm。
  • 不可直接使用:
*

完成乘法。

  • 使用 clock 逐步完成運算。

運算流程

Reset 時:

  • 初始化內部 register。
  • 清除完成訊號。

正常運作時:

  1. 根據 multiplier bit 判斷 Booth 編碼。
  2. 執行部分乘積累加。
  3. 進行 shift 操作。
  4. Counter 累積計算次數。

當計算完成:

rdy = 1

並輸出:

p = a × b

程式設計模板

module multi_booth_8bit (
    input clk,
    input reset,

    input signed [7:0] a,
    input signed [7:0] b,

    output signed [15:0] p,
    output rdy
);

    // 在此處填寫您的程式碼

endmodule

評論

目前沒有評論。