Интерфейс черного ящика для подсистемы является сгенерированным VHDL® компонент или Verilog® модуль, который включает только определения входного и выходного портов HDL для подсистемы. При генерации такого компонента можно использовать подсистему в модели, чтобы сгенерировать интерфейс к существующему вручную написанному HDL-коду, стороннему IP или другому коду, сгенерированному HDL- Coder™.
Реализация черного ящика доступна только для подсистемных блоков ниже уровня DUT. Виртуальный и атомарная подсистема блоки пользовательских библиотек, которые находятся ниже уровня DUT, также работают с реализациями черного ящика.
Можно сгенерировать не более одного порта синхроимпорта и одного порта включения синхроимпульса для подсистемы черного ящика. Поэтому подсистема черного ящика должна быть односкоростной, даже если она находится в многопоточном DUT.
Чтобы сгенерировать интерфейс, выберите BlackBox
реализация для одного или нескольких блоков Subsystem. Рассмотрим следующую модель, которая содержит подсистему top
, которое является тестируемым устройством.
Подсистема top
содержит две низкоуровневые подсистемы:
Предположим, что вы хотите сгенерировать HDL-код из top
, с интерфейсом черного ящика из Interface
подсистема. Чтобы задать интерфейс черного ящика:
Щелкните правой кнопкой мыши по Interface
и выберите HDL Code > HDL Block Properties.
Откроется диалоговое окно Свойства.
Установите Architecture значение BlackBox
.
Для реализации черного ящика доступны следующие параметры:
Параметры блоков, доступные для реализации черного ящика, позволяют вам настроить сгенерированный интерфейс. Информацию об этих параметрах см. в разделе Настройка интерфейса черного ящика или HDL-косимуляции.
Измените параметры по желанию и нажатию кнопки Apply.
Нажмите кнопку OK, чтобы закрыть диалоговое окно « Свойства HDL».
Когда вы генерируете код для 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. The 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;
По умолчанию интерфейс черного ящика, сгенерированный для подсистем, включает в себя часы, активацию синхроимпульса и порты сброса. Настройка интерфейса Black Box или HDL Cosimulation описывает, как можно переименовать или подавить генерацию этих сигналов и настроить другие аспекты сгенерированного интерфейса.