Генерация HDL-кода для подсистем с массивом шин

Массив шин является массивом, элементами которого являются шины. Каждый элемент в массиве шин должен быть невиртуальным и должен иметь совпадающий тип данных.

Массив шин представляет структурированные данные сжато. Массив:

  • Уменьшает сложность модели

  • Уменьшает обслуживание путем организации и маршрутизации сигналов в модели Simulink® для векторизованных алгоритмов

Для получения дополнительной информации смотрите Шины Объединения в Массив Шин (Simulink).

Можно сгенерировать HDL-код для виртуальных и невиртуальных блоков, которые Simulink поддерживает с массивом шин. Для получения дополнительной информации смотрите Массивы Использования Шин в Моделях (Simulink).

Как HDL Coder генерирует код для массива шин

HDL Coder™ расширяет массив шин в вашей модели Simulink в соответствующие скалярные сигналы в сгенерированном коде.

Эта модель Simulink имеет массив сигнала шин в интерфейсе DUT.

Массив шин комбинирует два невиртуальных элемента шины, каждый имеющий скаляры a и b из типов uint16 и int32 соответственно.

Получившийся HDL-код расширяет массив шин в скаляры и содержит четыре скалярных порта ввода и вывода.

В сгенерированном коде массив расширения шины приводит к четырем скалярным сигналам в портах ввода и вывода. Для первого объекта шины входными портами является In_1_a и In_1_b. Для второго объекта шины они - In_2_a и In_2_b. При выходе, для первого объекта шины, они - Out_1_a и Out_1_b. Для второго объекта шины они - Out_2_a и Out_2_b.

ENTITY DUT IS
  PORT( In1_1_a   :   IN    std_logic_vector(15 DOWNTO 0);  -- uint16
        In1_1_b   :   IN    std_logic_vector(31 DOWNTO 0);  -- int32
        In1_2_a   :   IN    std_logic_vector(15 DOWNTO 0);  -- uint16
        In1_2_b   :   IN    std_logic_vector(31 DOWNTO 0);  -- int32
        Out1_1_a  :   OUT   std_logic_vector(15 DOWNTO 0);  -- uint16
        Out1_1_b  :   OUT   std_logic_vector(31 DOWNTO 0);  -- int32
        Out1_2_a  :   OUT   std_logic_vector(15 DOWNTO 0);  -- uint16
        Out1_2_b  :   OUT   std_logic_vector(31 DOWNTO 0)   -- int32
        );
END DUT;

HDL Coder генерирует код в соответствии с порядком, в котором вы указываете элементы шины и элементы массива в вашей модели Simulink. Если вы задаете выходной язык VHDL для своей модели Simulink, которая содержит объект шины с массивами, HDL Coder сохраняет массивы в сгенерированном коде и не расширяется в скаляры.

Массив ограничений шин

  • Не используйте массив шин в других типах данных. Вы не можете использовать сигнал шины, который содержит массив шин.

  • MATLAB System и блоки MATLAB Function, которые содержат Системные объекты, не поддержаны с массивом шин.

Похожие темы