2017-03-08 1 views
-1

코드 다음 한의 난을 가정 해 봅시다 :신호가 always_ff의 리셋 로직 내부에서만 정의되는 경우 합성이 어떻게됩니까?

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

매우 합리적인 질문과 같은 소리가납니다 - 왜 그것을 downvoting? – rascob

답변

4

신호 또는 레지스터가 아무 것도 구동하지 않으면 예 - 유능한 합성 도구는 설정 방법에 관계없이 멀리 잘라냅니다. 많은 합성 도구가 이런 경우 경고를 표시합니다.

0

사용하지 않으면 최적화됩니다. 어딘가에서 사용된다면 그 값은 항상 0이기 때문에지면에 묶일 것입니다.

1

기술적으로 래치를 추론해야합니다.

+0

그러나 이것은 포기하는 것이 안전합니다. 그렇지 않니? – newbie

+0

@newbie 네, 그렇습니다. 그러한 시나리오에서는 사용하지 않는 것이 좋습니다. –

관련 문제