Сгенерируйте порты DUT для настраиваемых параметров

Настраиваемые параметры, которые вы используете, чтобы настроить ваше поведение модели во время симуляции, могут сопоставить с портами 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

Сгенерировать порт DUT для настраиваемого параметра:

  1. Создайте настраиваемый параметр с набором StorageClass к ExportedGlobal.

    Например, чтобы создать настраиваемый параметр, myParam, и инициализировать его к 5, в командной строке, введите:

    myParam = Simulink.Parameter;
    myParam.Value = 5;
    myParam.CoderInfo.StorageClass = 'ExportedGlobal';

    Также с помощью Model Explorer, можно создать настраиваемый параметр и установить Storage Class на ExportedGlobal. Смотрите Создают Объекты данных из Встроенного Пакета Класса Данных Simulink (Simulink).

  2. В вашем проекте 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:

  1. Создайте настраиваемый параметр и используйте его в блоке Constant.

  2. Добавьте входной порт в блок, где вы хотите использовать настраиваемый параметр.

  3. Соедините вывод блока Constant к новому входному порту.

Похожие темы