Можно задать двунаправленные порты для блоков Subsystem с реализацией черного ящика. В сгенерированном коде двунаправленные порты имеют Verilog® или VHDL® inout
ключевое слово.
В рабочем процессе FPGA «под ключ» можно использовать двунаправленные порты для подключения к внешней оперативной памяти.
Двунаправленный порт должен быть портом подсистемы черного ящика.
Между двунаправленным портом и соответствующим портом подсистемы DUT верхнего уровня не должно быть логики. В противном случае сгенерированный код не компилируется.
Чтобы задать двунаправленный порт, используя UI:
В Subsystem черного ящика щелкните правой кнопкой мыши блок Inport или Outport, который представляет двунаправленный порт. Выберите HDL Code > HDL Block Properties.
Для BidirectionalPort выберите on
.
Чтобы задать двунаправленный порт в командной строке, установите BidirectionalPort
свойство к 'on'
использование hdlset_param
или makehdl
.
Например, предположим, что у вас есть модель, my_model
, которая содержит подсистему DUT, dut_subsys
, и подсистема DUT содержит подсистему черного ящика, blackbox_subsys
. Если blackbox_subsys
имеет Inport, input_A
, задайте input_A
как двунаправленный путем ввода:
hdlset_param('mymodel/dut_subsys/blackbox_subsys/input_A','BidirectionalPort','on');
В рабочем процессе FPGA «под ключ», в Target platform interfaces table, вы должны сопоставить двунаправленный порт с любым Specify FPGA Pin {’LSB’,...,’MSB’}
или один из других интерфейсов, где битовая ширина интерфейса в точности соответствует битовой ширине двунаправленного порта.
Например, вы можете сопоставить 32-битный двунаправленный порт с Expansion Headers J6 Pin 2-64[0:31]
интерфейс.
Вы не можете сгенерировать испытательный стенд Verilog, если в подсистеме DUT есть двунаправленный порт.
HDL Coder™ не поддерживает двунаправленные порты для маскированных подсистем, которые используют BlackBox
как HDL Architecture.
Simulink® не поддерживает двунаправленные порты, поэтому моделировать двунаправленное поведение в Simulink невозможно.