[RTLLM-p005] Arithmetic/Adder/adder_bcd


提交解答


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

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

4 位元 BCD 加法器

題目說明

請設計一個名為 adder_bcd 的 Verilog 模組,實作一個 4 位元 BCD 加法器

模組輸入兩個 BCD 格式的十進位數字,以及一個進位輸入 Cin

BCD 使用 4 個二進位位元表示一個十進位數字:

Decimal BCD
0 0000
1 0001
... ...
9 1001

因此 BCD 不允許:

1010 ~ 1111

這些二進位值不是合法的 BCD。

模組需要先進行一般二進位加法,再根據結果進行 BCD 修正。


模組介面

方向 位元寬度 描述
A input 4 第一個 BCD 數字
B input 4 第二個 BCD 數字
Cin input 1 初始進位輸入
Sum output 4 修正後 BCD 結果
Cout output 1 十進位進位輸出

設計要求與提示

  • 模組名稱: 必須為 adder_bcd
  • 第一階段: 計算:
A + B + Cin
  • 第二階段: 若結果大於 9,加入:
6 (4'b0110)

進行 BCD Correction。

  • 第三階段: 若超過單一十進位位數,輸出 Cout=1

程式設計模板

module adder_bcd (
    input  [3:0] A,
    input  [3:0] B,
    input        Cin,

    output [3:0] Sum,
    output       Cout
);

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

endmodule

評論

目前沒有評論。