next up previous contents
Next: Component Instantiation Statements Up: Processes Previous: process Class Instantiation

process Execution

To resume a process the kernel executes the execute() function of the corresponding process instance. In the head of this function a switch statement dispatches execution based on the value of jmp. Each time the function suspends its execution via a return statement the number of the program label where the function should resume next time is stored into the variable jmp.

Example:

proc: PROCESS
BEGIN
   WAIT 0 ns;  -- wait for one delta cycle
   ...         -- some VHDL statements
   WAIT 0 ns;  -- wait for one delta cycle
   ...         -- some VHDL statements
END PROCESS;
This process is translated into the following execute() method:
bool L3lib_E8myentity_A4arch_P4proc::execute() {
   switch (jmp) {
      case 1: goto lab1;
      case 2: goto lab2;
      case 3: goto lab3;
   }
  lab1:
   jmp = 2;
   return true;
  lab2:
   ...
   jmp = 3;
   return true;
  lab3:
   ...
  goto lab1;
}
Note, the return value of execute() is of no significance here. It is only used if the process is sensitive on a conditional expression (see Section 10.1).




1998-11-17