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
Expression
- 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);
Literal
- Constant valued operand
A <= '1'; -- a is single bit literal y <= "100001"; CH <= 'A'; STR <= "VHDL CLASS"; 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