
nextpnr portables FPGA-Platzierungs- und Verdrahtungswerkzeug
nextpnr zielt darauf ab, ein herstellerneutrales, zeitgesteuertes Open-Source-FPGA-Platzierungs- und Routing-Tool zu sein.
Derzeit unterstützt nextpnr:
Ein kurzes (wissenschaftliches) Paper, das den Yosys+nextpnr-Ablauf beschreibt, finden Sie auf arXiv.
Hier ist ein Screenshot von nextpnr für iCE40. Bauanleitungen und Erste-Schritte-Hinweise finden Sie unten.
Siehe auch:
Die folgenden Pakete müssen zum Erstellen von nextpnr installiert sein, unabhängig von der gewählten Architektur:
clang-format wird für die Entwicklung benötigt)python3-dev für Ubuntu)
nextpnr-himbaechel erforderlichlibboost-dev libboost-filesystem-dev libboost-thread-dev libboost-program-options-dev libboost-iostreams-dev libboost-dev oder libboost-all-dev für Ubuntu)libeigen3-dev für Ubuntu)vcpkg install boost-filesystem boost-program-options boost-thread eigen3vcpkg install boost-filesystem:x64-windows boost-program-options:x64-windows boost-thread:x64-windows eigen3:x64-windows-static hinzu. Ändern Sie beispielsweise eigen3:x64-windows in eigen3:x64-windows-staticpython36.zip innerhalb der embeddable zip-Datei in ein neues Verzeichnis namens „Lib“ extrahieren.brew install cmake python boost eigenFühren Sie zunächst Folgendes aus:
git submodule update --init --recursive
Für iCE40-Unterstützung installieren Sie Project IceStorm nach /usr/local oder an einen anderen Ort, der als -DICESTORM_INSTALL_PREFIX=/usr an CMake übergeben werden sollte. Erstellen und installieren Sie dann nextpnr-ice40 mit den folgenden Befehlen:
mkdir -p build && cd build
cmake .. -DARCH=ice40
make -j$(nproc)
sudo make install
Unter Windows können Sie Pfade explizit angeben:
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
Um einen statischen Release zu erstellen, ändern Sie das Ziel-Triplett von x64-windows in x64-windows-static und fügen Sie -DBUILD_STATIC=ON hinzu.
Ein einfaches Beispiel, das auf dem iCEstick-Entwicklungsboard läuft, finden Sie in ice40/examples/blinky/blinky.*.
Nutzungsbeispiel:
cd ice40/examples/blinky
yosys -p 'synth_ice40 -top blinky -json blinky.json' blinky.v # Synthese in blinky.json
nextpnr-ice40 --hx1k --json blinky.json --pcf blinky.pcf --asc blinky.asc # Platzierung und Routing durchführen
icepack blinky.asc blinky.bin # Binäre Bitstream-Datei erzeugen
iceprog blinky.bin # Design auf iCEstick hochladen
Ausführen von nextpnr im GUI-Modus (siehe unten für Anweisungen zum Erstellen von nextpnr mit GUI-Unterstützung):
nextpnr-ice40 --json blinky.json --pcf blinky.pcf --asc blinky.asc --gui
(Verwenden Sie die Symbolleistenschaltflächen oder die Python-Befehlskonsole, um Aktionen wie Packen, Platzieren, Routen und Schreiben von Ausgabedateien durchzuführen.)
Für ECP5-Unterstützung installieren Sie Project Trellis nach /usr/local oder an einen anderen Ort, der als -DTRELLIS_INSTALL_PREFIX=/usr/local an CMake übergeben werden sollte. Erstellen und installieren Sie dann nextpnr-ecp5 mit den folgenden Befehlen:
mkdir -p build && cd build
cmake .. -DARCH=ecp5 -DTRELLIS_INSTALL_PREFIX=/usr/local
make -j$(nproc)
sudo make install
Für Nexus-Unterstützung installieren Sie Project Oxide nach $HOME/.cargo oder an einen anderen Ort, der als -DOXIDE_INSTALL_PREFIX=$HOME/.cargo an CMake übergeben werden sollte. Erstellen und installieren Sie dann nextpnr-nexus mit den folgenden Befehlen:
mkdir -p build && cd build
cmake .. -DARCH=nexus -DOXIDE_INSTALL_PREFIX=$HOME/.cargo
make -j$(nproc)
sudo make install
Für Cyclone V-Unterstützung klonen Sie Mistral nach $HOME/mistral oder einen anderen Ort und übergeben Sie diesen Pfad als -DMISTRAL_ROOT=$HOME/mistral an CMake. Erstellen und installieren Sie dann nextpnr-mistral mit den folgenden Befehlen:
mkdir -p build && cd build
cmake .. -DARCH=mistral -DMISTRAL_ROOT=$HOME/mistral
make -j$(nproc)
sudo make install
Die Cyclone V-Unterstützung ist derzeit experimentell und nur begrenzt getestet. Das Backend durchläuft eine aktive API-Umstrukturierung, und seine Struktur, Build-Anforderungen und Integrationspunkte können sich zwischen Versionen ändern.