FPGA Center



PROCESS

Process is a statement where the independent sequential processes are defined in.

process_label: process ( sensitivity_list )
    process_declarations
        begin
           --- sequential statements
        end process process_label ;

NOTE: The sequential order in the process is from up to down. So the value of an object in the process is the last defined value.

EXAMPLE 1

Process(A,B;C)
    begin
        temp<=1;
        temp<=2;
        temp<=5;
end process;

Since the latest assignment to the Temp variable is 5, the values of it remains 5 when the process ends.

EXAMPLE 2

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity D_FLIP_FLOP is
      port (CLK : in STD_LOGIC;
           D:in STD_LOGIC;
          Q : out STD_LOGIC:= '0';
         NQ : out STD_LOGIC:= '1' );
end entity D_FLIP_FLOP;
architecture Behavioral of D_FLIP_FLOP is
     begin
        U1: process (CLK)
                  begin
              if CLK = '1' and CLK'Event then
                   Q <= D;
                 NQ <= not D;
            end if;
     end process;
end architecture Behavioral;

In the example, a D-flip flop that has two inputs and two outputs is defined. As soon as CLK signal changes from '0 'to '1', the D signal is transferred to the Q output. U1 process becomes active when the change of CLK in the sensitivity list..

Any change on the CLK is controlled with "if" expression. "Event" attribute is used for this control. The second line is processed as soon as the conditional statement on the first line becomes TRUE.

 

DETAILED EXPLANATION

Sequence of operations in the process determined by the user. A label can be assigned to the process if desired.

Only local components that will be used in current process are declared in te process declaration part. Any decarations such as subprogram, type, subtype, constant, variable, file, alias, attribute, use and group can be located in this part as well.

Defining a sensitivity list is not mandatory while declaring a process. You can define the signals which the process is sensitive. So the suspended process becomes active as soon as any sensitivity signal changes.

Using "wait" expression at the end of the process is similar to using sensitivity list. But sensitivty list and wait expression can not be used both in the same process.

If a procedure is called in a process which has a sensitivity list, that procedure can not include any sensitivity list.

 

 

 

                                                                                                           

    

                                                                                                                                    

 

                                                                                                                                                                                                                                                                   

Home | Fpga | VHDL | VHDL Dictionary | Digital Design | Simulation | PCB | Examples | Contact Us
Copyright © 2010 - 2013 FPGAcenter. All Rights Reserved.