HDL Port and Identifier Properties

Настройка портов, идентификаторов и комментариев

С помощью HDL-порта и свойств идентификатора можно настроить порты, идентификаторы и комментарии в сгенерированном коде.

Задайте эти свойства как аргументы имя-значение для generatehdl функция. Name - имя свойства и Value - соответствующее значение. Можно задать несколько аргументов имя-значение в любом порядке как 'Name1',Value1,...,'NameN',ValueN.

Для примера:

fir = dsp.FIRFilter('Structure','Direct form antisymmetric');
generatehdl(fir,'InputDataType',numerictype(1,16,15),'ClockInputPort','clk_input');

Часы, входы и выходы

расширить все

Имя входного порта включения синхроимпульса, заданное как 'clk_enable', вектор символов или строковый скаляр.

Если вы задаете значение, которое является зарезервированным словом на целевом языке, кодер добавляет постфикс _rsvd на это значение. Вы можете обновить значение постфикса при помощи ReservedWordPostfix свойство. Для получения дополнительной информации смотрите Разрешение конфликтов зарезервированного HDL-текста.

Имя выходного порта включения синхроимпульса, заданное как 'ce_out', вектор символов или строковый скаляр. Это свойство применяется только к Многоскоростные Фильтры, которые используют один входной синхроимпульс (поведение по умолчанию ClockInputs). Для получения примера смотрите Clock Ports для Многоскоростных фильтров. Для получения дополнительной информации смотрите Опции Генерации кода для Многоскоростных фильтров.

Если вы задаете значение, которое является зарезервированным словом на целевом языке, кодер добавляет постфикс _rsvd на это значение. Вы можете обновить значение постфикса при помощи ReservedWordPostfix свойство. Для получения дополнительной информации смотрите Разрешение конфликтов зарезервированного HDL-текста.

Имя входного порта синхроимпульса, заданное как 'clk', вектор символов или строковый скаляр.

Если вы задаете значение, которое является зарезервированным словом на целевом языке, кодер добавляет постфикс _rsvd на это значение. Вы можете обновить значение постфикса при помощи ReservedWordPostfix свойство. Для получения дополнительной информации смотрите Разрешение конфликтов зарезервированного HDL-текста.

Имя входного порта фильтра, заданное как 'filter_in', вектор символов или строковый скаляр.

Если вы задаете значение, которое является зарезервированным словом на целевом языке, кодер добавляет постфикс _rsvd на это значение. Вы можете обновить значение постфикса при помощи ReservedWordPostfix свойство. Для получения дополнительной информации смотрите Разрешение конфликтов зарезервированного HDL-текста.

Тип данных входного порта фильтра, заданный как один из следующих:

  • 'std_logic_vector' или 'signed/unsigned' (когда целевой язык является VHDL)

  • 'wire' (когда целевой язык является Verilog)

Имя выходного порта фильтра, заданное как 'filter_out', вектор символов или строковый скаляр.

Если вы задаете значение, которое является зарезервированным словом на целевом языке, кодер добавляет постфикс _rsvd на это значение. Вы можете обновить значение постфикса при помощи ReservedWordPostfix свойство. Для получения дополнительной информации смотрите Разрешение конфликтов зарезервированного HDL-текста.

Тип данных выходного порта фильтра в сгенерированном HDL-коде, заданный как один из следующих:

  • 'Same as input data type', 'std_logic_vector', или 'signed/unsigned' (когда целевой язык является VHDL)

  • 'wire' (когда целевой язык является Verilog)

Сброс

расширить все

Имя порта сброса фильтра, заданное как 'reset', вектор символов или строковый скаляр. Используйте ResetAssertedLevel свойство для контроля поведения этого порта.

Если вы задаете значение, которое является зарезервированным словом на целевом языке, кодер добавляет постфикс _rsvd на это значение. Вы можете обновить значение постфикса при помощи ReservedWordPostfix свойство. Для получения дополнительной информации смотрите Разрешение конфликтов зарезервированного HDL-текста.

Подавьте генерацию сбросов из регистров сдвига, заданную как 'none' или 'ShiftRegister'. Чтобы пропустить сигналы сброса из регистров сдвига, установите это свойство на 'ShiftRegister'. Отключение сигналов сброса от регистров сдвига может привести к более эффективной реализации FPGA. Для получения дополнительной информации см. «Подавление генерации логики сброса».

Заданный (активный) уровень входного сигнала сброса, заданный как один из следующих:

  • 'active-high' - Чтобы сбросить регистры в создании фильтра, входной сигнал сброса должен управляться высоко (1).

    Для примера этот код проверяет, reset ли активно высоко перед заполнением delay_pipeline зарегистрироваться.

    Delay_Pipeline_Process : PROCESS (clk, reset)
    BEGIN
      IF reset = '1' THEN
        delay_pipeline(0 TO 50) <= (OTHERS => (OTHERS => '0'));

  • 'active-low' - Чтобы сбросить регистры в создании фильтра, входной сигнал сброса должен управляться низко (0).

    Для примера этот код проверяет, reset ли активен низко перед заполнением delay_pipeline зарегистрироваться.

    Delay_Pipeline_Process : PROCESS (clk, reset)
    BEGIN
      IF reset = '0' THEN
        delay_pipeline(0 TO 50) <= (OTHERS => (OTHERS => '0'));

