はじめに
SystemVerilog 3.1では比較演算でワイルドカードを使用できます。
=?=/!?=でワイルドカードを用いた比較演算を行えます。
=?=は右辺と左辺が等しいときに真、!?=は右辺と左辺が等しくないときに真です。
式ではx, zがワイルドカードとして扱われます。
使い方
<左辺> =?= <右辺>
<左辺> !?= <右辺>
サンプル
=?=を使用したサンプル
module top();
logic [3:0] a = 3'b111;
initial begin
if (a =?= 3'bz11)
$display("Same");
else
$display("Diff");
if (a =?= 3'bz10)
$display("Same");
else
$display("Diff");
end
endmodule
// 出力
// Same
// DIff
!?=を使用したサンプル
module top();
logic [3:0] a = 3'b111;
initial begin
if (a !?= 3'bz11)
$display("Diff");
else
$display("Same");
if (a !?= 3'bz10)
$display("Diff");
else
$display("Same");
end
endmodule
// 出力
// Same
// DIff
まとめ
ワイルドカードを使用した比較演算を行いました。
コメント