Можно задать двунаправленные порты для блоков Subsystem с реализацией черного квадрата. В сгенерированном коде двунаправленные порты имеют ключевое слово VHDL® inout
или Verilog®.
В рабочем процессе Тюремщика FPGA можно использовать двунаправленные порты, чтобы соединиться с внешним RAM.
Двунаправленный порт должен быть портом подсистемы черного квадрата.
Не должно быть никакой логики между двунаправленным портом и соответствующим портом подсистемы DUT верхнего уровня. В противном случае сгенерированный код не компилирует.
Задавать двунаправленный порт с помощью пользовательского интерфейса:
В Подсистеме черного квадрата щелкните правой кнопкой по блоку 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’}
или с одним из других интерфейсов, где интерфейс bitwidth точно совпадает двунаправленным портом bitwidth.
Например, можно сопоставить 32-битный двунаправленный порт с интерфейсом Expansion Headers J6 Pin 2-64[0:31]
.
Вы не можете сгенерировать испытательный стенд Verilog, если существует двунаправленный порт в вашей подсистеме DUT.
HDL Coder™ не поддерживает двунаправленные порты для подсистем маскированных, которые используют BlackBox
в качестве HDL Architecture.
Simulink® не поддерживает двунаправленные порты, таким образом, вы не можете моделировать двунаправленное поведение в Simulink.