Можно задать двунаправленные порты для блоков 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 невозможно.