Menu
Coddy logo textTech

キャリービットの保持

CoddyのVerilogジャーニー「RTL設計と検証」セクションの一部。レッスン 6/38。

シグナルの幅によって、表現できるビット数が決まります。演算の前にオペランドを拡張して、算術演算の意図を明示します。2つの符号なし8ビット値を加算すると、結果には9ビット必要になる場合があります。8ビットだけを割り当てると下位8ビットだけが保持され、キャリーが失われます。

関連する抜粋です。周囲の宣言と接続は課題内で提供されています。

wire [8:0] total;
assign total = {1'b0,a} + {1'b0,b};

各オペランドは完全な合計に一致するよう、明示的に9ビット幅になっています。

必要な結果の幅を選択し、算術演算の前にオペランドを拡張します。

challenge icon

チャレンジ

中級

符号なし 8 ビットの a と b を、キャリーを失わずに加算してください。完全な 9 ビットの合計を total に返します。両方のオペランドを明示的に 9 ビットへ拡張してください。出力列: total。すべての刺激値は既知の 2 進値です。

design.v を完成させ、モジュール名とポートを保持してください。ロックされた testbench.v が入力の変更を供給し、値が安定した後に出力を表示します。+CASE=1 のようなシミュレータ引数を使用してシナリオを選択します。標準入力は必要ありません。設計に表示、遅延、またはシミュレーション終了処理を追加しないでください。期待される出力は、観測ごとに 10 進値を 1 行に 1 つ出力し、値同士を 1 個のスペースで区切り、改行で終わる形式です。

自分で試してみよう

module dut (input [7:0] a, input [7:0] b, output [8:0] total);
    // このプレースホルダーをあなたのデザインに置き換えてください。
    assign total = 0;
endmodule
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

RTL設計と検証のすべてのレッスン

自分で練習してみよう: Verilogオンラインコンパイラ