关于tb中force signal的问题
module_a module_a(
.a_in(b);
);
然后
force module_a.a_in = 0;
这样的话, b的值会不会也被force为0啊?
若a_in是输module_a的输入,b不会被force
是输出则会一同被force
打酱油。
我也这样觉得的,但是虽然a_in是input,我的simulation结果是b也同时被force了,觉得很奇怪
当然会了,因为你是force net,所以与之相连的线网都会被强制赋值的,不过该输入信号的输出源头不受影响
比如:
module xx_top();
wire b;
initial
force block1.in = 0;
block0 block0 (
.out(b), //output port
);
block1 block1 (
.in(b), //input port
);
endmodule
那么,结果就是:
xxx_top.b, xxx_top.block1.in被强制赋值为0;而xxx_top.block0.out仍然保持原值
sorry,我错了
仿真是对的,不管端口是输入还是输出,force的是一条net,b只是该net的另外一个名字。所以b也会被force
涨知识了
长知识了,多谢
谢谢回复啊,懂了!那如果是在同一个module里的应该也是会被force为0的对吧?
比如
module xx_top();
wire b;
initial
force block1.in_1 = 0;
block0 block0 (
.out(b), //output port
);
block1 block1 (
.in_1(b), //input port
.in_2(b),//input port
);
endmodule
那么,结果就是:
xxx_top.b, xxx_top.block1.in_1, xxx_top.block1.in_2被强制赋值为0;而xxx_top.block0.out仍然保持原值
对吧?
谢谢哦学
谢谢。
感谢小编分享
仿一下不就okl,
学习了!
对的,其实只要理解了force的含义及其作用域,就很容易了
楼上正解
感谢纠正对force的理解
长知识了
