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

Указание комментария к заголовку

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

Можно использовать опцию Comment in header, чтобы добавить комментарий в конец блока комментариев заголовка в каждом сгенерированном файле. Для примера используйте эту опцию, чтобы добавить "This module was automatically generated”. С этим изменением предыдущий блок комментария заголовка появится следующим образом:

-- -------------------------------------------------------------
--
-- Module: Hlp
--
-- Generated by MATLAB(R) 7.11 and the Filter Design HDL Coder 2.7.
--
-- Generated on: 2010-08-31 13:32:16
--
-- This module was automatically generated
--
-- -------------------------------------------------------------

-- -------------------------------------------------------------
-- HDL Code Generation Options:
--
-- TargetLanguage: VHDL
-- Name: Hlp
-- UserComment:  User data, length 47

-- Filter Specifications:
--
-- Sampling Frequency : N/A (normalized frequency)
-- Response           : Lowpass
-- Specification      : Fp,Fst,Ap,Ast
-- Passband Edge      : 0.45
-- Stopband Edge      : 0.55
-- Passband Ripple    : 1 dB
-- Stopband Atten.    : 60 dB
-- -------------------------------------------------------------

-- -------------------------------------------------------------
-- HDL Implementation    : Fully parallel
-- Multipliers           : 43
-- Folding Factor        : 1
-- -------------------------------------------------------------
-- Filter Settings:
--
-- Discrete-Time FIR Filter (real)
-- -------------------------------
-- Filter Structure  : Direct-Form FIR
-- Filter Length     : 43
-- Stable            : Yes
-- Linear Phase      : Yes (Type 1)
-- Arithmetic        : fixed
-- Numerator         : s16,16 -> [-5.000000e-001 5.000000e-001)
-- Input             : s16,15 -> [-1 1)
-- Filter Internals  : Full Precision
--   Output          : s33,31 -> [-2 2)  (auto determined)
--   Product         : s31,31 -> [-5.000000e-001 5.000000e-001)  (auto determined)
--   Accumulator     : s33,31 -> [-2 2)  (auto determined)
--   Round Mode      : No rounding
--   Overflow Mode   : No overflow
-- -------------------------------------------------------------

Чтобы добавить комментарий заголовка,

  1. Выберите вкладку Global Settings в диалоговом окне Сгенерировать HDL.

  2. Выберите вкладку General на панели Additional settings.

  3. Введите текст комментария в поле Comment in header, как показано на следующем рисунке.

Альтернатива командной строки: используйте generatehdl функция со свойством UserComment чтобы добавить комментарий в конец блока комментариев заголовка в каждом сгенерированном HDL- файла.

Разрешение конфликтов по совпадению имен сущностей или модулей

Кодер проверяет, имеют ли несколько сущностей в VHDL или несколько модулей в Verilog одно и то же имя. Если существует конфликт имен, кодер добавляет постфикс '_block' ко второму из двух совпадающих векторов символов.

Чтобы изменить постфикс:

  1. Выберите вкладку Global Settings в диалоговом окне Сгенерировать HDL.

  2. Выберите вкладку General на панели Additional settings.

  3. Введите новый вектор символов в поле Entity conflict postfix, как показано на следующем рисунке.

Альтернатива командной строки: используйте generatehdl функция со свойством EntityConflictPostfix изменение сущности или модуля приводит к конфликту постфикса.

Разрешение HDL-конфликтов зарезервированных слов

Кодер проверяет, являются ли векторы символов, которые вы задаете в качестве имен, значений постфикса или меток, зарезервированными словами VHDL или Verilog. Список зарезервированных слов VHDL и Verilog см. в разделе Таблицы зарезервированных слов.

Если вы задаете зарезервированное слово, кодер добавляет постфикс _rsvd в вектор символов. Например, если вы пытаетесь назвать свой фильтр mod, для кода VHDL, кодер добавляет постфикс _rsvd для формирования имени mod_rsvd.

Чтобы изменить постфикс:

  1. Выберите вкладку Global Settings в диалоговом окне Сгенерировать HDL.

  2. Выберите вкладку General на панели Additional settings.

  3. Введите новый вектор символов в поле Reserved word postfix, как показано на следующем рисунке.

Альтернатива командной строки: используйте generatehdl функция со свойством ReservedWordPostfix для изменения зарезервированного слова postfix.

Зарезервированные таблицы слов

В следующих таблицах перечислены VHDL и Verilog зарезервированные слова.

Зарезервированные слова VHDL

absaccessafteraliasall
andarchitecturearray assertattribute
beginblockbodybufferbus
casecomponentconfiguration constantdisconnect
downtoelseelsifendentity
exitfileforfunctiongenerate
genericgroupguardedifimpure
ininertialinoutislabel
librarylinkageliteralloopmap
modnandnewnextnor
notnullofonopen
orothersoutpackageport
postponedprocedureprocesspurerange
recordregisterrejectremreport
returnrolrorselectseverity
signalsharedslasllsra
srlsubtypethen totransport
typeunaffectedunitsuntiluse
variablewaitwhenwhilewith
xnorxor   

Verilog зарезервированные слова

