2.3.2
Recommended
Для переключения нескольких входных сигналов в модели для генерации кода HDL можно использовать блоки Switch, Multiport Switch и Index Vector. Блок вектора индекса эквивалентен блоку мультипортового коммутатора, для которого установлено число терминалов передачи данных 1.
Для блока мультипортового коммутатора можно использовать числовые и перечислимые типы данных. При использовании числовых типов данных в диалоговом окне Block Parameters блока Multiport Switch установите для параметра Data Port Order значение Zero-based contiguous и порт данных для обращения по умолчанию Last data port. Когда количество входных сигналов является мощностью два, Zero-based contiguous режим минимизирует количество битов порта управления.
Для примера, в котором используется блок Multiport Switch с числовыми типами, откройте модель. hdlcoder_multiport_switch_numeric.
open_system('hdlcoder_multiport_switch_numeric') set_param('hdlcoder_multiport_switch_numeric', 'SimulationCommand', 'Update')

DUT подсистема содержит блок мультипортового коммутатора и блок индексного вектора.
open_system('hdlcoder_multiport_switch_numeric/DUT')

Для создания кода HDL для DUT выполните команду makehdl функция.
makehdl('open_system('hdlcoder_multiport_switch_numeric/DUT')
При использовании перечисляемых типов в качестве входных данных для многопортового коммутатора установите для параметра «Порядок портов данных» значение Specify Indices. Класс перечисления определяется в файле MATLAB ®. При использовании варианта по умолчанию установите для диагностики варианта по умолчанию значениеWarning или None.
Для примера, в котором используется блок Multiport 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 подсистема содержит два блока мультипортового коммутатора. Для второго блока мультипортового коммутатора установлен порядок портов данных Specify Indices.
open_system('hdlcoder_multiport_switch_enum/DUT')

Для создания кода HDL для DUT выполните команду makehdl функция.
makehdl('open_system('hdlcoder_multiport_switch_enum/DUT')