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

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

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

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

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

Для получения дополнительной информации смотрите Группирование невиртуальных шин в массивах шин.

Можно сгенерировать HDL-код для виртуальных и невиртуальных блоков, которые 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 блоки, которые содержат системные объекты, не поддерживаются массивом шин.

Похожие темы