Могу ли я вызывать функции внутри 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
);

Окончательным документом является Справочное руководство по языку, но суть спорна - попробуйте его в своем наборе инструментов, поддержка и соответствие варьируются.

Другие вопросы по тегам