例:
    Architecture A of E is
      signal S: Bit := '0';
      signal Out1: Bit := '0';
    begin
     process (S)
       variable v: Integer := 0; --变量的初值只在启动时执行一次。
     begin
       v := v +1; --执行完变量赋值语句后,变量值立即改变。
       if v = 10 --这时上面的语句已经得到新值,故按新值判断。
       then
         Out1 <= '1'; -- 计数为10时,输出信号为1。
         v := 0;
       end if;
     end process;

     process(S)
     begin
       S <= not S after 500 ps;
     end process;
    end
A;

  应当注意的是:变量赋值与信号赋值有所不同,变量赋值无时间延迟,执行了变量赋值语句之后,变量便获得新值。这就意味着在紧接着变量赋值语句之后的顺序语句中可以看到该变量的新值。

  变量赋值语句说明:
  ·无延迟特性,直接赋值
  ·一般情况下不允许有全程变量, 变量只能在进程内部定义。
  ·进程挂起时,变量值保持不变。(仅在第一次执行进程时初始化)