VHDL - process()第一次运行的时间是什么时候?

时间:2009-11-30 15:39:30

标签: process modeling vhdl

考虑:过程(a) 根据我的文字:

  

此时首先输入流程   模拟,在那个时候   执行直到它自行暂停   等待陈述或敏感度   名单。

我是否正确地推断即使在敏感度列表上没有任何事件,进程也必须运行一次?另外,如果架构中有多个进程,它们都会执行一次吗?

2 个答案:

答案 0 :(得分:4)

AFAIK,敏感度列表(例如,process (x,y))只是程序wait on x,y;之前end process的简写(第152页,“VHDL设计指南”第3版)版)。因此,所有程序至少运行一次。

答案 1 :(得分:3)

运行VHDL模拟涉及3个阶段。这些是精心设计,初始化和模拟。

在初始化阶段开始时,当前时间设置为0.然后,仿真内核将所有仿真进程置于活动进程队列中。然后从该队列中获取每个模拟过程并执行直到它暂停。初始化期间执行模拟过程的顺序并不重要。每个模拟过程的初始执行可确保安排所有初始事务,以便模拟可以继续。

模拟过程暂停或明确。具有敏感性列表的进程在其顺序语句执行到进程结束后暂停。执行第一个等待语句时,将显式挂起具有一个或多个等待语句的进程。

当活动进程队列为空时,初始化阶段就完成了。

因此,为了回答您的问题,所有流程将在初始化阶段运行一次。