购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3.17 多个线程在仿真调度中是如何在不同的域之间执行和切换的?

SystemVerilog的仿真在多数情况下是以时钟事件为驱动点的,也就是在时钟沿对时序逻辑进行赋值,时序逻辑继而会影响组合逻辑,并且接下来进一步扩散影响其他时序逻辑或组合逻辑。这种“病毒”式的扩散,需要在每一个事件点(时钟沿为多数情况、时间延迟为少数情况)的不同调度区域(Preponed、Active、Inactive、NBA、Observed、Reactive、Postponed)依次进出,多个线程之间会发生相互触发、反复进入某个调度区域的情况,直到“病毒”扩散稳定后,才会进入postponed区域,继而准备进入下一个时间片(time-slot)。

关键词:

time-slot 时间片,schedule 调度,region 区域

避坑指南:

对数据的采样都应该在Reactive、Postponed、Preponed区域,program和时钟块都可以做到这一点,从而保证数据采样的稳定。

阅读手记: ki/ROgR+n8gVIuys6MSmByWoLyidEiqXQg3xu4t7P8eD87Jj5CcI99yqUw5rje46

点击中间区域
呼出菜单
上一章
目录
下一章
×