Module을 설계한 후, Synthesis를 거치기 전 LATCH가 발생하지 않았는지 RTL ANALYSIS를 이용해 종종 체크하곤 했다. RTL ANALYSIS에서 확인할 수 있는 Schmatic과 Synthesis 이후의 Schematic의 차이가 왜 발생했는지 궁금했는데, 찾다보니 FPGA 설계 과정에 대한 이해가 더 깊어질 수 있었다.
1. Elaborated Design (RTL Analysis)
- 설계자의 RTL 코드를 확인하고 시각화한다.
- 논리 합성(Synthesis)이나 최적화가 적용되지 않은 상태이다.
- 하드웨어 구현에 적합한 최적화를 적용하지 않으므로 추상화 수준이 높다.
2. Synthesized Design (Synthesis)
- RTL 코드를 실제 하드웨어에 배치 가능하도록 변환하여 게이트 수준 표현(Gate-Level Netlist)으로 생성한다.
- 논리 합성(Synthesis) 단계에서 RTL 코드가 하드웨어 자원으로 변환된다.
- 최적화와 제약 조건에 따라 설계가 수정된다. (예: 타이밍, 전력 소비, 면적 최적화 등)
- 추상화 수준이 낮으며, 하드웨어에 더 가깝다.
- 타겟 FPGA 디바이스가 갖고 있는 LUT, DSP, 플립플롭 등으로 변환된다.
RTL Analysis | Synthesized Design | |
설계 표현 | 추상화된 RTL 표현 | 게이트 수준 네트리스트 표현 |
최적화 | 없음 | 타이밍, 전력, 면적을 고려한 최적화 |
계층적 구조 | 원본 코드의 계층적 구조를 그대로 유지 | 최적화 과정에서 구조가 변화될 수 있음 |
목표 | 설계 구조 및 동작 검토 | 하드웨어에 배치 가능한 논리 구조 생성 |
타겟 디바이스 종속성 | 없음 | 타겟 디바이스에 종속적인 기술 매핑 적용 |
제약 조건 적용 여부 | 없음 | 타이밍, 전력 등 설계 제약 조건 적용 |
Elaborated Design은 설계자의 코드를 시각화하고 디버깅하기 위한 논리적 표현이며,
Synthesized Design은 실제 하드웨어 구현을 위해 최적화되고 변환된 게이트 수준 설계이다.
위의 내용을 한 눈에 확인할 수 있는 2 x 1 MUX 예시가 있어 한번 가져와봤다.
'이론 공부 > 기타 학습' 카테고리의 다른 글
CMOS 설계 시, PMOS의 WIDTH는 무엇을 기준으로 설계되는가? (0) | 2025.01.06 |
---|---|
여러 always@()문을 사용할 때 주의 사항 (0) | 2025.01.06 |
Flip-Flop의 종류 (FDRE, FDSE, FDPE, FDCE) (0) | 2025.01.05 |
Flip-Flop 에서 reset의 중요성 (0) | 2025.01.05 |
FreeRTOS, 스케쥴링, MUTEX, 세마포어 관계 (1) | 2025.01.04 |