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