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

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

Вы можете сгенерировать порт DUT для настраиваемого параметра, используя его в одном из следующих блоков:

  • Gain

  • Constant

  • MATLAB Function

  • MATLAB System

  • Chart

  • Truth Table

  • State Transition Table

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

Вы не можете использовать HDL-косимуляцию с 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;

Ограничения

Убедитесь, что флажок Использовать триггерный сигнал как синхроимпульс (Use trigger signal as clock) по умолчанию снят.

Используйте настраиваемый параметр в других блоках

Чтобы использовать значение настраиваемого параметра в Chart или Truth Table блоке:

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

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

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

Похожие темы