Массив шин является массивом, элементами которого являются шины. Каждый элемент массива шин должен быть невиртуальным и иметь совпадающий тип данных.
Массив шин представляет структурированные данные компактно. Массив:
Уменьшает сложность модели
Уменьшает техническое обслуживание путем организации и маршрутизации сигналов в Simulink® модель для векторизованных алгоритмов
Для получения дополнительной информации смотрите Группирование невиртуальных шин в массивах шин.
Можно сгенерировать HDL-код для виртуальных и невиртуальных блоков, которые Simulink поддерживает с массивом шин. Для получения дополнительной информации см. Раздел «Блоки с поддержкой шины».
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 блоки, которые содержат системные объекты, не поддерживаются массивом шин.