강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

잼잼님의 프로필 이미지
잼잼

작성한 질문수

PCB HW설계 실무 : STM32를 활용한 Mixed-signal 보드 설계 프로젝트

디지털 회로 설계

해결된 질문

작성

·

30

·

수정됨

0

안녕하세요!! 코치님!
PCB HW와 살짝 다른 질문일 거 같은데요...!



여러 회사의 JD를 보면
아래와 같은 말들이 많이 나오는데

- 회로설계 및 통신/제어용 FPGA Firmware 개발

- VHDL 개발

- FPGA 기반 신호처리 기능 구현

- FPGA 고속 인터페이스 회로 설계 및 검증

- FPGA SoC 활용 모듈 개발

- 디지털 신호처리 기반 HW구현

- FPGA 및 ARM Core 기반 펌웨어 설계 및 제어로직 구현

혹시 FPGA를 개발한다와 디지털회로를 설계한다는 어떤 차이인가요..?

예를 들어 Verilog로 코드를 작성하는 건 RTL 설계이고,

다 작성한 시점 이후에 보드의 PL에 올려서 인터페이스며 등등을 설계하여 FPGA 칩을 완성시키는 게 FPGA인가요..?

개념이 헷갈려서 질문드립니다!! 물어볼 곳이 없네요...

감사합니다!!

답변 1

0

안녕하세요, 답변 남겨드립니다.

말씀해주신 질문은 많은 분들이 혼동하는 부분입니다. "디지털 회로 설계"와 "FPGA 개발"은 밀접하게 연관되어 있지만, 업무의 범위와 관점에서 차이가 있습니다.

디지털 회로 설계는 Verilog/VHDL과 같은 하드웨어 기술 언어(HDL)를 활용해 로직을 정의하는 RTL(Register Transfer Level) 단계부터 시작합니다. 이 단계에서 하는 일은 가상의 디지털 시스템을 수학적/논리적으로 모델링하는 것입니다. 예를 들어, 32-bit ALU를 설계한다고 하면, Verilog로 add, sub, and, or 등의 연산 동작을 정의하고, 시뮬레이션을 통해 Timing Violation이나 Hazard를 잡아내는 과정이 바로 디지털 회로 설계에 속합니다. 즉, 칩이든 FPGA든 ASIC이든 공통적으로 요구되는 논리 설계 능력입니다.

반면 FPGA 개발은 그 설계된 RTL을 특정 FPGA 칩(예: Xilinx Zynq, Intel Stratix)에 맞게 실제 구현하는 과정까지 포함합니다. 여기에는 몇 가지 추가적인 영역이 있습니다.

첫째, Synthesis와 Place & Route 과정입니다. RTL 설계는 추상적 표현이지만, FPGA는 LUT(Look-Up Table), FF(Flip-Flop), BRAM(Block RAM) 같은 자원을 사용합니다. 따라서 합성 툴을 통해 RTL을 FPGA 자원에 매핑하고, Timing Constraint를 적용해야 합니다. 이때 100 MHz 클럭에서 동작해야 한다면, SDC 타이밍 제약을 주고 STA(Static Timing Analysis)를 수행해 Slack을 확인합니다.

둘째, FPGA 개발은 주변 인터페이스와의 연결까지 책임집니다. 예를 들어, ADC 데이터를 FPGA에서 받아 DSP(FFT, Filter)를 수행하고, 결과를 ARM Core로 전달해야 한다면 AXI 버스나 DDR 메모리 인터페이스를 설계해야 합니다. 이 과정은 단순히 RTL 작성이 아니라 FPGA SoC 플랫폼 수준에서 HW+SW를 통합하는 개발에 해당합니다.

셋째, 검증 및 보드 Bring-up 단계입니다. RTL 시뮬레이션을 통과했더라도 실제 FPGA 보드에서 I/O 지연, 신호 무결성, 클럭 도메인 크로싱(CDC) 같은 문제들이 발생합니다. FPGA 개발자는 Logic Analyzer, ILA(Integrated Logic Analyzer) 같은 툴을 활용해 보드 상에서 동작을 검증해야 하며, 이 또한 단순 회로 설계보다는 넓은 개념의 "FPGA 개발" 범주에 속합니다.

정리하면, "디지털 회로 설계"는 논리 수준의 기능적 설계를 의미하고, "FPGA 개발"은 그 설계를 특정 FPGA 칩에서 동작시키도록 합성, 구현, 인터페이스 연결, 검증까지 포함하는 더 넓은 개념이라고 보시면 됩니다. 예를 들어 CPU 파이프라인을 Verilog로 설계하는 것은 디지털 회로 설계이고, 그 CPU를 Xilinx Zynq 보드 위에 올려서 DDR, Ethernet, PCIe와 연동되도록 개발하는 것이 FPGA 개발입니다.

즉, 질문 주신 것처럼 "Verilog 작성이 RTL 설계이고, 보드에 올려서 인터페이스까지 포함해 완성하는 게 FPGA 개발"이라는 이해가 정확합니다. 실무에서는 FPGA 개발자라면 두 영역 모두에 능숙해야 하고, JD에 따라 RTL 위주의 업무인지, 인터페이스 및 시스템 통합 중심의 업무인지 구분되는 경우가 많습니다.

잼잼님의 프로필 이미지
잼잼

작성한 질문수

질문하기