Интерфейс черного ящика для подсистемы - это сгенерированный компонент VHDL ® или модуль Verilog ®, который включает только определения входных и выходных портов HDL для подсистемы. Генерируя такой компонент, можно использовать подсистему в модели для создания интерфейса с существующим вручную написанным кодом HDL, сторонним IP или другим кодом, сгенерированным Coder™ HDL.
Реализация «черного ящика» доступна только для блоков подсистем ниже уровня DUT. Блоки виртуальных и атомных подсистем пользовательских библиотек, которые находятся ниже уровня DUT, также работают с реализациями «черного ящика».
Для подсистемы черного ящика можно создать не более одного порта синхронизации и одного порта включения синхронизации. Следовательно, подсистема черного ящика должна быть односкоростной, даже если она находится в многоскоростном DUT.
Для создания интерфейса выберите BlackBox реализация для одного или нескольких блоков подсистемы. Рассмотрим следующую модель, содержащую подсистему top, которое является тестируемым устройством.

Подсистема top содержит две подсистемы нижнего уровня:

Предположим, что требуется создать код HDL из top, с интерфейсом черного ящика из Interface подсистема. Чтобы указать интерфейс черного ящика, выполните следующие действия.
Щелкните правой кнопкой мыши Interface и выберите HDL Code > HDL Block Properties.
Откроется диалоговое окно Свойства HDL (HDL Properties).
Задайте для архитектуры значение BlackBox.
Для реализации черного ящика доступны следующие параметры:

Параметры блока HDL, доступные для реализации «черного ящика», позволяют настраивать сгенерированный интерфейс. Сведения об этих параметрах см. в разделе Настройка интерфейса косимуляции черного ящика или HDL.
Измените требуемые параметры и нажмите «Применить».
Нажмите кнопку ОК, чтобы закрыть диалоговое окно Свойства HDL (HDL Properties).
При создании кода для DUT в ex_blackbox_subsys , появляются следующие сообщения:
>> makehdl('ex_blackbox_subsys/top')
### Generating HDL for 'ex_blackbox_subsys/top'
### Starting HDL Check.
### HDL Check Complete with 0 errors, 0 warnings and 0 messages.
### Begin VHDL Code Generation
### Working on ex_blackbox_subsys/top/gencode as hdlsrc\gencode.vhd
### Working on ex_blackbox_subsys/top as hdlsrc\top.vhd
### HDL Code Generation Complete.В сообщениях о ходе выполнения обратите внимание, что gencode подсистема генерирует отдельный файл, gencode.vhd, для определения объекта VHDL. Interface подсистема не генерирует такой файл. Код интерфейса для этой подсистемы находится в top.vhd, генерируется из ex_blackbox_subsys/top. Следующий список кодов показывает определение компонента и экземпляр, созданный для Interface подсистема.
COMPONENT Interface
PORT( clk : IN std_logic;
clk_enable : IN std_logic;
reset : IN std_logic;
In1 : IN std_logic_vector(7 DOWNTO 0); -- uint8
In2 : IN std_logic_vector(15 DOWNTO 0); -- uint16
In3 : IN std_logic_vector(31 DOWNTO 0); -- uint32
Out1 : OUT std_logic_vector(31 DOWNTO 0) -- uint32
);
END COMPONENT;
...
u_Interface : Interface
PORT MAP( clk => clk,
clk_enable => enb,
reset => reset,
In1 => gencode_out1, -- uint8
In2 => gencode_out2, -- uint16
In3 => gencode_out3, -- uint32
Out1 => Interface_out1 -- uint32
);
enb <= clk_enable;
ce_out <= enb;
Out1 <= Interface_out1;
По умолчанию интерфейс черного ящика, генерируемый для подсистем, включает в себя порты синхронизации, включения синхронизации и сброса. Настройка интерфейса косимуляции черного ящика или HDL (Customize Black Box или HDL Cosimulation Interface) описывает, как можно переименовать или подавить генерацию этих сигналов, а также настроить другие аспекты созданного интерфейса.