之前日志中有提到这个话题。
因为目前除了ieee-1364中的不慎详细的描述,没有更好的资料,只能针对其提出问题,还是那句话,发现问题总比解决问题更重要些(个人以为)。
问题如下:
1.仿真器的time-slot(时间片)怎么划分?
1.1仿真器的时间零点?
1.2仿真器的时间终点?
1.3仿真器找到仿真的时间起点和终点之后,对应那些语法来切分时间片?
2。verilog的代码与region的一一对应关系?
3。仿真器如何调度?
3。1调度的基本单位是进程,进程对应于什么语法结构?
3。2时间片内,各个region的调度顺序?同一个region的调度单元和调度顺序?
猜想:
仿真器调度的单位为进程,对应的语法结构为assign,initial,always
进程之间并行执行
仿真器的$finish为仿真的结束终点,从零点到终点,依据#和@来进行划分时间片,仿真器扫描所有的进程,从时间0点开始算,从仿真时间最先遇到的#语句对应的时间点为第一个时间片的终点(后续时间片的起点),然后继续执行所有进程,其后遇到的#或@为第二个时间片的终点,后续依次类推;在每个时间片,所有的进程同步执行,每个时间片的每个进程执行两个事件,一个是求值,另一个是更新数值,前者先于后者。