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