1
0
mirror of https://github.com/YosysHQ/nextpnr.git synced 2026-01-30 13:37:00 +00:00
ZipCPU f32b9622d5 Initial (random) placer capability
This commit also includes changes to jsonparse to allow it to
1) recognize ports with no connection, and set their net pointers to NULL
2) recognize designs with a ports node rather than a ports_direction

The rule checker has also been modified to accommodate possible NULL netlists

The ice40 chip now also has iterator operations ++bi and bi++.
2018-06-07 09:38:14 -04:00
2018-06-07 09:38:14 -04:00
2018-06-07 09:38:14 -04:00
2018-06-07 13:08:18 +02:00
2018-06-07 13:20:16 +02:00

nextpnr -- a portable FPGA place and route tool

Supported Architectures

  • iCE40

Prequisites

  • CMake 3.3 or later
  • Modern C++11 compiler, clang recommended
  • Qt5 or later (qt5-default for Ubuntu 16.04)
  • Python 3.5 or later, including development libraries (python3-dev for Ubuntu)
  • Boost libraries (libboost-dev or libboost-all-dev for Ubuntu)
  • Icestorm, with chipdbs installed in /usr/local/share/icebox

Building

  • Use CMake to generate the Makefiles (only needs to be done when CMakeLists.txt changes)
    • For a debug build, run cmake -DCMAKE_BUILD_TYPE=Debug .
    • For a debug build with HX1K support only, run cmake -DCMAKE_BUILD_TYPE=Debug -DICE40_HX1K_ONLY=1 .
    • For a release build, run cmake .
  • Use Make to run the build itself
    • For all targets, just run make
    • For just the iCE40 CLI binary, run make nextpnr-ice40
    • For just the iCE40 Python module, run make nextpnrpy_ice40
    • Using too many parallel jobs may lead to out-of-memory issues due to the significant memory needed to build the chipdbs

Running

  • To run the CLI binary, just run ./nextpnr-ice40
  • The Python module is called nextpnrpy_ice40.so. To test it, run PYTHONPATH=. python3 python/python_test.py
Description
nextpnr portable FPGA place and route tool
Readme 24 MiB
Languages
C++ 82.8%
Python 6%
Verilog 4%
C 3.8%
Assembly 1.5%
Other 1.8%