微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于tb中force signal的问题?

关于tb中force signal的问题?

时间:10-02 整理:3721RD 点击:
假如在tb中有如下instantiation,wire b;
module_a module_a(
.a_in(b);
);
然后
force module_a.a_in = 0;
这样的话, b的值会不会也被force为0啊?

若a_in是输module_a的输入,b不会被force
是输出则会一同被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仍然保持原值

谢谢回复啊,懂了!那如果是在同一个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仍然保持原值
对吧?

其实只要理解了force的含义及其作用域,就很容易了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top