让我们说下面的代码:
always_ff @(posedge clk, negedge rst) begin
if (~rst) begin
bad_singal <= '0;
good_signal <= '0;
end else begin
// do something
// bad_signal is not used here or anywhere in design.
if (some condition)
good_signal <= 1'b1;
end
end
合成中的bad_signal会发生什么?由于合成工具在设计中的任何地方都没有使用,因此合成工具是否会优化失败?
答案 0 :(得分:4)
如果信号或寄存器没有驱动任何东西,那么是 - 任何合格的综合工具都会将其修剪掉,无论它是如何设置的。发生这种情况时,许多综合工具会报告警告。
答案 1 :(得分:1)
它应该在技术上推断出一个锁存器。
答案 2 :(得分:0)
如果不使用它将被优化掉。如果它在某个地方被使用,它将被绑在地上,因为它的值总是0
。