这个过程的关键在于如何提取状态转换函数和输出函数。需要解决的问题包括:
  (1) 消除数据相关性:在进程语句中,赋值语句是顺序执行的,赋值语句的源表达式或条件语句中的条件可能依赖于前面的赋值(称为数据相关性)。但在目标模型中,状态转换和输出函数是同步发生的,是无关的。因此,必须消除这种赋值的相关性。
  (2) 一个进程语句中可能有几个wait语句。为了获得每个变量的赋值函数,必须将这些wait语句合并为一个wait语句。
  (3) 确定真正的状态变量:记录与同步时钟有联系的信号或变量,将对象(信号或变量)赋值表达式标记为两类:与时钟相关和与时钟无关。这一信息将在模型化简时使用。
  首先,为每一 VHDL 进程语句或并发语句提取子模型,这些语句都是在一定的声明环境中。步骤如下:
  (1) 确定子模型的输入和输出变量。
  (2) 分析每一 wait 语句和被赋值的对象。标记每一信号或变量是否受系统时钟控制。
  (3) 解决数据依赖性。
  (4) 根据执行树,为每一赋值对象建立赋值决策图。

  下面给出了一个VHDL进程语句的例子,其中F,N,M是布尔信号。在随后的各小节中我们将结合这个例子来说明从VHDL的进程语句建立子模型的过程。
  P: process
    variable V : NATURAL := 0;
  begin
     if N then
      if (V < 8) then
        V := V + 1;
      end if;
     else
      V := V - 1;
      wait until (not M);
     end if;
     F <= (V = 8);
     wait until (N or M)
  end process;