Стиль сброса для регистров, заданный как один из следующих:

  • 'async' - Кодер использует асинхронные сбросы. Блок процесса HDL не проверяет наличие активного синхроимпульса перед выполнением сброса. Для примера:

    delay_pipeline_process : PROCESS (clk, reset)
    BEGIN
      IF Reset_Port = '1' THEN
        delay_pipeline (0 To 50) <= (OTHERS =>(OTHERS => '0'));
      ELSIF Clock_Port'event AND Clock_Port = '1' THEN
        IF ClockEnable_Port = '1' THEN
          delay_pipeline(0) <= signed(Fin_Port);
          delay_pipeline(1 TO 50) <= delay_pipeline(0 TO 49);
        END IF;
      END IF;
    END PROCESS delay_pipeline_process;

  • 'sync' - Кодер использует синхронный стиль сброса. В этом случае блок HDL-процесса проверяет фронт перед выполнением сброса. Для примера:

    delay_pipeline_process : PROCESS (clk, reset)
    BEGIN
      IF rising_edge(Clock_Port) THEN
        IF Reset_Port = '0' THEN
         delay_pipeline(0 To 50) <= (OTHERS =>(OTHERS => '0'));
        ELSIF ClockEnable_Port = '1' THEN
         delay_pipeline(0) <= signed(Fin_Port);
         delay_pipeline(1 TO 50) <= delay_pipeline(0 TO 49);
        END IF;
      END IF;
    END PROCESS delay_pipeline_process;
    

Идентификаторы и комментарии

расширить все

Постфикс меток сечений блоков, заданный как '_gen', вектор символов или строковый скаляр. Это свойство применяется только в том случае, если конечным языком является VHDL. Кодер добавляет этот постфикс к меткам разделов блоков VHDL GENERATE операторы.

Постфикс к меткам сечений образца, заданный как '_gen', вектор символов или строковый скаляр. Это свойство применяется только в том случае, если конечным языком является VHDL. Кодер добавляет этот постфикс к меткам раздела образца VHDL GENERATE операторы.

Постфикс к выходным меткам блоков назначения, заданный как 'outputgen', вектор символов или строковый скаляр. Это свойство применяется только в том случае, если конечным языком является VHDL. Кодер добавляет этот постфикс к выходам выходного блока назначения VHDL GENERATE операторы.

Имена процессов синхроимпульса Postfix в HDL, заданные как '_process', вектор символов или строковый скаляр. Кодер использует HDL-процессные блоки, чтобы изменить содержимое регистров в фильтре. Метка блока определяется из имени регистра и этого постфикса. Для примера в следующем объявлении блока кодер выводит метку процесса из имени регистра delay_pipeline и постфикс по умолчанию '_process'.

delay_pipeline_process : PROCESS (clk, reset)
BEGIN

Префикс для имен коэффициентов фильтра, задается как 'coeff', вектор символов или строковый скаляр. Кодер выводит имена коэффициентов, добавляя специфические для фильтра характеристики к этому префиксу.

Тип фильтраИмя коэффициента
КОНЕЧНАЯ ИМПУЛЬСНАЯ ХАРАКТЕРИСТИКАКодер добавляет число коэффициентов к CoeffPrefix, начиная с 1. Для примера значение по умолчанию для первого коэффициента coeff1.
БИХ

Кодер добавляет следующие символы к CoeffPrefix:

  1. подчеркивание (_)

  2. a или b имя коэффициента (для примера, _a2, _b1, или _b2)

  3. _section<reservedrangesplaceholder0 >, где N - номер раздела.

Для примера значение по умолчанию для первого коэффициента числителя третьего раздела coeff_b1_section3.

Для примера:

firfilt = design(fdesign.lowpass,'equiripple', ...
    'FilterStructure','dfsymfir','SystemObject',true);
generatehdl(firfilt,'InputDataType',numerictype(1,16,15), ...
    'CoefficientSource','Internal','CoeffPrefix','mycoeff');

Кодер заменяет префикс имени коэффициента по умолчанию на пользовательское значение:

ARCHITECTURE rtl OF firfilt IS
  -- Local Functions
  -- Type Definitions
  TYPE delay_pipeline_type IS ARRAY (NATURAL range <>) OF signed(15 DOWNTO 0); -- sfix16_En15
  -- Constants
  CONSTANT mycoeff1   : signed(15 DOWNTO 0) := to_signed(-159, 16); -- sfix16_En16
  CONSTANT mycoeff2   : signed(15 DOWNTO 0) := to_signed(-137, 16); -- sfix16_En16
  CONSTANT mycoeff3   : signed(15 DOWNTO 0) := to_signed(444, 16); -- sfix16_En16
  CONSTANT mycoeff4   : signed(15 DOWNTO 0) := to_signed(1097, 16); -- sfix16_En16
  ...

