在我的验证环境中,很少有序列在同一个驱动程序上同时运行(与其他序列的项目相关的项目何时获得总线无关)。
但是,现在我需要添加额外的序列,它将与其他序列同时运行,执行原子读取-修改-写入。我的新序列看起来像这样:
// Atomic READ-MODIFY-WRITE
body() @driver.clock is only {
do read_item keeping {
.cmd == RD;
.addr == addr;
};
// Wait random time;
do write_item keeping {
.cmd == WR;
.addr == addr;
.data == data;
};
};
问题是在read_item
和之间write_item
,来自其他序列的项目得到总线。您知道如何从序列中锁定驱动程序的项目队列吗?所以我可以防止其他序列在我的读写项目之间添加他们的项目?
谢谢您的帮助