Menu
Coddy logo textTech

符号付き比較

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

同じビットパターンが、異なるsignedおよび符号なしの数値を表すことがあります。2の補数値を比較する場合は、両方のオペランドをsignedとして宣言してください。signedのオペランドと符号なしのオペランドを混在させると、比較の解釈が変わる可能性があります。連結は、signed信号を含んでいても、符号なしの式です。

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

wire signed [7:0] a,b;
assign less = a < b;

signed 宣言により、負の値は非負の値より小さいものとして比較されます。

比較オペランドは一貫してsignedにし、signed値はその符号ビットで拡張します。

challenge icon

チャレンジ

中級

signed 8ビットの a と b を比較します。a が b より小さい場合は less を、等しい場合は equal を出力します。両方の入力は2の補数表現の signed 値です。出力列: less、equal。すべての刺激値は既知の2進値です。

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

自分で試してみよう

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

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

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

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