|
VHDL 进程语旬
在 VHDL 中 , 进程语句是使用最为频繁、应用最为广泛的一种语句 , 因此掌握进程语句对于编写 VHDL 程序来说十分重要。一般来说 , 一个结构体可以包含一个或者多个进程语句 : 结构体的各个进程语句之间是一组并发行为 , 即各个进程语句是并行执行的 ; 但在每一个进程语句中 , 组成进程的各个语句则是顺序执行的。可见 , 进程语句同时具有并行描述语句和顺序描述语句的特点 :
在 VHDL 中 , 进程语句的语法结构如下所示 : [ 标号 :] PROCESS [ 敏感信号表 ] [IS]
[ 说明部分 ] ;
BEGIN
< 顺序描述语句 >;
END PROCESS [ 标号 ];
其中 , 标号是进程语句的标识符 , 它是一个可选项 ; 敏感信号表用于列出进程对其敏感 的信号 ; 进程语句说明部分用于说明进程内部使用的数据类型、子程序和变量等 ; 顺序描述语句用于描述一个数字电子硬件电路的工作过程 , 而且是可以反复执行的。
1. 进程语句的启动
由于进程语句的启动与敏感信号激励是密切相关的 , 因此这里首先讨论一下敏感信号的概念。在 VHDL 中 , 敏感信号激励是指能够引起进程语句启动的一种触发方式。一般来说 . VHDL 提供的敏感信号激励包括两种形式 : 一种是敏感信号表的形式 , 另一种是采 WAIT 语句的形式。
顾名思义 , 敏感信号表是指用来存放敏感信号的列表 , 它列出了进程语句对其敏感的所 有信号。一般来说 , 敏感信号表中可以是一个或者多个敏感信号 , 只要其中的一个或者多个
敏惑信号发生变化时 , 进程语句将会启动 , 从而引起进程内部顺序语句的执行。
对于一个进程语句来说 , 它只具有两种工作状态 : 等待状态和执行状态。 进程语句的工作状态主要取决于敏感信号激励 : 当敏感信号激励中的信号没有任何变化或者表达式不满足时 , 进程处于等待状态 ; 当敏感信号激励中的任意一个信号 发生 变化 并且 表达式满足时 , 进程将会启动进入到工作状态。
进程启动以后 , BEGIN 和 END PROCESS 间的语句将从上到下顺序执行一次 , 当最后 一个语 句执行完后 , 程序就返回进程语句的开始 , 然后等待下一次敏感信号表中的信号变化 或者 WAIT 语句中表达式的满足。可见 , 一个进程可以被看成一个 无 限循环 : 在仿真周期 , 当进程的最后一个语句执行完后 , 程序返回到进程的第 1 个语句 , 然后等待敏感信号激励再一次发生 。
|