module Test( input i );
(* MARK_DEBUG = "TRUE" *) reg b;
always @(i)
begin
if(i)
b = 1'h0;
else
b = ~b;
end
endmodule在合成此代码之后,在使用ModelSim模拟器进行后合成-仿真过程中,我得到以下结果:
**错误(可抑制):(vsim-3601)迭代极限为10000000,时间为20 ns。
但我对行为模拟阶段没有问题。
似乎Vivado会自动将"b“信号添加到敏感度列表中,不是吗?
发布于 2016-12-27 21:50:32
考虑一下这个模块所暗示的硬件。
b不能作为寄存器或锁存来实现,因为它是从组合always块分配给的。但是,生成的电路包含一个组合回路,当i为0时,它不会稳定在任何值上:

发布于 2017-07-31 15:09:20
是的,Xilinx的合成引擎( ISE,Vivado中的XST)自动将缺失的信号添加到灵敏度列表中。没有出现错误,但默认情况下会发出警告。
警告: Synth 8-614信号'my_signal‘在此过程中读取,但不在敏感列表中。
https://stackoverflow.com/questions/41352007
复制相似问题