exponenta event banner

Создание интерфейса черного ящика для подсистемы

Что такое интерфейс черного ящика?

Интерфейс черного ящика для подсистемы - это сгенерированный компонент VHDL ® или модуль Verilog ®, который включает только определения входных и выходных портов HDL для подсистемы. Генерируя такой компонент, можно использовать подсистему в модели для создания интерфейса с существующим вручную написанным кодом HDL, сторонним IP или другим кодом, сгенерированным Coder™ HDL.

Требования

  • Реализация «черного ящика» доступна только для блоков подсистем ниже уровня DUT. Блоки виртуальных и атомных подсистем пользовательских библиотек, которые находятся ниже уровня DUT, также работают с реализациями «черного ящика».

  • Для подсистемы черного ящика можно создать не более одного порта синхронизации и одного порта включения синхронизации. Следовательно, подсистема черного ящика должна быть односкоростной, даже если она находится в многоскоростном DUT.

Создание интерфейса черного ящика для подсистемы

Для создания интерфейса выберите BlackBox реализация для одного или нескольких блоков подсистемы. Рассмотрим следующую модель, содержащую подсистему top, которое является тестируемым устройством.

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

Предположим, что требуется создать код HDL из top, с интерфейсом черного ящика из Interface подсистема. Чтобы указать интерфейс черного ящика, выполните следующие действия.

  1. Щелкните правой кнопкой мыши Interface и выберите HDL Code > HDL Block Properties.

    Откроется диалоговое окно Свойства HDL (HDL Properties).

  2. Задайте для архитектуры значение BlackBox.

    Для реализации черного ящика доступны следующие параметры:

    Параметры блока HDL, доступные для реализации «черного ящика», позволяют настраивать сгенерированный интерфейс. Сведения об этих параметрах см. в разделе Настройка интерфейса косимуляции черного ящика или HDL.

  3. Измените требуемые параметры и нажмите «Применить».

  4. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Свойства 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) описывает, как можно переименовать или подавить генерацию этих сигналов, а также настроить другие аспекты созданного интерфейса.

Связанные темы