PYNQ 보드 마스터하기: 프로그래머블 프로젝트를 위한 종합 가이드
프로그래머블하고 흥미로운 전자 프로젝트를 구축하는 방법은 많습니다. 하나는 더 인기 있는 아두이노나 라즈베리 파이 보드를 사용하는 것입니다. 하지만 자일링스 플랫폼으로 더 쉬운 방법을 찾고 있다면 PYNQ 보드가 필요합니다.
사실 PYNQ 보드는 전자 프로젝트를 구축하면서 프로그래밍에 다양한 가능성을 열어줍니다.
보드는 어떻게 작동할까요? 이 글에서는 PYNQ 보드가 무엇인지, 어떻게 사용하는지, 무엇을 할 수 있는지 등을 보여줍니다.
시작해봅시다!
PYNQ 보드란 무엇인가?

PYNQ-Z1
PYNQ 보드는 PYNQ 프로그램을 사용하는 개발 보드입니다. PYNQ는 자일링스에서 개발한 프로젝트로 자일링스 플랫폼과 작동합니다. 또한 설계자들이 이 플랫폼을 쉽게 사용할 수 있습니다.
게다가 파이썬과 그 라이브러리가 PYNQ 보드의 주요 프로그래밍 언어입니다. 따라서 설계자들은 이를 활용해 독특한 프로젝트를 구축할 수 있습니다.
PYNQ-Z1
PYNQ-Z1의 설계는 PYNQ 프레임워크와 호환됩니다. 파이썬으로 보드의 SoC를 개발할 수 있습니다.
또한 보드 설계는 자일링스 Zynq-7000 SoC와 유사합니다. 설계는 FPGA의 프로그래머빌리티와 강력한 듀얼코어 프로세서를 결합합니다.
PYNQ-Z2
반면 PYNQ-Z2는 ZYNQ XC7Z020을 중심으로 하는 FPGA 기반 개발 보드입니다. 또한 PYNQ 지원을 통해 임베디드 프로그래머들이 제한 없이 자일링스 ZYNQ SoC를 완전히 탐구할 수 있습니다.
PYNQ-ZU
PYNQ-ZU도 PYNQ를 강력하게 지원하는 설계를 가집니다. 하지만 설계는 자일링스 Zynq Ultrascale+를 중심으로 합니다. 또한 여러 기능과 확장 인터페이스를 가지고 있어 다른 개발 보드와 함께 사용할 수 있습니다.
PYNQ-Z1 보드 특징
PYNQ-Z1은 강력하고 프로그래밍하기 쉬운 최첨단 SoC 개발 플랫폼입니다. 또한 보드의 하드웨어와 소프트웨어는 이 보드를 설계자, 임베디드 프로그래머 등에게 매력적으로 만드는 뛰어난 특징들을 제공합니다.
하드웨어 측면에서 PYNQ-Z1은 Pmod 포트, HDMI 입/출력, 오디오 출력, 온보드 I/O, 연결 기능(USB 및 이더넷), 아두이노 헤더를 제공합니다. 흥미롭게도 이 모든 특징들이 PYNQ-Z1을 커스터마이징 가능하고 매우 다재다능하게 만듭니다.
또한 IoT, 임베디드 컴퓨팅 가속, 컴퓨터 비전, 암호화, 산업 제어 같은 애플리케이션에 완벽합니다.
PYNQ-Z1의 소프트웨어도 꽤 인상적인 특징들을 가집니다. 예를 들어 PYNQ 오픈소스 프레임워크를 사용합니다.
마이크로 SD 카드에서 PYNQ-Z1 부트 이미지를 설정할 수 있습니다. 무료로 다운로드 가능하고 SD 카드에 쉽게 복사할 수 있습니다. 또는 부트 이미지가 미리 로드된 SD 카드를 구매할 수도 있습니다.
또한 설계자들은 자일링스의 비반도 디자인 스위트 도구를 사용해 새로운 하드웨어 라이브러리에 기여할 수 있으며 이는 무료입니다.
PYNQ 사용 방법
좋은 소식은 꽤 쉽다는 것입니다. 하지만 먼저 보드를 설정해야 합니다.
필요한 것들
PYNQ 사용 전 준비해야 할 것들:
- PYNQ-Z1 보드
- 마이크로 SD 카드(빈 것 또는 미리 로드된 이미지 포함)
- 지원되는 브라우저가 있는 컴퓨터
- 마이크로 USB 케이블
- 이더넷 케이블
마이크로 SD 카드 설정

마이크로 SD 카드
다양한 온라인 스토어에서 미리 로드된 SD 카드를 구매할 수 있습니다. 하지만 빈 SD 카드가 있다면 아래 단계를 따르세요:
- 먼저 PYNQ-Z1 부트 이미지를 여기서 다운로드하세요.
- 이후 압축 파일의 내용을 추출하세요.
- 이미지를 SD 카드에 쓰세요. (최소 8GB 권장)
이제 부팅할 PYNQ 이미지가 준비되었습니다.
보드 설정 방법
PYNQ-Z1 보드를 아래 6단계로 쉽게 설정할 수 있습니다:
- 부트 점퍼를 상단 두 JP4 핀에 위치시켜 보드를 SD 카드에서 부팅하도록 설정하세요. 결과적으로 부트 점퍼가 SD 위치에 놓입니다.
- USB 케이블이나 12V 전원 레귤레이터로 보드에 전원을 공급하세요. USB 사용 시 전원 점퍼를 상단 두 핀에 위치시키세요. 12V 레귤레이터 사용 시 점퍼를 REG로 설정하세요.
- 로드된 SD 카드를 장착하세요. SD 카드 슬롯은 보드 아래에 있습니다.

