【发布时间】:2016-06-12 12:57:43
【问题描述】:
我有一个模块层次结构,我试图在其中执行force 以在不同的模块接口处获得不同的值。我正在研究一个组件,其任务是将事务注入层次结构中的模块,绕过层次结构中更高模块的驱动器。我想我可以在控制信号上使用force,以便从更高的模块脱离驱动器并开始驱动到感兴趣的模块。所以我一直在尝试看看力量是如何起作用的。完整代码位于http://www.edaplayground.com/x/69PB。
特别是,我试图了解这两个语句在initial 块中的效果:
force u_DataReceiveTop.u_DataReceiveWrap.DataReceiveIfWrp_inst.valid = 1'b0;
force u_DataReceiveTop.valid = 1'b1;
我期望的值是:
u_DataReceiveTop.u_DataReceiveWrap.DataReceiveIfWrp_inst.valid == 0
u_DataReceiveTop.valid == 1
但我从波浪中看到:
u_DataReceiveTop.u_DataReceiveWrap.DataReceiveIfWrp_inst.valid == 1
u_DataReceiveTop.valid == 1
就好像第二个力语句force u_DataReceiveTop.valid = 1'b1; 已经向下传播,即使还有另一个力。这里发生了什么?
【问题讨论】: