Jak przekazać wartość zmiennej do makra w SystemVerilog?

Myślę, że pytanie podsumowuje całkiem dobrze, co chcę: przekazanie wartości zmiennej do makra w SystemVerilog.

Na przykład, co chcę: powiedzmy, że są 4 sygnały o nazwie abc_X_def i chcę zainicjować wszystkie z nich na 0. Tak więc bez makr:

abc_0_def = 4'b0000;
abc_1_def = 4'b0000;
abc_2_def = 4'b0000;
abc_3_def = 4'b0000;

Kod, który napisałem, ma problem:

`define set_value(bit) abc_``bit``_def = 4'b0000

for (int i = 0; i < 4; i++) begin
  `set_value(i);
end

Błąd polega na tym, że próbuje znaleźć sygnał abc_i_def, który jest oczywiście błędny. Zastanawiam się, czy możliwe jest przekazanie rzeczywistej wartości zmiennej „i” do makra.

questionAnswers(2)

yourAnswerToTheQuestion