• VHDL code is inherently concurrent.
• Sections of code that are executed sequentially are :
– PROCESS
– FUNCTION
– PROCEDURE
• One important aspect of sequential code is that it is not limited to sequential logic.
• We can build sequential circuits as well as combinational circuits.
• Sequential code is also called behavioral code.
• Thus a PROCESS is a concurrent statement which describes behavior.
• Sequential statements are allowed only inside PROCESSES, FUNCTIONS, or PROCEDURES.
• Sequential statements are:
– IF
– WAIT
– CASE
– LOOP
• VARIABLES are also restricted to be used in sequential code only.
NOTE: VARIABLE can never be global, so its value can not be passed out directly.
SIGNALS and VARIABLES
• VHDL has two ways of passing non-static values around: by means of a SIGNAL or by means of a VARIABLE.
• A SIGNAL can be declared in a PACKAGE, ENTITY or ARCHITECTURE (in its declarative part), while a VARIABLE can only be declared inside a piece of sequential code.
• SIGNAL is global while VARIABLE is local.
• The value of a VARIABLE can never be passed out of the PROCESS directly; if necessary, then it must be assigned to a SIGNAL.
• Update of VARIABLE is immediate whereas new value for SIGNAL is generally only guaranteed to be available after the conclusion of the present run of the PROCESS.
• Assignment operator for SIGNAL is “<= “ while that for VARIABLE is “ : =
information shared by www.irvs.info