verilog两个always 用第一个always的输出当成第二个always的敏感信号,为什么第二个always会不运行?

2024-11-05 14:48:34
推荐回答(2个)
回答1:

你好,首先我们用verilog写出来的是电路,不是程序。其次always关键字构造两种电路,一种是时序电路,它需要一个时钟标志就是always @(posedge ,然后在这个时钟的上升或者下降沿来触发寄存器输出结果。你的第一个always就是这样的电路。always还有一种是组合逻辑电路,它不需要时钟,它利用always后面的敏感信号列表来输出结果。在这种电路中,当输入的敏感列表信号有变化,输出就会跟着变化。你的第二个always就是这种电路,但是你第二个电路的输出跟敏感列表中的miao没有关系,所以miao的变化不会影响x和fen。

回答2:

在第二个always语句块里,miao没有作为任何信号的输入,因此,即使miao变化了,也不会对其他信号产生任何影响。如果不相信,可以将miao信号引入到always块里,作为某个信号的输入看看仿真结果。