[RTLLM-p011] Arithmetic/Multiplier/multi_pipie_8bit


提交解答


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

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

8 位元管線式無號乘法器

題目說明

請設計一個名為 multi_pipe_8bit 的 Verilog 模組,實作一個 8 位元無號整數乘法器 (Unsigned Multiplier),並採用 管線化(Pipeline) 架構進行設計。

模組接收兩個 8 位元無號輸入 mul_amul_b,當 mul_en_in 為 1 時,表示此次乘法運算有效。經過若干個時脈週期後,模組需輸出 16 位元乘法結果 mul_out,並於結果有效時將 mul_en_out 拉高。

由於採用管線化設計,因此輸出結果不需要於下一個時脈立即產生,但必須確保每一次有效輸入皆能對應到正確的乘法結果。


模組介面 (Module Interface)

埠 (Port) 方向 (Direction) 位元寬度 (Width) 說明 (Description)
clk 輸入 (input) 1 系統時脈
rst_n 輸入 (input) 1 低有效重置信號
mul_en_in 輸入 (input) 1 輸入資料有效訊號
mul_a 輸入 (input) 8 被乘數(Multiplicand)
mul_b 輸入 (input) 8 乘數(Multiplier)
mul_en_out 輸出 (output) 1 輸出結果有效訊號
mul_out 輸出 (output) 16 乘法結果

設計要求

  • 模組名稱: 必須命名為 multi_pipe_8bit
  • 資料型態: mul_amul_b 均為 8 位元無號整數。
  • 運算方式:mul_en_in 為 1 時,開始處理此次乘法運算。
  • 管線設計: 可自行決定管線深度,只要每筆有效輸入最終皆能輸出正確結果即可。
  • 輸出有效訊號:mul_out 為有效乘法結果時,mul_en_out 必須輸出為 1。
  • 重置行為:rst_n 為 0 時,所有內部暫存器及輸出皆須初始化。

程式設計模板 (Code Template)

module multi_pipe_8bit (
    input         clk,
    input         rst_n,
    input         mul_en_in,
    input  [7:0]  mul_a,
    input  [7:0]  mul_b,
    output        mul_en_out,
    output [15:0] mul_out
);

    // 在此填寫您的程式

endmodule

評論

目前沒有評論。