[RTLLM-p011] Arithmetic/Multiplier/multi_pipie_8bit
8 位元管線式無號乘法器
題目說明
請設計一個名為 multi_pipe_8bit 的 Verilog 模組,實作一個 8 位元無號整數乘法器 (Unsigned Multiplier),並採用 管線化(Pipeline) 架構進行設計。
模組接收兩個 8 位元無號輸入 mul_a 與 mul_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_a與mul_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
評論