2.3.2
Recommended
Чтобы переключить несколько входных сигналов в вашу модель для генерации HDL-кода, можно использовать Переключатель, Многопортовый Переключатель, и индексировать Векторные блоки. Блок Vector индекса эквивалентен Многопортовому блоку switch, которому установили Количество терминалов к 1
.
Можно использовать числовые и перечислимые типы данных для Многопортового блока switch. При использовании типов числовых данных, в диалоговом окне Block Parameters Многопортового блока switch, установленного Порядка Порта данных к Zero-based contiguous
и Порт данных для случая по умолчанию к Last data port
. Когда количество входных сигналов является степенью двойки, Zero-based contiguous
режим минимизирует количество битов порта управления.
Для примера, который использует Многопортовый блок switch с числовыми типами, откройте модель hdlcoder_multiport_switch_numeric
.
open_system('hdlcoder_multiport_switch_numeric') set_param('hdlcoder_multiport_switch_numeric', 'SimulationCommand', 'Update')
DUT
подсистема содержит Многопортовый блок switch и блок Vector индекса.
open_system('hdlcoder_multiport_switch_numeric/DUT')
Чтобы сгенерировать HDL-код для DUT, запустите makehdl
функция.
makehdl('open_system('hdlcoder_multiport_switch_numeric/DUT')
Когда вы используете перечислимые типы в качестве входа к Многопортовому Переключателю, устанавливаете Порядок Порта данных к Specify Indices
. Вы задаете класс перечисления в файле MATLAB®. Когда вы используете случай по умолчанию, устанавливаете диагностику случая По умолчанию на Warning
или None
.
Для примера, который использует Многопортовый блок switch с перечислимыми типами, откройте модель hdlcoder_multiport_switch_enum
. Этот код показывает перечислимый класс, заданный в MATLAB.
classdef BasicColors < Simulink.IntEnumType enumeration Red(0) Yellow(1) Blue(2) end methods (Static) function retVal = getDefaultValue() retVal = BasicColors.Blue; end end end
Откройте модель hdlcoder_multiport_switch_enum
.
open_system('hdlcoder_multiport_switch_enum') set_param('hdlcoder_multiport_switch_enum', 'SimulationCommand', 'Update')
DUT
подсистема содержит два Многопортовых блока switch. Второй Многопортовый блок switch имеет набор Порядка Порта данных к Specify Indices
.
open_system('hdlcoder_multiport_switch_enum/DUT')
Чтобы сгенерировать HDL-код для DUT, запустите makehdl
функция.
makehdl('open_system('hdlcoder_multiport_switch_enum/DUT')