[RTLLM-p003] Arithmetic/Adder/adder_32bit
32 位元 Carry-Lookahead 加法器
題目說明
請設計一個名為 adder_32bit 的 Verilog 模組,實作一個 32 位元 Carry-Lookahead Adder(CLA,超前進位加法器)。
模組輸入兩個 32 位元運算元:
AB
並輸出:
- 32 位元加法結果
S - 最終進位輸出
C32
頂層模組 adder_32bit 必須由多個自行設計的 16 位元 CLA 模組組成。
本題要求使用 Carry-Lookahead 架構,而不是直接使用 Verilog 的加法運算子。
模組介面 (Module Interface)
| 埠 | 方向 | 位元寬度 | 描述 |
|---|---|---|---|
A |
input | 32 | 輸入運算元 A |
B |
input | 32 | 輸入運算元 B |
S |
output | 32 | 加法結果 |
C32 |
output | 1 | 最終進位輸出 |
設計要求與提示
- 模組名稱: 必須為
adder_32bit。 - 架構要求: 使用 Carry-Lookahead Adder 架構。
- 階層式設計: 32 位元加法器需由多個 16 位元 CLA Block 組成。
- Carry 串接: 低 16 位元 CLA 的 Carry-out 必須連接至高 16 位元 CLA 的 Carry-in。
- 組合邏輯: 不可使用 Clock 或 Register。
程式設計模板
module adder_32bit (
input [31:0] A,
input [31:0] B,
output [31:0] S,
output C32
);
// 在此處填寫您的程式碼
endmodule
評論