nexus: Update docs and CMake
Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
parent
567166aece
commit
2fe8bebc6c
@ -5,7 +5,7 @@ task:
|
||||
memory: 20
|
||||
dockerfile: .cirrus/Dockerfile.ubuntu16.04
|
||||
|
||||
build_script: mkdir build && cd build && cmake .. -DARCH=all -DOXIDE_INSTALL_PREFIX=$HOME/.cargo -DBUILD_TESTS=on && make -j3
|
||||
build_script: mkdir build && cd build && cmake .. -DARCH=all+alpha -DOXIDE_INSTALL_PREFIX=$HOME/.cargo -DBUILD_TESTS=on && make -j3
|
||||
submodule_script: git submodule sync --recursive && git submodule update --init --recursive
|
||||
test_generic_script: cd build && ./nextpnr-generic-test
|
||||
test_ice40_script: cd build && ./nextpnr-ice40-test
|
||||
|
@ -67,6 +67,8 @@ set(PROGRAM_PREFIX "" CACHE STRING "Name prefix for executables")
|
||||
|
||||
# List of families to build
|
||||
set(FAMILIES generic ice40 ecp5 nexus)
|
||||
set(STABLE_FAMILIES generic ice40 ecp5)
|
||||
set(EXPERIMENTAL_FAMILIES nexus)
|
||||
|
||||
set(ARCH "" CACHE STRING "Architecture family for nextpnr build")
|
||||
set_property(CACHE ARCH PROPERTY STRINGS ${FAMILIES})
|
||||
@ -75,14 +77,20 @@ if (NOT ARCH)
|
||||
message(STATUS "Architecture needs to be set, set desired one with -DARCH=xxx")
|
||||
message(STATUS "Supported architectures are :")
|
||||
message(STATUS " all")
|
||||
message(STATUS " all+alpha")
|
||||
foreach(item ${FAMILIES})
|
||||
message(STATUS " ${item}")
|
||||
endforeach()
|
||||
message(FATAL_ERROR "Architecture setting is mandatory")
|
||||
endif ()
|
||||
|
||||
if (ARCH STREQUAL "all+alpha")
|
||||
SET(ARCH ${STABLE_FAMILIES} ${EXPERIMENTAL_FAMILIES})
|
||||
endif()
|
||||
|
||||
|
||||
if (ARCH STREQUAL "all")
|
||||
SET(ARCH ${FAMILIES})
|
||||
SET(ARCH ${STABLE_FAMILIES})
|
||||
endif()
|
||||
|
||||
foreach(item ${ARCH})
|
||||
|
16
README.md
16
README.md
@ -7,6 +7,7 @@ tool.
|
||||
Currently nextpnr supports:
|
||||
* Lattice iCE40 devices supported by [Project IceStorm](http://www.clifford.at/icestorm/)
|
||||
* Lattice ECP5 devices supported by [Project Trellis](https://github.com/YosysHQ/prjtrellis)
|
||||
* Lattice Nexus devices supported by [Project Oxide](https://github.com/daveshah1/prjoxide)
|
||||
* *(experimental)* a "generic" back-end for user-defined architectures
|
||||
|
||||
There is some work in progress towards [support for Xilinx devices](https://github.com/daveshah1/nextpnr-xilinx/) but it is not upstream and not intended for end users at the present time. We hope to see more FPGA families supported in the future. We would love your help in developing this awesome new project!
|
||||
@ -103,6 +104,19 @@ sudo make install
|
||||
|
||||
- Examples of the ECP5 flow for a range of boards can be found in the [Project Trellis Examples](https://github.com/YosysHQ/prjtrellis/tree/master/examples).
|
||||
|
||||
### nextpnr-nexus
|
||||
|
||||
For Nexus support, install [Project Oxide](https://github.com/daveshah1/prjoxide) to `$HOME/.cargo` or another location, which should be passed as `-DOXIDE_INSTALL_PREFIX=$HOME/.cargo` to CMake. Then build and install `nextpnr-nexus` using the following commands:
|
||||
|
||||
```
|
||||
cmake . -DARCH=nexus -DOXIDE_INSTALL_PREFIX=$HOME/.cargo
|
||||
make -j$(nproc)
|
||||
sudo make install
|
||||
```
|
||||
|
||||
- Examples of the Nexus flow for a range of boards can be found in the [Project Oxide Examples](https://github.com/daveshah1/prjoxide/tree/master/examples).
|
||||
|
||||
Nexus support is currently experimental, and has only been tested with engineering sample silicon.
|
||||
|
||||
### nextpnr-generic
|
||||
|
||||
@ -126,7 +140,7 @@ make -j$(nproc)
|
||||
sudo make install
|
||||
```
|
||||
|
||||
To build every available architecture, use `-DARCH=all`.
|
||||
To build every available stable architecture, use `-DARCH=all`. To include experimental arches (currently nexus), use `-DARCH=all+alpha`.
|
||||
|
||||
Pre-generating chip databases
|
||||
-----------------------------
|
||||
|
20
docs/nexus.md
Normal file
20
docs/nexus.md
Normal file
@ -0,0 +1,20 @@
|
||||
# nextpnr-nexus notes
|
||||
|
||||
### Constraints
|
||||
|
||||
Currently the following PDC constraint styles are supported for IO constraints:
|
||||
|
||||
```
|
||||
ldc_set_location -site {G13} [get_ports gsrn]
|
||||
ldc_set_port -iobuf {IO_TYPE=LVCMOS33} [get_ports {led[0]}]
|
||||
```
|
||||
|
||||
Timing constraints are currently ignored, but should be expected to be supported soon.
|
||||
|
||||
### Command Line
|
||||
|
||||
A full device name is specified on the command line. It should be postfixed with 'ES' if using an engineering sample device to ensure correct use of the ES IDCODE.
|
||||
|
||||
```
|
||||
--device LIFCL-40-9BG400CES
|
||||
```
|
Loading…
Reference in New Issue
Block a user