首页 理论教育 并行信号赋值语句的实现方法

并行信号赋值语句的实现方法

时间:2023-06-29 理论教育 版权反馈
【摘要】:例4.27该例所示结构体中的五条信号赋值语句是并行执行的。在执行条件信号赋值语句时,每一赋值条件是按书写的先后关系逐项测定的,一旦发现赋值条件为TRUE,立即将表达式的值赋给赋值目标。为了防止信号赋值语句的每个子句是以“,”号结束的,只有最后一个子句才是以“;”号结束。

并行信号赋值语句的实现方法

并行信号赋值语句有3种:简单信号赋值语句、条件信号赋值语句和选择信号赋值语句。这3种信号赋值语句的共同的特点是赋值目标必须都是信号。所以,赋值语句与其他并行语句一样,在结构体内的执行是同时发生的,与它们的书写顺序和是否在块语句中没有关系。每一个信号赋值语句都相当于一条缩写的进程语句,而这条语句的所有输入(或读入)信号都被隐性地列入此过程的敏感信号表中。因此,任何信号的变化都将启动相关并行语句的赋值操作,而这种启动完全地独立于其他语句,它们都可以直接出现在结构体中。

1.简单信号赋值语句

并行简单信号赋值语句是VHDL并行语句结构的最基本的单元,它的语句格式如下:

信号赋值目标<=表达式;

式中,信号赋值目标的数据类型必须与赋值符号右边表达式的数据类型一致。

例4.27

该例所示结构体中的五条信号赋值语句是并行执行的。

2.条件信号赋值语句

条件信号赋值语句的表达方式如下:(www.xing528.com)

在结构体中的条件信号赋值语句的功能与在进程中的IF语句相同(注意,条件信号赋值语句中的ELSE不可省)。在执行条件信号赋值语句时,每一赋值条件是按书写的先后关系逐项测定的,一旦发现赋值条件为TRUE,立即将表达式的值赋给赋值目标。

例4.28

3.选择信号赋值语句

选择信号赋值语句格式如下:

选择信号赋值语句本身不能在进程中应用,但其功能却与进程中的CASE语句的功能相似。CASE语句的执行依赖于进程中敏感信号的改变而启动进程,而且要求CASE语句中各子句的条件不能有重叠,必须包容所有的条件。

选择信号赋值语句也有敏感量,即关键词WITH旁的选择表达式。每当选择表达式的值发生变化时,就将启动此语句对于各子句的选择值进行测试对比,当发现有满足条件的子句的选择值时,就将此子句表达式中的值赋给赋值目标信号。与CASE语句相类似,选择赋值语句对于子句条件选择值的测试具有同期性,不像以上的条件信号赋值语句那样是按照子句的书写顺序从上至下逐条测试的。因此,选择赋值语句不允许有条件重叠的现象,也不允许存在条件涵盖不全情况。为了防止信号赋值语句的每个子句是以“,”号结束的,只有最后一个子句才是以“;”号结束。例如,用选择信号赋值语句描述4选1数据选择器的VHDL源代码见例4.29。

例4.29

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