nextpnr portable FPGA place and route tool
Go to file
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
common Initial (random) placer capability 2018-06-07 09:38:14 -04:00
dummy Reformat Python bindings and ice40 main 2018-06-07 13:10:53 +02:00
frontend/json Initial (random) placer capability 2018-06-07 09:38:14 -04:00
gui Allow loading and running Python files before GUI starts 2018-06-07 08:56:54 +02:00
ice40 Initial (random) placer capability 2018-06-07 09:38:14 -04:00
python Fixing file->run renaming 2018-06-07 13:08:18 +02:00
.clang-format Fix clang-format include order issues 2018-06-07 12:48:53 +02:00
.gitignore Added the build directory to .gitignore 2018-06-06 15:45:53 -04:00
CMakeLists.txt Preliminary placer changes to main 2018-06-07 07:52:05 -04:00
README.md cmake: Add HX1K-only builds support 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