Documentation

HDL Identifiers and Comments

Specifying a Header Comment

The coder includes a header comment block at the top of the files it generates. The header comment block contains information about the specifications of the generating filter and about the coder options that were selected at the time HDL code was generated.

You can use the Comment in header option to add a comment string, to the end of the header comment block in each generated file. For example, you might use this option to add the commentThis module was automatically generated. With this change, the preceding header comment block would appear as follows:

-- -------------------------------------------------------------
--
-- 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
-- -------------------------------------------------------------

To add a header comment,

  1. Select the Global Settings tab on the Generate HDL dialog box.

  2. Select the General tab in the Additional settings pane.

  3. Type the comment string in the Comment in header field, as shown in the following figure.

Command Line Alternative: Use the generatehdl function with the property UserComment to add a comment string to the end of the header comment block in each generated HDL file.

Resolving Entity or Module Name Conflicts

The coder checks whether multiple entities in VHDL or multiple modules in Verilog share the same name. If a name conflict exists, the coder appends the postfix _block to the second of the two matching strings.

To change the postfix string:

  1. Select the Global Settings tab on the Generate HDL dialog box.

  2. Select the General tab in the Additional settings pane.

  3. Enter a new string in the Entity conflict postfix field, as shown in the following figure.

Command Line Alternative: Use the generatehdl function with the property EntityConflictPostfix to change the entity or module conflict postfix string.

Resolving HDL Reserved Word Conflicts

The coder checks whether strings that you specify as names, postfix values, or labels are VHDL or Verilog reserved words. See Reserved Word Tables for listings of VHDL and Verilog reserved words.

If you specify a reserved word, the coder appends the postfix _rsvd to the string. For example, if you try to name your filter mod, for VHDL code, the coder adds the postfix _rsvd to form the name mod_rsvd.

To change the postfix string:

  1. Select the Global Settings tab on the Generate HDL dialog box.

  2. Select the General tab in the Additional settings pane.

  3. Enter a new string in the Reserved word postfix field, as shown in the following figure.

Command Line Alternative: Use the generatehdl function with the property ReservedWordPostfix to change the reserved word postfix string.

Reserved Word Tables

The following tables list VHDL and Verilog reserved words.

VHDL Reserved Words

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

Verilog Reserved Words

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  

Setting the Postfix String for VHDL Package Files

By default, the coder appends the postfix _pkg to the base file name when generating a VHDL package file. To rename the postfix string for package files, do the following:

  1. Select the Global Settings tab on the Generate HDL dialog box.

  2. Select the General tab in the Additional settings pane.

  3. Specify a new value in the Package postfix field.

      Note:   When specifying a string for use as a postfix in file names, consider the size of the base name and platform-specific file naming requirements and restrictions.

Command Line Alternative: Use the generatehdl function with the PackagePostfix property to rename the file name postfix for VHDL package files.

Specifying a Prefix for Filter Coefficients

The coder declares a filter's coefficients as constants within an rtl architecture. The coder derives the constant names adding the prefix coeff to the following:

For...The Prefix Is Concatenated with...
FIR filters

Each coefficient number, starting with 1.

Examples: coeff1, coeff22

IIR filters

An underscore (_) and an a or b coefficient name (for example, _a2, _b1, or _b2) followed by the string _sectionn, where n is the section number.

Example: coeff_b1_section3 (first numerator coefficient of the third section)

For example:

ARCHITECTURE rtl OF Hd 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

To use a prefix other than coeff,

  1. Select the Global Settings tab on the Generate HDL dialog box.

  2. Select the General tab in the Additional settings pane.

  3. Enter a new string in the Coefficient prefix field, as shown in the following figure.

    The string that you specify

    • Must start with a letter

    • Cannot include a double underscore (__)

      Note:   If you specify a VHDL or Verilog reserved word, the coder appends a reserved word postfix to the string to form a valid identifier. If you specify a prefix that ends with an underscore, the coder replaces the underscore character with under. For example, if you specify coef_, the coder generates coefficient names such as coefunder1.

Command Line Alternative: Use the generatehdl function with the property CoeffPrefix to change the base name for filter coefficients.

Specifying a Postfix String for Process Block Labels

The coder generates process blocks to modify the content of a filter's registers. The label for each of these blocks is derived from a register name and the postfix _process. For example, the coder derives the label delay_pipeline_process in the following block from the register name delay_pipeline and the postfix string _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;

The Clocked process postfix property lets you change the postfix string to a value other than _process. For example, to change the postfix string to _clkproc, do the following:

  1. Select the Global Settings tab on the Generate HDL dialog box.

  2. Select the General tab in the Additional settings pane.

  3. Enter a new string in the Clocked process postfix field, as shown in the following figure.

Command Line Alternative: Use the generatehdl function with the property ClockProcessPostfix to change the postfix string appended to process labels.

Setting a Prefix for Component Instance Names

Instance prefix specifies a string to be prefixed to component instance names in generated code. The default string is u_.

You can of set the postfix string to a value other than u_. To change the string:

  1. Select the Global Settings tab on the Generate HDL dialog box.

  2. Select the General tab in the Additional settings pane.

  3. Enter a new string in the Instance prefix field, as shown in the following figure.

Command Line Alternative: Use the generatehdl function with the property InstancePrefix to change the instance prefix string.

Setting a Prefix for Vector Names

Vector prefix specifies a string to be prefixed to vector names in generated VHDL code. The default string is vector_of_.

    Note:   VectorPrefix is supported only for VHDL code generation.

You can set the prefix string to a value other than vector_of_. To change the string:

  1. Select the Global Settings tab on the Generate HDL dialog box.

  2. Select the General tab in the Additional settings pane.

  3. Enter a new string in the Vector prefix field, as shown in the following figure.

Command Line Alternative: Use the generatehdl function with the property VectorPrefix to change the instance prefix string.

Was this topic helpful?