PYNQ SD 카드 슬롯
- USB 케이블로 컴퓨터를 PYNQ-Z1 보드에 연결하세요 (USB 포트는 PROG UART 포트).

PYNQ-Z1 USB 포트
- 이더넷 케이블을 꽂으세요. 이에 대해 나중에 더 자세히 다루겠습니다.
- 마지막으로 PYNQ-Z1을 켜세요. 방법을 모르신다면 아래 지침을 확인하세요.
이더넷 설정
보드를 이더넷에 연결하는 두 가지 방법이 있습니다. 네트워크 라우터나 컴퓨터를 사용할 수 있습니다.
참고: 보드를 최신 상태로 유지하고 최신 패키지를 얻기 위해 네트워크 라우터 연결을 권장합니다.
네트워크 라우터에 연결

네트워크 라우터
이 옵션을 사용하면 보드에 IP 주소가 할당됩니다. 하지만 해당 네트워크에 연결할 권한이 있어야 합니다. 그렇지 않으면 네트워크 문제가 발생할 수 있습니다.
네트워크 라우터나 DHCP 네트워크에 연결하는 방법:
- 먼저 이더넷 케이블로 PYNQ-Z1을 라우터나 스위치에 연결하세요.
- 그런 다음 컴퓨터를 같은 라우터나 스위치에 와이파이나 이더넷으로 연결하세요.
- 다음 웹 주소로 이동하세요: https://pynq:9090/ 주피터 노트북에 연결.
팁: 호스트네임 변경이나 프록시 설정 구성을 선택할 수 있습니다. 하지만 필수는 아닙니다.
컴퓨터에 연결

이더넷 포트 연결
이 옵션에는 컴퓨터의 이더넷 포트가 필요합니다. 또한 네트워크 인터페이스 수정 권한이 필요합니다.
컴퓨터에 연결하면 PYNQ를 직접 사용할 수 있습니다. 하지만 인터넷 접속이 안 돼 업데이트와 새 패키지를 받을 수 없습니다.
이 연결 방법:
- 컴퓨터에 고정 IP 주소 설정
- 이더넷 케이블로 보드를 컴퓨터에 연결
- 다음 주소로 이동: https://192.168.2.99:9090/ 주피터 노트북에 연결
팁: 이 옵션으로 보드에 인터넷 접속을 부여할 수 있습니다. 하지만 보드의 이더넷 연결을 컴퓨터의 인터넷에 브리지해야 합니다.
PYNQ-Z1 켜는 방법
먼저 전원 스위치를 켜고 빨간 LED가 켜지는지 확인하세요. 즉시 켜지면 보드에 전원이 들어간 것입니다. 몇 초 기다려 녹색 또는 노란색 LED가 켜지는지 확인하세요. 이는 Zynq 장치가 작동함을 확인합니다.
그런 다음 파란색 LED 두 개가 깜빡이고 녹색/노란색 LED 네 개가 켜진 상태로 유지될 때까지 기다리세요. 이후 시스템 사용 준비가 완료됩니다.

LED 표시기
주피터 노트북 연결 방법
연결 방식에 따라 주피터 노트북 연결 방법이 결정됩니다. 위 주소를 웹 브라우저에서 방문하면 로그인 페이지가 나타납니다. 사용자명과 비밀번호: Xilinx.
호스트네임이나 고정 IP를 변경하면 주피터 노트북에 접근하는 웹 주소도 변경해야 합니다.
PYNQ vs ZYNQ

ZYNQ SoC
ZYNQ는 프로그래머블 FPGA 하드웨어와 ARM 기반 프로세서 소프트웨어를 하나의 SoC에 통합합니다. PYNQ도 ZYNQ 기반 설계지만 파이썬과 그 라이브러리로 프로그래밍하는 기능을 포함합니다.
ZYNQ 보드에 PYNQ 제공 방식
ZYNQ 보드에 PYNQ를 제공하는 두 가지 방법이 있습니다. 첫째, PYNQ 파이썬 패키지가 포함된 부팅 가능한 리눅스 이미지 사용. 둘째, AWS-F1 같은 호스트 컴퓨터용으로 설계된 파이썬 패키지 사용.
예제 프로젝트
PYNQ-Z1의 프로젝트 예시들:
- 자일링스 PYNQ 컴퓨터 비전
- PYNQ BOT
- PYNQ 레포지토리
- 딥 러닝 (PYNQ)
- 네트워킹 (PYNQ)
PYNQ FPGA
PYNQ는 설계자와 임베디드 프로그래머가 파이썬과 주피터 노트북을 통해 FPGA를 사용할 수 있게 합니다.
마무리
PYNQ 보드는 다른 개발 보드들과 꽤 다릅니다. 흥미로운 하드웨어와 소프트웨어 특징들을 제공하며 딥 러닝과 컴퓨터 비전 같은 고급 작업과 애플리케이션을 처리할 수 있습니다.

컴퓨터 비전
직관적인 파이썬 프로그래밍 언어를 사용해 프로그래밍과 흥미로운 프로젝트 구축을 쉽게 만듭니다.
PYNQ 보드 사용에 대해 어떻게 생각하시나요? 구매에 도움이 필요하신가요? 언제든 연락 주세요.