Я пытаюсь использовать макрос препроцессора Verilog в Altera Quartus, требующий использования значения параметра внутри имени переменной.Verilog preccessor string concatenation
Пример:
`define INCREMENT_COUNTER(parsername) \
__parsername_counter <= __parsername_counter + 4'h1;
`INCREMENT_COUNTER(p1)
Таким образом, использование должно дать
__p1_counter <= __p1_counter + 4'h1;
Однако parsername не правильно заменить и возвращает
__parsername_counter <= __parsername_counter + 4'h1;
Я также попытался с помощью
__``parsername``_counter <= __``parsername``_counter + 4'h1;
который также не работает. Любая помощь будет оценена по достоинству.
Вы также должны объявить новый 'reg' и вам нужно будет использовать его где-то, тоже. Все они должны быть частью вашего макроса. – toolic