我一直在阅读UVM:驱动程序和程序分配警告的非法组合以及附在答案中的纸张。(请考虑提到的问题中链接的论文)
然而,驱动程序被实现来驱动接口信号而不是时钟块信号上的复位值,不能保证时钟在复位时运行。
那么,如果接口信号被声明为线,我该如何处理这种情况。
例如,考虑链接问题中的代码。一般情况是
@(vif.cb);
vif.cb.opcode <= value;
即使在接口中将操作码声明为 net 也是正确的,因为时钟块将负责正确的分配。然而我不能说
@(vif.rst);
vif.cb.opcode <= init_value;
因为我不能保证时钟复位。为了适应这一点,我将不得不改变时钟生成策略。
我也不能说
vif.opcode <= init_value;
导致其非法使用带有网络类型信号的程序分配
另一种方法是门控信号声明为 net with reset 但我认为我必须在接口中声明临时信号。谁能详细说明如何在重置时实现驱动网?