FSM(Finite State Machine)을 합성할 때 Quartus® II 소프트웨어 분석 및 합성 중에 이 경고가 표시될 수 있습니다. 이는 Quartus II 소프트웨어 버전 6.0 SP1에 의해 표시되는 잘못된 경고입니다. Quartus II 소프트웨어 버전 6.1부터 잘못된 경고 메시지가 표시되지 않습니다.
이 경고는 유추된 FSM에 대한 상태 변수를 출력 포트에 할당할 때 발생합니다. 다음 예제 arbiter_state
에서 는 size [1:0]
의 출력이고 mystate
할당된 값이며 4가지 가능한 옵션의 case 문에 사용됩니다.
assign arbiter_state = mystate;
case (mystate)
...Branch 1...
...Branch 2...
...Branch 3...
...Branch 4...endcase
Quartus II 분석 및 합성은 FSM을 유추할 때 원-핫 인코딩을 사용하여 상태 변수를 인코딩합니다. 이 경우 mystate는 4개의 상태를 가지므로 4비트를 갖습니다. 이 예제에서는 라는 신호arbiter_state
에 할당하면 소프트웨어가 할당 mystate
을 구현하기 전에 상태 변수를 mystate
인코딩합니다. 그러나 소프트웨어는 값을 인코딩한 후가 아니라 인코딩하기 전에 비트 잘림을 확인합니다. 따라서 소프트웨어는 할당의 오른쪽을 2비트가 아닌 4비트로 해석하고 경고 메시지를 발행합니다. 잘림 경고는 디자인 기능에 영향을 주지 않습니다.
Quartus II 소프트웨어 버전 6.0 이하에서 경고 메시지를 제거하기 위해 대상 출력 신호의 크기(arbiter_state
위의 예에서)를 4비트로 변경하고 가장 부호가 적은 하위 2비트만 사용할 수 있습니다.