进程语句中的(并发)信号分配是顺序的还是并发的? [英] Is the (concurrent) signal assignment within a process statement sequential or concurrent?

查看:16
本文介绍了进程语句中的(并发)信号分配是顺序的还是并发的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

据我所知,PROCESS 中的所有语句都是按顺序执行的.那么并发信号分配(<=)会发生什么?它的工作方式是否与顺序赋值 (:=) 相同,还是在 delta 延迟后执行?

From what I understand, all statements inside a PROCESS is executed sequentially. So what happens to a concurrent signal assignment(<=)? Does it work the same way as sequential assignment (:=) or does it execute after a delta delay?

如果它在一个delta延迟后执行,那么PROCESS里面的所有语句如何被称为顺序的?

If it executes after a delta delay, then how can all the statements inside PROCESS be called sequential?

如果立即执行,那么进程中的:=和<=有什么区别吗?

If it executes immediately, then is there any difference between := and <= in a process?

推荐答案

信号赋值 (<=) 在进程中的所有顺序代码执行完毕后执行.这是该时间步的所有活动进程完成的时间.

The signal assignment (<=) is performed after all the sequential code in the processes are done executing. This is when all the active processes for that timestep are done.

举个例子:

假设您有一个触发 2 个进程的事件.这2个过程使用相同的信号,但其中一个改变了该信号的值信号.模拟器只能执行一个进程由于顺序仿真模型(不要与vhdl 的并发模型).因此,如果首先模拟过程 A 并且 A改变信号,B 会有错误的信号值.因此信号只有在所有触发的过程都完成后才能改变.

Suppose you have an event that triggers 2 processes. These 2 processes use the same signal, but one of them changes the value of that signal. The simulator is only be able to perform one process at the time due to a sequential simulation model (not to confuse with the concurrent model of vhdl). So if process A is simulated first and A changes the signal, B would have the wrong signal value. Therefore the signal can only be changed after all the triggered processes are done.

变量赋值 (:=) 立即执行并可用于例如在进程中临时存储一些数据.

The variable assignment (:=) executes immidiatly and can be used to e.g. temporarely store some data inside a process.

这篇关于进程语句中的(并发)信号分配是顺序的还是并发的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