У меня есть сравнение версий системы следующим образом.Оператор повторения в systemverilog
module m();
int count = 4;
logic [3:0] first = 14;
logic [3:0] second = 15;
initial begin
$display("Second %b\n", {count{1'b1}});
if(first == {count{1'b1}}) $display("FIRST Equals\n");
else $display("FIRST Not equal %b and %b\n", first, {count{1'b1}});
if(second == {count{1'b1}}) $display("SECOND Equals\n");
else $display("SECOND Not equal %b and %b\n", second, {count{1'b1}});
end
endmodule
Это выход
Second 1
FIRST Not equal 1110 and 1
SECOND Equals
То, что я не понимаю, заявления Second 1
печати и FIRST Not equal 1110 and 1
Почему печать 1 вместо 1111?
Это интересно, если бы 4 было вместо счета, это сработало бы. Мне любопытно, будет ли '\' определять счет 4', а затем использовать '' 'count'? –
Какой симулятор вы используете? Разве это не порождает предупреждающие сообщения? – toolic