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

Настраиваемые параметры, которые вы используете, чтобы настроить ваше поведение модели в процессе моделирования, могут сопоставить с портами DUT верхнего уровня в вашем сгенерированном HDL-коде. HDL Coder™ генерирует один порт DUT на настраиваемый параметр.

Можно сгенерировать порт DUT для настраиваемого параметра при помощи его в одном из этих блоков:

  • Gain

  • Constant

  • MATLAB Function

  • MATLAB System

  • Chart

  • Truth Table

  • State Transition Table

Эти блоки с настраиваемым параметром могут быть на любом уровне иерархии DUT, включая в модели - ссылке.

Вы не можете использовать HDL cosimulation с DUT, который использует настраиваемые параметры в любом из этих блоков. Если вы используете настраиваемый параметр в блоке кроме этих блоков, код сгенерирован встроенный и не сопоставляет с портами DUT. Чтобы использовать значение настраиваемого параметра в блоке Chart или Truth Table, смотрите Настраиваемый параметр Использования в Других Блоках.

Можно задать и сохранить настраиваемые параметры в базовом рабочем пространстве или словаре данных 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 панели Contents щелкните по ссылке configure.

    • В панели Dialog нажмите Configure in Coder App. Установите Storage Class на ExportedGlobal.

    Смотрите создают объекты данных из встроенного пакета класса данных 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 к новому входному порту.

Похожие темы