FSM(Finite State Machine) 로직에서 삼항 연산자(ternary operator)의 중요성은 가독성과 간결함, 효율성을 제공하는 데 있습니다. 삼항 연산자는 특히 상태 변화나 출력 로직을 간결하게 표현할 수 있어 FSM 설계에서 자주 활용됩니다.
삼항 연산자(ternary operator)는 세 개의 피연산자를 가지는 연산자로, 주로 조건에 따라 다른 값을 선택할 때 사용됩니다. 조건식 ? 참일 때 값 : 거짓일 때 값 의 형태로 쓰이며, 조건이 참일 때는 첫 번째 값을 반환하고, 거짓일 때는 두 번째 값을 반환합니다. 삼항 연산자는 간단한 조건부 로직을 한 줄로 표현할 수 있어 코드의 간결함과 가독성을 높이는 데 유용합니다.
삼항 연산자의 구조
삼항 연산자는 다음과 같은 형태로 작성됩니다:
- verilog
조건식 ? 참일 때의 값 : 거짓일 때의 값;
Verilog에서의 삼항 연산자 예시
-verilog
assign result = (a > b) ? a : b;
위 코드에서 a가 b보다 클 경우 result는 a의 값을 가지게 되고, 그렇지 않으면 b의 값을 가집니다. 즉, 조건 a > b가 참이면 a가 선택되고, 거짓이면 b가 선택되는 것입니다.
주요 특징
- 간결성: if-else 구문으로 표현할 수 있는 조건부 논리를 한 줄로 간결하게 표현할 수 있습니다.
- if-else 버전:
- verilogif (a > b) beginresult = a;end else beginresult = b;end
- 삼항 연산자 사용:
- verilogassign result = (a > b) ? a : b;
- if-else 버전:
- 가독성: 간단한 조건일 경우 삼항 연산자를 사용하면 코드를 더 직관적이고 읽기 쉽게 만들 수 있습니다.
- 효율성: 짧은 논리를 처리할 때는 삼항 연산자가 더 효율적일 수 있으며, 이를 통해 리소스를 절약하고 하드웨어 회로 최적화에도 도움을 줄 수 있습니다.

위 그림 처럼 여러 state가 있는 경우에 case문을 활용한 삼항연산자가 if-else문을 활용한 것 보다 유용 할 수 있습니다.
- Verilog Code
'Verilog HDL > Basics' 카테고리의 다른 글
| 11. Digital 설계에서 Memory (1) | 2024.10.08 |
|---|---|
| 10. FSM(Finite State Machine) 응용 실습 (1) | 2024.10.08 |
| 09-3. FSM(Finite State Machine) Transition통합, 분리 (0) | 2024.10.07 |
| 09-2. FSM(Finite State Machine) Typiclal Design (0) | 2024.10.07 |
| 09-1 . FSM(Finite State Machine) Coding Style (0) | 2024.10.07 |