alwaysandassignautomaticbegin
bufbufif0bufif1casecasex
casezcellcmosconfigdeassign
defaultdefparamdesigndisableedge
elseendendcaseendconfigendfunction
endgenerateendmoduleendprimitiveendspecifyendtable
endtaskeventforforceforever
forkfunctiongenerategenvarhighz0
highz1ififnoneincdirinclude
initialinoutinputinstanceinteger
joinlargeliblistlibrarylocalparam
macromodulemediummodulenandnegedge
nmosnornoshowcancellednotnotif0
notif1oroutputparameterpmos
posedgeprimitivepull0pull1pulldown
pulluppulsestyle_oneventpulsestyle_ondetectrcmosreal
realtimeregreleaserepeatrnmos
rpmosrtranrtranif0rtranif1scalared
showcancelledsignedsmallspecifyspecparam
strong0strong1supply0supply1table
tasktimetrantranif0tranif1
tritri0tri1triandtrior
triregunsignedusevectoredwait
wandweak0weak1whilewire
worxnorxor

Установка постфикса для файлов пакета VHDL

По умолчанию кодер добавляет постфикс _pkg к базовому имени файла при генерации файла пакета VHDL. Чтобы переименовать постфикс для файлов пакета, выполните следующие действия:

  1. Выберите вкладку Global Settings в диалоговом окне Сгенерировать HDL.

  2. Выберите вкладку General на панели Additional settings .

  3. Задайте новое значение в поле Package postfix.

    Примечание

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

Альтернатива командной строки: используйте generatehdl функция со PackagePostfix свойство для переименования имени файла postfix для файлов пакета VHDL.

Задание префикса для коэффициентов фильтра

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

Для...Префикс конкатенирован с...
Конечная импульсная характеристика

Каждое число коэффициентов, начиная с 1.

Примеры: coeff1, coeff22

БИХ

Символ подчеркивания (_) и a или b имя коэффициента (для примера, _a2, _b1, или _b2), далее _section<reservedrangesplaceholder0 >, где n - номер раздела.

Пример: coeff_b1_section3 (первый коэффициент числителя третьего раздела)

Для примера:

ARCHITECTURE rtl OF filt IS
  -- Type Definitions
  TYPE delay_pipeline_type IS ARRAY(NATURAL range <>) OF signed(15 DOWNTO 0);-- sfix16_En15
  CONSTANT coeff1               : signed(15 DOWNTO 0) := to_signed(-30, 16); -- sfix16_En15
  CONSTANT coeff2               : signed(15 DOWNTO 0) := to_signed(-89, 16); -- sfix16_En15
  CONSTANT coeff3               : signed(15 DOWNTO 0) := to_signed(-81, 16); -- sfix16_En15
  CONSTANT coeff4               : signed(15 DOWNTO 0) := to_signed(120, 16); -- sfix16_En15

Как использовать префикс, отличный от coeff,

  1. Выберите вкладку Global Settings в диалоговом окне Сгенерировать HDL.

  2. Выберите вкладку General на панели Additional settings.

  3. Введите новый вектор символов в поле Coefficient prefix, как показано на следующем рисунке.

    Вектор символов, который вы задаете

    • Начнем с буквы.

    • Невозможно включить двойной символ подчеркивания (__).

    Примечание

    Если вы задаете зарезервированное слово VHDL или Verilog, кодер добавляет зарезервированное слово postfix к вектору символов, чтобы сформировать допустимый идентификатор. Если вы задаете префикс, который заканчивается подчеркиванием, кодер заменяет символ подчеркивания на under. Для примера, если вы задаете coef_кодер генерирует имена коэффициентов, такие как coefunder1.

Альтернатива командной строки: используйте generatehdl функция со свойством CoeffPrefix для изменения базового имени коэффициентов фильтра.

Определение постфикса для меток технологических блоков

Кодер генерирует блоки процессов для изменения содержимого регистров. Метка для каждого из этих блоков определяется из имени регистра и постфикса _process. Для примера кодер выводит метку delay_pipeline_process в следующем блоке из имени регистра delay_pipeline и постфикс '_process'.

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

Свойство Clocked process postfix позволяет вам изменить постфикс на значение, отличное от '_process'. Например, чтобы изменить постфикс на '_clkproc', выполните следующее:

  1. Выберите вкладку Global Settings в диалоговом окне Сгенерировать HDL.

  2. Выберите вкладку General на панели Additional settings.

  3. Введите новый вектор символов в поле Clocked process postfix, как показано на следующем рисунке.

Альтернатива командной строки: используйте generatehdl функция со свойством ClockProcessPostfix для изменения постфикса, добавленного к меткам обработки.

Настройка префикса для имен образцов компонентов

Instance prefix задает вектор символов, префиксируемый к именам образцов компонентов в сгенерированном коде. Значение по умолчанию является 'u_'.

Вы можете задать префикс на значение, отличное от 'u_'. Чтобы изменить префикс:

  1. Выберите вкладку Global Settings в диалоговом окне Сгенерировать HDL.

  2. Выберите вкладку General на панели Additional settings.

  3. Введите новый вектор символов в поле Instance prefix, как показано на следующем рисунке.

Альтернатива командной строки: используйте generatehdl функция со свойством InstancePrefix для изменения префикса образца.

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

Vector prefix задает вектор символов, который будет префиксирован к именам векторов в сгенерированном коде VHDL. Значение по умолчанию является 'vector_of_'.

Примечание

Vector prefix не поддерживается для генерации кода Verilog.

Вы можете задать префикс на значение, отличное от 'vector_of_'. Чтобы изменить префикс:

  1. Выберите вкладку Global Settings в диалоговом окне Сгенерировать HDL.

  2. Выберите вкладку General на панели Additional settings.

  3. Введите новый вектор символов в поле Vector prefix, как показано на следующем рисунке.

Альтернатива командной строки: используйте generatehdl функция со свойством VectorPrefix для изменения префикса образца.