| <colbgcolor=#000000><colcolor=#ffffff> Vivado Design Suite | |
| 파일:Vivado.svg | |
| 개발 | AMD |
| 분류 | 통합 개발 환경 |
| 운영 체제 | Microsoft Windows | Linux |
| 최신 버전 | 2025.2 |
| 링크 | # |
1. 개요
FPGA 제조사인 Xilinx(현재 AMD에 인수)가 2012년 출시하여 현재까지 AMD의 FPGA 개발용으로 제공되는 통합 개발 환경. 소프트웨어 및 HLS 개발 플랫폼인 Vitis와 짝을 이뤄, RTL 설계 및 하드웨어 구현을 담당한다.기존에 사용되던 Xilinx ISE를 대체하기 위해 개발되었으며, 7 시리즈 및 그 이후 출시된 UltraScale(+), Versal 시리즈 등의 최신 FPGA를 지원한다. 반면, 6 시리즈 및 그 이전에 출시된 구형 디바이스는 Vivado에서 지원하지 않으므로 여전히 ISE를 사용해야 한다.
2020년대 들어서는 머신러닝 기반 최적화 기능을 탑재하며 Vivado ML Edition으로 리브랜딩되었다.
2. 상세
2.1. 에디션
최신 버전 기준으로 무료로 제공되는 Standard Edition과 유료인 Enterprise Edition으로 나뉜다. 기능상의 차별은 없으나 지원 디바이스 및 기술 지원 여부에 차이가 존재한다.- Standard Edition: 무료 버전이다. 다만 Alveo/Kria 완제품을 제외한 대부분의 고성능 FPGA는 지원하지 않는다.
- Enterprise Edition: 모든 Xilinx/AMD FPGA 디바이스를 지원한다. 라이선스 비용이 매우 비싸며(수백만 원~수천만 원 호가), 주로 기업이나 연구소에서 사용한다.
2.2. 주요 기능
- IP Catalog: FPGA 설계에 필요한 각종 IP(Intellectual Property) Core를 검색하고 설정하여 프로젝트에 추가하는 라이브러리 도구.
- IP Integrator: 블록 다이어그램 GUI에서 IP들을 드래그 앤 드롭으로 연결하여 시스템을 설계하는 도구이다.
- Vivado Simulator (xsim): Vivado에 내장된 기본 시뮬레이터이다.
- Constraints (XDC): 설계한 회로의 물리적, 전기적 제약 사항을 정의하는 파일이다. 확장자는 '.xdc'를 사용한다.
- Synthesis: RTL 코드를 FPGA 상의 자원인 LUT, FF, DSP, BRAM 등으로 변환하여 net list를 만드는 과정이다.
- Implementation: 합성된 net list를 FPGA 칩에 배치하고 배선을 연결하는 단계이다. 시간이 가장 오래 걸리는 단계이다.
- Generate Bitstream: 구현이 완료된 디자인을 FPGA가 인식할 수 있는 바이너리 파일(.bit)로 변환한다.
- Hardware Manager: FPGA 보드와 연결하고, 비트스트림을 다운로드하거나 디버깅하는 도구이다.
- ILA (Integrated Logic Analyzer): FPGA 내부 로직의 신호 상태를 실시간으로 샘플링하여 파형으로 분석할 수 있는 온칩 로직 분석기이다.
- FPGA 내부 로직에 마치 가상의 오실로스코프를 심는 것과 같다. HDL 코드 내에서 보고 싶은 신호에
(* mark_debug = "true" *)속성을 붙이거나, IP Catalog에서 ILA IP를 추가하여 연결하면 된다. 외부 계측기로는 찍을 수 없는 칩 내부의 레지스터나 상태 머신 변화를 볼 수 있어 디버깅에 필수적이다. - 특정 신호 패턴이 발생했을 때만 기록을 시작하는 '트리거(Trigger)' 기능이 있어 간헐적으로 발생하는 하드웨어 버그를 추적할 수 있다.
- 단, ILA 자체가 FPGA 내부의 메모리(BRAM)와 로직(LUT) 자원을 소모하므로 무턱대고 많이 넣으면 정작 내가 짠 회로가 들어갈 자리가 부족해지거나 타이밍 에러가 날 수 있다.
- Vivado Store: (구버전의 경우 XHub Store) Vivado는 온라인으로 보드 정의 파일, 예제/템플릿, Tcl 앱 등을 검색·설치하는 메커니즘을 제공한다. 특히 서드파티 보드는 보드 정의 파일을 설치해야 “Boards” 기반 프로젝트 생성이 가능해지는데, Store를 통해 간편히 내려받아 설치할 수 있다.
- Tcl Console
- FIFO, BRAM 제어기, DDR 컨트롤러, PCIe 인터페이스 등 복잡한 기능을 검증된 모듈 형태로 제공한다.
- Behavioral Simulation: 합성 전 RTL 코드의 논리적 동작을 testbench 코드로 검증한다. 시뮬레이션 속도가 가장 빠르다.
- Post-Synthesis Simulation: Synthesis 이후 생성된 net list의 동작을 검증하는 단계이다.
- Post-Implementation Simulation: FPGA 칩의 전기적인 특성 정보를 사용하여 실제 칩 상에서의 동작을 검증하는 단계이다. 속도는 느리지만 실제 칩에서의 동작과 가장 유사하다.
- 기존 ISE의 UCF 포맷을 버리고, 업계 표준인 SDC(Synopsys Design Constraints) 기반의 문법을 채택하여 타사 툴과의 호환성을 높였다.
- Physical Constraints: 입출력 핀(Pin) 할당, 전압 레벨(I/O Standard) 등을 정의한다.
- Timing Constraints: 클럭 주파수, 셋업/홀드 타임 마진, 멀티사이클 경로 등을 정의하여 컴파일러가 타이밍을 맞추도록 지시한다.
2.3. 디바이스 지원 목록
최신 버전(2025.2) 기준| 모델 | Standard Edition | Enterprise Edition |
| 7 시리즈 | ||
| Spartan-7 | XC7S6 - XC7S100 | 전체 모델 |
| Artix-7 | XC7A12T - XC7A200T | 전체 모델 |
| Kintex-7 | XC7K70T, XC7K160T | 전체 모델 |
| Virtex-7 | - | 전체 모델 |
| Zynq 7000 | XC7Z010 - XC7Z020, XC7Z030, XC7Z007S - XC7Z014S | 전체 모델 |
| UltraScale 시리즈 | ||
| Kintex UltraScale | XCKU025 - XCKU035 | 전체 모델 |
| Virtex UltraScale | - | 전체 모델 |
| UltraScale+ 시리즈 | ||
| Spartan UltraScale+ | XCSU10P - XCSU35P | 전체 모델 |
| Artix UltraScale+ | XCAU10P - XCAU25P | 전체 모델 |
| Kintex UltraScale+ | XCKU3P - XCKU5P | 전체 모델 |
| Virtex UltraScale+ | - | 전체 모델 |
| Zynq UltraScale+ MPSoC | XCZU1CG - XCZU5CG, XCZU7CG XCZU1EG - XCZU5EG, XCZU7EG XCZU4EV - XCZU7EV | 전체 모델 |
| Zynq UltraScale+ RFSoC | - | 전체 모델 |
| Versal 시리즈 | ||
| Versal AI Edge | XCVE2002 - XCVE2302 | 전체 모델 |
| Versal AI Core | - | 전체 모델 |
| Versal Prime | XCVM1102 | 전체 모델 |
| Versal Premium | - | 전체 모델 |
| Versal HBM | - | 전체 모델 |
| Versal 시리즈 (2세대) | ||
| Versal AI Edge Gen 2 | - | 전체 모델 |
| Versal Prime Gen 2 | - | 전체 모델 |
| Versal Premium Gen 2 | - | 전체 모델 |
| Alveo/Kria | ||
| Alveo card | 전체 모델 | 전체 모델 |
| Kria SOM | 전체 모델 | 전체 모델 |
3. 시스템 요구사항
- 최신 버전(2025.2) 기준
- 운영 체제
- Windows: Windows 10 버전 22H2 이상 또는 Windows 11 버전 23H2 이상의 64비트 운영 체제
- 서버: RHEL 버전 8.0/9.4-9.6/10.0, SUSE Linux 15, Ubuntu 22.04/24.04 등
- 하드웨어
- 64비트 x86-64 프로세서
- RAM: 타겟 디바이스에 따라 다름 (공식 사양 참조)
- 저장 공간: 설치 파일과 압축 해제 용량을 포함하여 약 100GB 이상의 여유 공간
macOS는 지원하지 않는다. 단, Parallels 등 가상 머신에 Vivado를 설치하여 사용하는 것은 가능한 것으로 보인다.
공식 사양에 제공되는 권장 RAM 요구량은 Vivado 프로세스 하나가 사용하는 최소한의 용량인 점에 주의 바람. 입문용 보드에 탑재된 저사양 Spartan-7/Artix-7 FPGA에 간단한 디자인을 올리는 경우 8-16GB 정도의 램으로도 괜찮지만, 고사양 FPGA에 복잡한 디자인을 올리는 경우 128GB 이상 대용량 RAM이 필요할 수도 있다.
4. 기타
프로그램 자체가 매우 무겁다. 단순한 프로젝트를 열 때도 로딩 시간이 꽤 걸리며, 컴파일(Synthesis 및 Implementation → Bitstream 생성) 시간은 프로젝트 규모에 따라 수 분에서 수십 시간이 걸리기도 한다. 특히 램 용량을 매우 많이 요구해서, 대형 프로젝트를 합성하면 128GB 이상의 램도 순식간에 가득 차 작업이 멈춰 버리고 컴포넌트를 수동으로 개별 합성해야 하는 경우도 볼 수 있다.ISE 시절보다는 많이 안정화되었지만, 여전히 알 수 없는 이유로 크래시가 발생하곤 한다. 특히 합성 중에 RAM이 부족하면 별다른 에러 메시지 없이 그냥 꺼져버리기도 한다.
학부 전자공학 전공자라면 학교의 디지털 회로 관련 실험 과목에서 AMD(Xilinx) FPGA 보드를 사용하는 경우에 Vivado를 다뤄볼 수 있다. Intel(Altera) FPGA 보드를 사용하는 경우에는 대신 Quartus Prime을 사용하게 된다.