Настраиваемые параметры, которые вы используете, чтобы настроить ваше поведение модели во время симуляции, могут сопоставить с портами DUT верхнего уровня в вашем сгенерированном HDL-коде. HDL Coder™ генерирует один порт DUT на настраиваемый параметр.
Можно сгенерировать порт DUT для настраиваемого параметра при помощи его в одном из этих блоков:
Усиление
Постоянный
Функция MATLAB
Matlab.system
График
Таблица истинности
Таблица изменения состояния
Эти блоки с настраиваемым параметром могут быть на любом уровне иерархии DUT, включая в модели - ссылке.
Вы не можете использовать HDL cosimulation с DUT, который использует настраиваемые параметры в любом из этих блоков. Если вы используете настраиваемый параметр в блоке кроме этих блоков, код сгенерирован встроенный и не сопоставляет с портами DUT. Чтобы использовать значение настраиваемого параметра в блоке Chart или Truth Table, смотрите Настраиваемый параметр Использования в Других Блоках.
Можно задать и сохранить настраиваемые параметры в базовом рабочем пространстве или словаре данных Simulink®. Однако словарь данных Simulink предусматривает больше возможностей. Для получения дополнительной информации смотрите то, Что Словарь Данных? (Simulink).
Скомпилированный тип данных Simulink для всех экземпляров настраиваемого параметра должен быть тем же самым.
Блоки Simulink, которые используют настраиваемые параметры с тем же именем, должны действовать на той же скорости передачи данных.
Узнать больше о Simulink скомпилировало типы данных, смотрите Типы данных параметров Блока управления (Simulink).
Сгенерировать порт DUT для настраиваемого параметра:
Создайте настраиваемый параметр с набором StorageClass
к ExportedGlobal
.
Например, чтобы создать настраиваемый параметр, myParam
, и инициализировать его к 5, в командной строке, введите:
myParam = Simulink.Parameter; myParam.Value = 5; myParam.CoderInfo.StorageClass = 'ExportedGlobal';
Также с помощью Model Explorer, можно создать настраиваемый параметр и установить Storage Class на ExportedGlobal
. Смотрите Создают Объекты данных из Встроенного Пакета Класса Данных Simulink (Simulink).
В вашем проекте Simulink используйте настраиваемый параметр в качестве:
Constant value в блоке Constant.
Параметр Gain в блоке Gain.
Аргумент функции MATLAB® в блоке MATLAB function.
Следующий код VHDL® является примером кода, который HDL Coder генерирует для блока Gain с его набором поля Gain к настраиваемому параметру, myParam
. Вы видите, что генератор кода создает порт DUT и добавляет комментарий, чтобы указать, что порт соответствует настраиваемому параметру.
ENTITY s IS PORT( In1 : IN std_logic_vector(15 DOWNTO 0); -- sfix16_En5 myParam : IN std_logic_vector(15 DOWNTO 0); -- sfix16_En5 Tunable port Out1 : OUT std_logic_vector(31 DOWNTO 0) -- sfix32_En10 ); END s; ARCHITECTURE rtl OF s IS -- Signals SIGNAL myParam_signed : signed(15 DOWNTO 0); -- sfix16_En5 SIGNAL In1_signed : signed(15 DOWNTO 0); -- sfix16_En5 SIGNAL Gain_out1 : signed(31 DOWNTO 0); -- sfix32_En10 BEGIN myParam_signed <= signed(myParam); In1_signed <= signed(In1); Gain_out1 <= myParam_signed * In1_signed; Out1 <= std_logic_vector(Gain_out1); END rtl;
Убедитесь, что триггерный сигнал Использования как флажок часов оставляют очищенным по умолчанию.
Использовать значение настраиваемого параметра в блоке Chart или Truth Table:
Создайте настраиваемый параметр и используйте его в блоке Constant.
Добавьте входной порт в блок, где вы хотите использовать настраиваемый параметр.
Соедините вывод блока Constant к новому входному порту.