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.