Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
nextpnr — nextpnr 휴대용 FPGA 배치 및 배선 도구 | Kitploit
도구/GitHubGitHub/yosyshq/nextpnr
Embedded Systems SecurityHardware SecurityPapers & ResearchLearning & EducationFirmware Analysis
GitHubyosyshq/nextpnr

nextpnr

nextpnr 휴대용 FPGA 배치 및 배선 도구

저장소 보기
1.7k331619시간 49분 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

nextpnr -- 휴대용 FPGA 배치 및 배선 도구

nextpnr는 공급업체 중립적이고 타이밍 기반의 FOSS FPGA 배치 및 배선 도구를 목표로 합니다.

현재 nextpnr은 다음을 지원합니다:

  • Project IceStorm에서 지원되는 Lattice iCE40 장치
  • Project Trellis에서 지원되는 Lattice ECP5 장치
  • Project Oxide에서 지원되는 Lattice Nexus 장치
  • Project Apicula에서 지원되는 Gowin LittleBee 및 Aurora V 장치
  • Project Beyond에서 지원되는 NanoXplore NG-Ultra 장치
  • Project Peppercorn에서 지원되는 Cologne Chip GateMate 장치
  • (실험적) Mistral에서 지원되는 Cyclone V 장치
  • (실험적) Project Trellis에서 지원되는 Lattice MachXO2 장치
  • (실험적) Project X-Ray에서 지원되는 Xilinx 7-시리즈 장치
  • (실험적) 사용자 정의 아키텍처를 위한 "일반(generic)" 백엔드

Yosys+nextpnr 흐름을 설명하는 간략한 (학술) 논문은 arXiv에서 찾을 수 있습니다.

다음은 iCE40용 nextpnr의 스크린샷입니다. 빌드 지침과 시작하기 노트는 아래에서 확인할 수 있습니다.

참고:

  • F.A.Q.
  • 아키텍처 API

사전 요구 사항

다음 패키지는 선택한 아키텍처와 관계없이 nextpnr을 빌드하기 위해 설치해야 합니다:

  • CMake 3.25 이상
  • 최신 C++17 컴파일러 (개발 시 clang-format 필요)
  • Python 3.5 이상, 개발 라이브러리 포함 (Ubuntu의 경우 python3-dev)
    • nextpnr-himbaechel에는 Python 3.9 이상 필요
    • Windows에서는 vcpkg에서 지원하는 동일한 버전을 설치해야 합니다.
  • Boost 라이브러리 (libboost-dev libboost-filesystem-dev libboost-thread-dev libboost-program-options-dev libboost-iostreams-dev libboost-dev 또는 Ubuntu의 경우 libboost-all-dev)
  • Eigen3 (Ubuntu의 경우 libeigen3-dev)
  • Yosys는 데모 디자인 합성에 필요합니다.
  • MSVC로 Windows에서 빌드할 때는 vcpkg를 사용하여 종속성을 설치하는 것이 좋습니다.
    • 32비트 빌드의 경우: vcpkg install boost-filesystem boost-program-options boost-thread eigen3
    • 64비트 빌드의 경우: vcpkg install boost-filesystem:x64-windows boost-program-options:x64-windows boost-thread:x64-windows eigen3:x64-windows
    • 정적 빌드의 경우 각 패키지 이름에 -static을 추가합니다. 예: eigen3:x64-windows를 eigen3:x64-windows-static으로 변경
    • vcpkg (현재 Python 3.6.4)의 버전과 일치하는 Python 사본. 임베더블 ZIP 파일을 다운로드하여 압축을 풀 수 있습니다. 임베더블 ZIP 파일 내의 python36.zip을 "Lib"라는 새 디렉토리로 추출해야 할 수도 있습니다.
  • macOS에서 빌드하려면 brew 유틸리티가 필요합니다.
    • 필요한 모든 패키지 설치 brew install cmake python boost eigen

시작하기

먼저 다음을 실행합니다:

git submodule update --init --recursive

nextpnr-ice40

iCE40 지원을 위해 Project IceStorm을 /usr/local 또는 다른 위치에 설치하고, CMake에 -DICESTORM_INSTALL_PREFIX=/usr로 전달해야 합니다. 그런 다음 다음 명령을 사용하여 nextpnr-ice40을 빌드하고 설치합니다:

mkdir -p build && cd build
cmake .. -DARCH=ice40
make -j$(nproc)
sudo make install

Windows에서는 경로를 명시적으로 지정할 수 있습니다:

cmake . -B build -DARCH=ice40 -DICESTORM_INSTALL_PREFIX=C:/ProgramData/icestorm -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -G "Visual Studio 15 2017 Win64" -DPython3_EXECUTABLE=C:/Python364/python.exe -DPython3_LIBRARY=C:/vcpkg/packages/python3_x64-windows/lib/python36.lib -DPython3_INCLUDE_DIR=C:/vcpkg/packages/python3_x64-windows/include/python3.6
cmake --build build --config Release

정적 릴리스를 빌드하려면 대상 트리플렛을 x64-windows에서 x64-windows-static으로 변경하고 -DBUILD_STATIC=ON을 추가합니다.

iCEstick 개발 보드에서 실행되는 간단한 예제는 ice40/examples/blinky/blinky.*에서 찾을 수 있습니다. 사용 예:

cd ice40/examples/blinky
yosys -p 'synth_ice40 -top blinky -json blinky.json' blinky.v               # blinky.json으로 합성
nextpnr-ice40 --hx1k --json blinky.json --pcf blinky.pcf --asc blinky.asc   # 배치 및 배선 실행
icepack blinky.asc blinky.bin                                               # 바이너리 비트스트림 파일 생성
iceprog blinky.bin                                                          # 디자인을 iCEstick에 업로드

