Могу ли я вызывать функции внутри PORT MAP?
Могу ли я вызвать функции, такие как:
label1: component_name PORT MAP (x AND y, b SSL 3, output);
В VHDL?
Я много искал, пока не решил опубликовать здесь, а также прочитал руководство по VHDL, но там не сказано, что вы не можете. Хотя это и не показывает, что это возможно.
Я сейчас на macOS, поэтому не могу это проверить.
РЕДАКТИРОВАТЬ: я использую Altera Quartus 16.0
Заранее спасибо!
1 ответ
К сожалению, многое будет зависеть от компилятора.
Помимо этого, такие выражения, как
x and y
обрабатываются иначе, чем вызовы функций
and_fn(x,y)
Я успешно использовал код с полностью определенными ассоциациями и вызовами функций, а не выражениями, такими как:
label1: component_name
port map(
a => and_fn(x,y),
b => myfunc(),
c => output
);
Окончательным документом является Справочное руководство по языку, но суть спорна - попробуйте его в своем наборе инструментов, поддержка и соответствие варьируются.