3.2 逻辑模拟算法

3.2.2 事件驱动模拟算法

 3. 模拟过程
 当一个新的模拟时刻开始后,首先把当前事项处理表中记录的各信号值接收到各信号节点,如果新的值与原来的值相同,表示该信号的值没有变化,实际上不是一个真正的事件,则把该事项处理删除,不再对它进行处理。如果新值与老值不同,则新值构成一个事件,则需要把新值记录在该信号节点的波形表中,同时查找该节点的负载元件,安排这些元件的计算。需要计算的元件称为活跃元件。由于可能有多个信号驱动同一个元件计算,为了避免重复计算,把需要计算的元件放在一个集合中,称为活跃元件集合。待到所有的信号都处理完毕之后,再集中对所有活跃元件进行计算。计算之后又产生新的事项处理,再放到事项处理表中。对每个时刻都重复这个过程,形成模拟周期(Simulation Cycle)。