GUI 모드에서 nextpnr 실행 (GUI 지원으로 nextpnr 빌드에 대한 지침은 아래 참조):

nextpnr-ice40 --json blinky.json --pcf blinky.pcf --asc blinky.asc --gui

(툴바 버튼이나 Python 명령 콘솔을 사용하여 패킹, 배치, 배선, 출력 파일 쓰기 등의 작업을 수행할 수 있습니다.)

nextpnr-ecp5

ECP5 지원을 위해 Project Trellis을 /usr/local 또는 다른 위치에 설치하고, CMake에 -DTRELLIS_INSTALL_PREFIX=/usr/local로 전달해야 합니다. 그런 다음 다음 명령을 사용하여 nextpnr-ecp5를 빌드하고 설치합니다:

mkdir -p build && cd build
cmake .. -DARCH=ecp5 -DTRELLIS_INSTALL_PREFIX=/usr/local
make -j$(nproc)
sudo make install
  • 다양한 보드에 대한 ECP5 흐름의 예제는 Project Trellis Examples에서 찾을 수 있습니다.

nextpnr-nexus

Nexus 지원을 위해 Project Oxide을 $HOME/.cargo 또는 다른 위치에 설치하고, CMake에 -DOXIDE_INSTALL_PREFIX=$HOME/.cargo로 전달해야 합니다. 그런 다음 다음 명령을 사용하여 nextpnr-nexus를 빌드하고 설치합니다:

mkdir -p build && cd build
cmake .. -DARCH=nexus -DOXIDE_INSTALL_PREFIX=$HOME/.cargo
make -j$(nproc)
sudo make install
  • 다양한 보드에 대한 Nexus 흐름의 예제는 Project Oxide Examples에서 찾을 수 있습니다.

nextpnr-mistral

Cyclone V 지원을 위해 Mistral을 $HOME/mistral 또는 다른 위치에 클론하고 이 경로를 CMake에 -DMISTRAL_ROOT=$HOME/mistral로 전달합니다. 그런 다음 다음 명령을 사용하여 nextpnr-mistral를 빌드하고 설치합니다:

mkdir -p build && cd build
cmake .. -DARCH=mistral -DMISTRAL_ROOT=$HOME/mistral
make -j$(nproc)
sudo make install

Cyclone V 지원은 현재 실험적이며 제한된 테스트만 진행되었습니다. 백엔드는 활발한 API 리팩토링 중이며, 구조, 빌드 요구 사항 및 통합 지점은 버전 간에 변경될 수 있습니다.

nextpnr-generic

일반(generic) 대상은 사용자 정의 아키텍처에 대한 배치 및 배선을 실행할 수 있게 합니다.

mkdir -p build && cd build
cmake .. -DARCH=generic
make -j$(nproc)
sudo make install

일반 흐름 사용 방법의 예제는 generic/examples에 있습니다. 일반 아키텍처 문서도 참조하십시오.

nextpnr-himbaechel

himbaechel 대상은 공통 구조를 공유하는 더 큰 아키텍처에 대한 배치 및 배선을 실행할 수 있게 합니다.

gowin

Gowin 지원을 위해 Project Apicula를 설치합니다.

mkdir -p build && cd build
cmake .. -DARCH="himbaechel" -DHIMBAECHEL_UARCH="gowin"
make -j$(nproc)
sudo make install
  • 다양한 보드에 대한 Gowin 흐름의 예제는 Project Apicula Examples에서 찾을 수 있습니다.

ng-ultra

NanoXplore NG-Ultra 지원을 위해 Project Beyond DB 저장소를 클론합니다.

mkdir -p build && cd build
cmake .. -DARCH="himbaechel" -DHIMBAECHEL_UARCH="ng-ultra" -DHIMBAECHEL_PRJBEYOND_DB=/path/to/prjbeyond-db -DHIMBAECHEL_NGULTRA_DEVICES=ng-ultra
make -j$(nproc)
sudo make install

바이너리 비트스트림 생성에는 NanoXplore의 Impulse 도구가 필요합니다.

gatemate

Cologne Chip GateMate 지원을 위해 Project Peppercorn을 클론합니다.

mkdir -p build && cd build
cmake .. -DARCH="himbaechel" -DHIMBAECHEL_UARCH="gatemate" -DHIMBAECHEL_PEPPERCORN_PATH=/path/to/prjpeppercorn
make -j$(nproc)
sudo make install

GUI

nextpnr GUI는 기본적으로 빌드되지 않습니다. 이는 표준 헤드리스 빌드의 종속성 수를 줄이기 위함입니다. GUI를 활성화하려면 CMake 명령줄에 -DBUILD_GUI=ON을 추가하고 Qt5/Qt6 및 OpenGL을 사용할 수 있는지 확인하십시오.

Qt6의 경우:

  • Ubuntu 22.04 LTS 이상에서는 qt6-base-dev를 설치합니다.
  • MSVC vcpkg의 경우 qt-base (32비트) 또는 qt-base:x64-windows (64비트)를 설치합니다.
  • Homebrew의 경우 qt6을 설치하고 경로에 qt6을 추가합니다: echo 'export PATH="/usr/local/opt/qt/bin:$PATH"' >> ~/.bash_profile ` - 이 변경 사항은 다음 터미널 세션에서 적용되므로 빌드 전에 터미널 창을 다시 여십시오.
도구 다운로드