HDL Port and Identifier Properties

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

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

Задайте эти свойства как аргументы name-value к generatehdl functionName имя свойства и Value соответствующее значение. Можно задать несколько аргументов 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). Для примера смотрите Порты Часов для Многоскоростных фильтров. Для получения дополнительной информации см. Опции Генерации кода для Многоскоростных фильтров.

Если вы задаете значение, которое является зарезервированным словом на выходном языке, кодер добавляет постфиксный _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 операторы.

Постфикс к 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. _sectionN, где 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', вектор символов или строковый скаляр. Кодер добавляет этот постфикс, чтобы разрешить дублирующиеся имена модуля сущности или Verilog VHDL. Например, если кодер обнаруживает две сущности с именем MyFilt, кодер называет первую сущность MyFilt и второй экземпляр MyFilt_block.

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

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

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

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

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

Зависимости

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

Постфикс к имени файла сущности 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-код, можно установить соответствующие свойства в диалоговом окне Generate 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