Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/yosyshq/nextpnr
Seguridad de Sistemas EmbebidosSeguridad de HardwarePapers e InvestigaciónAprendizaje y EducaciónAnálisis de Firmware
GitHubyosyshq/nextpnr

nextpnr

nextpnr herramienta portátil de ubicación y enrutado para FPGA

Ver Repositorio
1.7k33162hace 1 díaRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

nextpnr -- una herramienta portátil de colocación y enrutamiento para FPGA

nextpnr pretende ser una herramienta FOSS de colocación y enrutamiento para FPGA, independiente del fabricante y guiada por la temporización.

Actualmente, nextpnr soporta:

  • Dispositivos Lattice iCE40 compatibles con Project IceStorm
  • Dispositivos Lattice ECP5 compatibles con Project Trellis
  • Dispositivos Lattice Nexus compatibles con Project Oxide
  • Dispositivos Gowin LittleBee y Aurora V compatibles con Project Apicula
  • Dispositivos NanoXplore NG-Ultra compatibles con Project Beyond
  • Dispositivos Cologne Chip GateMate compatibles con Project Peppercorn
  • (experimental) dispositivos Cyclone V compatibles con Mistral
  • (experimental) dispositivos Lattice MachXO2 compatibles con Project Trellis
  • (experimental) dispositivos Xilinx serie 7 compatibles con Project X-Ray
  • (experimental) un back-end "genérico" para arquitecturas definidas por el usuario

Un breve artículo (académico) que describe el flujo Yosys+nextpnr se puede encontrar en arXiv.

Aquí se muestra una captura de pantalla de nextpnr para iCE40. Las instrucciones de compilación y las notas de inicio rápido se pueden encontrar a continuación.

Véase también:

  • F.A.Q.
  • API de arquitectura

Requisitos previos

Es necesario instalar los siguientes paquetes para compilar nextpnr, independientemente de la arquitectura seleccionada:

  • CMake 3.25 o posterior
  • Compilador moderno de C++17 (clang-format necesario para el desarrollo)
  • Python 3.5 o posterior, incluidas las bibliotecas de desarrollo (python3-dev en Ubuntu)
    • Se requiere Python 3.9 o posterior para nextpnr-himbaechel
    • en Windows, asegúrate de instalar la misma versión compatible con vcpkg
  • Bibliotecas Boost (libboost-dev libboost-filesystem-dev libboost-thread-dev libboost-program-options-dev libboost-iostreams-dev libboost-dev o libboost-all-dev en Ubuntu)
  • Eigen3 (libeigen3-dev en Ubuntu)
  • Yosys es necesario para sintetizar el diseño de demostración
  • Para compilar en Windows con MSVC, se recomienda el uso de vcpkg para la instalación de dependencias.
    • Para compilaciones de 32 bits: vcpkg install boost-filesystem boost-program-options boost-thread eigen3
    • Para compilaciones de 64 bits: vcpkg install boost-filesystem:x64-windows boost-program-options:x64-windows boost-thread:x64-windows eigen3:x64-windows
    • Para compilaciones estáticas, añade -static a cada uno de los nombres de paquete. Por ejemplo, cambia eigen3:x64-windows a eigen3:x64-windows-static
    • Una copia de Python que coincida con la versión en vcpkg (actualmente Python 3.6.4). Puedes descargar el archivo ZIP integrable y extraerlo. Puede que necesites extraer python36.zip, que está dentro del archivo ZIP integrable, a un nuevo directorio llamado "Lib".
  • Para compilar en macOS, se necesita la utilidad brew.
    • Instala todos los paquetes necesarios brew install cmake python boost eigen

Primeros pasos

En primer lugar, ejecuta:

git submodule update --init --recursive

nextpnr-ice40

Para soporte de iCE40, instala Project IceStorm en /usr/local u otra ubicación, que debe pasarse como -DICESTORM_INSTALL_PREFIX=/usr a CMake. Luego compila e instala nextpnr-ice40 con los siguientes comandos:

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

En Windows, puedes especificar las rutas explícitamente:

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

Para crear una compilación estática de release, cambia el triplet de destino de x64-windows a x64-windows-static y añade -DBUILD_STATIC=ON.

Un ejemplo sencillo que se ejecuta en la placa de desarrollo iCEstick se puede encontrar en ice40/examples/blinky/blinky.*. Ejemplo de uso:

cd ice40/examples/blinky
yosys -p 'synth_ice40 -top blinky -json blinky.json' blinky.v               # synthesize into blinky.json
nextpnr-ice40 --hx1k --json blinky.json --pcf blinky.pcf --asc blinky.asc   # run place and route
icepack blinky.asc blinky.bin                                               # generate binary bitstream file
iceprog blinky.bin                                                          # upload design to iCEstick

Ejecutar nextpnr en modo GUI (consulta a continuación las instrucciones para compilar nextpnr con soporte GUI):

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

(Usa los botones de la barra de herramientas o la consola de comandos de Python para realizar acciones como empaquetar, colocar, enrutar y escribir archivos de salida).

nextpnr-ecp5

Para soporte de ECP5, instala Project Trellis en /usr/local u otra ubicación, que debe pasarse como -DTRELLIS_INSTALL_PREFIX=/usr/local a CMake. Luego compila e instala nextpnr-ecp5 con los siguientes comandos:

mkdir -p build && cd build
cmake .. -DARCH=ecp5 -DTRELLIS_INSTALL_PREFIX=/usr/local
make -j$(nproc)
sudo make install
  • Ejemplos del flujo ECP5 para una variedad de placas se pueden encontrar en los Ejemplos de Project Trellis.

nextpnr-nexus

Para soporte de Nexus, instala Project Oxide en $HOME/.cargo u otra ubicación, que debe pasarse como -DOXIDE_INSTALL_PREFIX=$HOME/.cargo a CMake. Luego compila e instala nextpnr-nexus con los siguientes comandos:

mkdir -p build && cd build
cmake .. -DARCH=nexus -DOXIDE_INSTALL_PREFIX=$HOME/.cargo
make -j$(nproc)
sudo make install
  • Ejemplos del flujo Nexus para una variedad de placas se pueden encontrar en los Ejemplos de Project Oxide.

nextpnr-mistral

Para soporte de Cyclone V, clona Mistral en $HOME/mistral u otra ubicación y pasa esta ruta como -DMISTRAL_ROOT=$HOME/mistral a CMake. Luego compila e instala nextpnr-mistral con los siguientes comandos:

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

El soporte para Cyclone V es actualmente experimental y cuenta con pruebas limitadas. El backend está siendo sometido a una refactorización activa de su API, y su estructura, requisitos de compilación y puntos de integración pueden cambiar entre versiones.

nextpnr-generic

El target genérico permite ejecutar la colocación y el enrutamiento para arquitecturas personalizadas arbitrarias.

Descargar herramienta