VHDL Objects, Keywords, and Identifiers

VHDL Keywords

  • Reserved words for language constructs
  • Used to denote a function to the synthesis/compilation tool
  • E.g.: Signal, variable, function

VHDL identifiers

  • Nouns used to describe various constructs
  • Cannot be a keyword
  • Names given to signals, variables, function, procedure, and constants
  • E.g.: a,b,total,my_buffer
  • Designers usually prefer – C_style_identifier

Rules to follow when writing an identifier

  • Identifier must start with a letter
  • May contain letters, numbers, and underscores
  • NO contiguous underscores are allowed
  • Underscore may not end an identifier
  • Length of an identifier is specified by the provider of the synthesis / compilation tool
  • Infinite length is supported by the VHDL standard

Note VHDL language internally converts all character to UPPER CASE


  • Similar to expressions of most high-level languages
  • Comprises operators and operands
  • Data objects (operands) and their values are used by operators
Y <= A + (B-C); -- operands A,B,C / operator + , -
M <= Y; -- expression with single identifier
sig_hold <= func_or(a,b);


  • Constant valued operand
A <= '1'; -- a is single bit literal
y <= "100001";
CH <= 'A';
INT <= 35;
State <= IDLE;

Data Objects in VHDL

  • Hold a value of a data type
  • Used to pass values from one point to another
  • Each one can be assigned to collection of inite values
  • Constant:
    • Hold only one specific value of a specific data type fo a given instance and the value cannot be changed once declared
    • Use of constants improves readability of VHDL code nad reduces the likelihood of making errors
  • Variables:
    • Hold any value of a specific data type
    • Used for storing temporary values inside a process/function
    • Value can be updated using a variable assignemtn statement
    • Varaible is declared within a block, process, procedure, or fucntion, and isupdated immediately when an assignemnt statement is execuited
  • Signals:
    • Hold a list of current and future values to be assigned that are to appear on the signal
    • Each signal has one or more “drivers” determining the value and timing of changes to the signal
    • Each driver is a queue of events indicating when and to what value a signal is to be changed
    • Each signal ssingment results in the cooresponding event queue being modfied to schedule a new event
  • Files:
    • Refer to asystem file containing a vlaue of a specified data type
    • Fiel object proviedes sequential access to system files

Leave a Reply