exponenta event banner

Свойства порта и идентификатора HDL

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

Свойства порта 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.

Имя выходного порта clock enable, указанное как '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 заявления.

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

delay_pipeline_process : PROCESS (clk, reset)
BEGIN

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

Тип фильтраНаименование коэффициента
ЕЛЬКодер добавляет номер коэффициента к CoeffPrefix, начиная с 1. Например, значение по умолчанию для первого коэффициента - coeff1.
IIR

Кодер добавляет следующие символы к 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', символьный вектор или строковый скаляр. Кодер добавляет этот постфикс для разрешения повторяющихся имен объектов 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-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».

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

Тип входных данных

Тип выходных данных

Выходной порт включения тактового синхросигнала

Входной порт

Выходной порт

Вкладка «Глобальные параметры» > вкладка «Порты»
Дополнительные свойства порта и идентификатора

Верхняя часть вкладки «Глобальные параметры» и вкладка «Глобальные параметры» > вкладка «Общие»

Ознакомьтесь с главной вкладкой «Глобальные параметры» и вкладками «Порты» и «Общие» вкладки «Глобальные параметры».

См. также

|

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