【发布时间】:2015-01-03 19:48:43
【问题描述】:
我一直在阅读UVM: illegal combination of driver and procedural assignment warning 并附上答案。 (请考虑上述问题中链接的论文)
但是,驱动程序被实现来驱动接口信号而不是时钟块信号上的复位值,但不能保证时钟在复位时运行。
如果接口信号被声明为线,我该如何处理这种情况。
例如 考虑链接问题中的代码。一般情况是
@(vif.cb);
vif.cb.opcode <= value;
即使在接口中将操作码声明为 net 也是正确的,因为时钟块将负责正确分配。但是我不能说
@(vif.rst);
vif.cb.opcode <= init_value;
因为我不能保证时钟复位。为了适应这一点,我将不得不改变时钟生成策略。
我也说不准
vif.opcode <= init_value;
使用带有网络类型信号的程序赋值是非法的
另一种方法是用复位门控信号声明为 net,但我认为为此我必须在接口中声明临时信号。谁能详细说明如何在重置时实现驱动网?
【问题讨论】:
-
恐怕你必须在这里更具体一些。显示导致您出现问题的代码。
-
我希望现在问题能正确阐述,让我知道是否应该添加更多细节,谢谢
标签: system-verilog uvm