考虑:过程(a)根据我的文字:
在模拟时首先进入一个进程,此时它会被执行,直到它由于等待语句或敏感度列表而暂停自身。
我是否正确地推断即使敏感列表上没有任何事件,进程也必须运行一次?另外,如果一个架构中有多个进程,它们是否都执行一次呢?
AFAIK,敏感度列表(例如, )只是程序之前的process (x,y)
简写(第 152 页,“VHDL 设计师指南”第 3 版)。所以所有程序都将至少运行一次。wait on x,y;
end process
运行 VHDL 仿真涉及 3 个阶段。这些是精化、初始化和模拟。
在初始化阶段开始时,当前时间设置为 0。然后模拟内核将所有模拟进程放入活动进程队列中。然后从这个队列中取出每个模拟过程并执行,直到它挂起。初始化期间模拟过程的执行顺序并不重要。每个模拟过程的初始执行确保所有初始事务都安排好,以便模拟可以继续。
模拟过程被隐式或显式暂停。具有敏感性列表的进程在其顺序语句执行到进程结束后隐式挂起。具有一个或多个等待语句的进程在执行其第一个等待语句时显式挂起。
当活动进程队列为空时,初始化阶段完成。
因此,为了回答您的问题,所有进程将在初始化阶段运行一次。