Можно указать двунаправленные порты для блоков подсистемы с реализацией «черного ящика». В сгенерированном коде двунаправленные порты имеют Verilog ® или VHDL ®inout ключевое слово.
В рабочем процессе FPGA под ключ можно использовать двунаправленные порты для подключения к внешней оперативной памяти.
Двунаправленный порт должен быть портом подсистемы черного ящика.
Между двунаправленным портом и соответствующим портом подсистемы DUT верхнего уровня не должно быть никакой логики. В противном случае созданный код не компилируется.
Чтобы указать двунаправленный порт с помощью пользовательского интерфейса, выполните следующие действия.
В черном поле Subsystem щелкните правой кнопкой мыши блок Inport или Outport, представляющий двунаправленный порт. Выберите «Код HDL» > «Свойства блока HDL».
Для параметра BidirecedPort выберите 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 под ключ в таблице Интерфейсы целевой платформы необходимо сопоставить двунаправленный порт с любым Specify FPGA Pin {’LSB’,...,’MSB’} или один из других интерфейсов, где битовая ширина интерфейса точно соответствует двунаправленной битовой ширине порта.
Например, можно сопоставить 32-разрядный двунаправленный порт с Expansion Headers J6 Pin 2-64[0:31] интерфейс.
Невозможно создать тестовый стенд Verilog, если в подсистеме DUT имеется двунаправленный порт.
HDL Coder™ не поддерживает двунаправленные порты для маскированных подсистем, которые используют BlackBox в качестве архитектуры HDL.
Simulink ® не поддерживает двунаправленные порты, поэтому моделирование двунаправленного поведения в Simulink невозможно.