Зависимости

Это свойство применяется только при установке CoefficientSource на 'Internal'.

Постфикс в мнимую часть имен комплексных сигналов, заданный как '_im', вектор символов или строковый скаляр. См. Использование комплексных данных и коэффициентов.

Постфикс в действительную часть имен комплексных сигналов, заданный как '_re', вектор символов или строковый скаляр. См. Использование комплексных данных и коэффициентов.

Постфикс для дублирования имен сущностей или модулей, заданный как '_block', вектор символов или строковый скаляр. Кодер добавляет этот постфикс, чтобы разрешить повторяющиеся имена сущностей VHDL или модулей Verilog. Для примера, если кодер обнаруживает два объекта с именем MyFiltкодер называет первую сущность MyFilt и второй образец MyFilt_block.

Префикс для имени образца компонента, заданный как 'u_', вектор символов или строковый скаляр.

Имя файла пакета Postfix to VHDL, заданное как '_pkg', вектор символов или строковый скаляр. Кодер выводит имя пакета путем добавления этого постфикса к имени фильтра. Эта опция применяется только в том случае, если для проекта требуется файл пакета.

Постфикс к зарезервированным словам, заданный как '_rsvd', вектор символов или строковый скаляр. Это свойство применяется к значениям имен, постфиксов или меток, заданным в виде вектора символов или строкового скаляра в Name,Value аргументы в виде пар в generatehdl. Если заданное значение является зарезервированным словом на целевом языке, кодер добавляет этот постфикс к значению. Для примера, если вы звоните generatehdl с парой аргументов 'Name','mod'кодер формирует имя mod_rsvd в сгенерированном коде фильтра. См. «Зарезервированные Таблицы Word».

Разделение сущности и кода архитектуры VHDL, заданное как 'off' или 'on'. Когда для этого свойства задано значение 'on'кодер генерирует сущность VHDL и архитектурный код фильтра в двух отдельных файлах. Кодер выводит имена файлов из имени фильтра, добавляя постфиксы _entity и _arch в имя базового файла. Чтобы задать пользовательские значения постфикса, установите SplitEntityFilePostfix и SplitArchFilePostfix свойства.

Имя файла архитектуры Postfix to VHDL, заданное как '_arch', вектор символов или строковый скаляр.

Зависимости

Это свойство применяется только при установке SplitEntityArch на 'on'.

Имя файла сущности Postfix to VHDL, заданное как '_entity', вектор символов или строковый скаляр.

Зависимости

Это свойство применяется только при установке SplitEntityArch на 'on'.

Добавьте комментарии пользователя к сгенерированному HDL-коду, заданному в виде вектора символов или строкового вектора. Комментарии пользователя появляются в блоке комментария заголовка в верхней части сгенерированных файлов, перед которым следуют символы комментариев, характерные для целевого языка. Когда вы включаете новые линии или линии в комментарии пользователя, кодер издает однострочные комментарии для каждой новой линии. Для примера:

firfilt = dsp.FIRFilter;
generatehdl(firfilt,'InputDataType',numerictype(1,16,15), ...
    'UserComment','This is a comment line.\nThis is a second line.')
Получившийся блок комментария заголовка для фильтра firfilt является следующим:
-- -------------------------------------------------------------
--
-- Module: firfilt
-- Generated by MATLAB(R) 9.1 and the Filter Design HDL Coder 3.1.
-- Generated on: 2016-11-08 15:28:25
-- This is a comment line.
-- This is a second line.
--
-- -------------------------------------------------------------

-- -------------------------------------------------------------
-- HDL Code Generation Options:
--
-- TargetLanguage: VHDL
-- Name: firfilt
-- InputDataType: numerictype(1,16,15)
-- UserComment:  User data, length 47
-- GenerateHDLTestBench: off

-- -------------------------------------------------------------
-- HDL Implementation    : Fully parallel
-- Folding Factor        : 1
-- -------------------------------------------------------------
-- Filter Settings:
--
-- Discrete-Time FIR Filter (real)
-- -------------------------------
-- Filter Structure  : Direct-Form FIR
-- Filter Length     : 2
-- Stable            : Yes
-- Linear Phase      : Yes (Type 2)
-- Arithmetic        : fixed
-- Numerator         : s16,15 -> [-1 1)
-- -------------------------------------------------------------

Префикс для имен векторных сигналов VHDL, заданный как 'vector_of_', вектор символов или строковый скаляр.

Совет

Если вы используете функцию fdhdltool для генерации HDL-кода можно задать соответствующие свойства в диалоговом окне Генерация HDL.

СвойствоРасположение в диалоговом окне

Input data type

Output data type

Clock enable output port

Input port

Output port

Global Settings вкладка > Ports вкладка
Дополнительные свойства порта и идентификатора

Верхний раздел Global Settings вкладки и Global Settings вкладки > General вкладки

Проверьте вкладку основной Global Settings, а также Ports и General вкладки Global Settings.

Представлено до R2006a