Commit Graph

82 Commits

Author SHA1 Message Date
Catherine
dbba1328bf Allow splitting nextpnr-himbaechel per microarchitecture.
This is added primarily for YoWASP.
2025-01-21 17:13:03 +00:00
Catherine
dcfb7d8c33 CMake: align Himbaechel targets with non-Himbaechel ones.
Primarily, this commit makes both of them use the `BBAsm` functions
to build and compile `.bba` files.

In addition, Himbaechel targets are now aligned with the rest in
how they are configured: instead of having all uarches enabled with
all of the devices disabled (the opposite of the rest of nextpnr),
uarches must be enabled explicitly but they come with all devices
enabled (except for Xilinx, which does not have a list of devices).
2025-01-21 17:13:03 +00:00
Catherine
f5776a6d64 CMake: eliminate family.cmake/CMakeLists.txt split.
While it served a purpose (granting the ability to build `.bba` files
separately from the rest of nextpnr), it made things excessively
convoluted, especially around paths.

This commit removes the ability to pre-generate chip databases. As far
as I know, I was the primary user of that feature. It can be added back
if there is demand for it.

In exchange the per-family `CMakeLists.txt` files are now much easier
to understand.
2025-01-21 17:13:03 +00:00
Miodrag Milanović
5a807110de
Adding NanoXplore NG-Ultra support (#1397)
* ng-ultra: new architecture

* Implementation as in D2 deliverable

* Support for nxdesignsuite-24.0.0.0-20240429T102300

* Save memory by directly outputing json

* Add support for bidirectional IOs

* cleanup

* Create BFRs properly

* Add IOM insertion

* Cleanup

* Block certain pips depending of DDFR mode

* Add LUT bypass to improve routability

* Add bypass for CSC mode of GCK

* Fix IOM case

* Initial memory support

* Better RF/XRF handling

* fix

* RF placement and legalization

* Disconnect non available ports for NX_RAM

* cleanup

* Add RFB/RAM context support for latest release

* Remove ports that must not be used

* Proper port used only on RFB

* Add structure for clock sinks

* Use cell type where applicable

* Add clock sinks for other cell types

* Validation check fixes

* Commented too restrictive placement

* Added more crossbar wire type

* Hande IO termination input

* Fail early due to NX tools limitation for now

* Validations and fixes for RAM I/Os

* Fix for latest version of tools

* Use ctx->idf where applicable

* warn if RAM ports are not actually used

* Fix IOM packing

* Fix CY packing

* Change how constants are handled on CY

* Post placement optimization for CY

* Address comments for PR

* pack and export  GCK, WFG and PLL

* Cover more global routing cases

* Constraing to location if provided

* Place at LOC

* Pack and export DSP

* wip

* wip

* notes

* wip

* wip

* Validate DSPs

* DSP cascading

* Check mandatory parameters for DSP

* existing gck

* wip

* export all the rest for bitstream

* CDC packing

* add more sinks

* place FIFO

* map rest of FIFO ports

* enable pll by default

* cleanup

* Initial XLUT support

* Fix statistics

* Properly duplicate GCKs

* RRSTO and WRSTO are not used on XFIFO

* Fix for latest version of JSON format

* Implement GCK limitations

* cleanup

* cleanup

* Add more signals and use lowskew name

* cleanup code a bit

* Fix wfb

* detect cascaded GCKs

* Handle DFR

* Route dfr clock properly

* Cleanup

* Cleanup bitstream code

* Review issues addressed

* Move helper routines

* Expose private members for unit tests

* cleanup

* remove scale factor

* make all location helper arrays static

* Addressed review comments

* Support post-routing CSC and SCC

* Support NX_BFF

* Place CSS and SCC only on allowed locations

* Support latest Impulse

* ng_ultra: Expand bounding box further for left-edge IO

Signed-off-by: gatecat <gatecat@ds0.me>

* Export all IO parameters in bitstream

* Handle new CSV order or parameters and additional validation

* Add some more undocumented values for CSV

* Support for old and new CSV formats

* Initial DDFR support

* Display warning message once per file

* Address review issues

* Fix crash on memory access

* Make boundbox fit NG-Ultra internal design

* Update attributes after dff rewrite

* Implement basic NG-Ultra LUT-DFF unit tests

* Always use first seen xbar input

Signed-off-by: gatecat <gatecat@ds0.me>

* Simplified crossbar pip detection

* Change order to prevent issues with some unconnected constants

* Pack LUT and multiple DFF in stripe

* Place DFF chains

* Improve large DFF chains

* Rename to pack_dff_chains

* Better use XLUTs when possible

* pack output DFF together with XLUT

* option to disable XLUT optimiziations

* Make more optimizations optional

* fix to use pre-increment

* GCK for lowskew signals

* Bugfix for nets that are not part of lowskew network

* Fix bitstream export for PLL cell

* Remove separate route lowskew

* Allow WFG mode 2

* Merge inverter into GCK

* Add CSC per TILE when needed

* Improve reusage of existing cell for CSC

* Take preferred CSC

* Cleanup

* When in place CSC size not important

* Cleanup

* Reset and Load restriction

* make csc optimisation optional

* Proper count for IO resources

* Detect when there is no next cell for DSP chain

* Do not incorporate loops in XLUT

* Check if output exists

* Update copyright for delivery

* Make building NG-Ultra chip database optional, follow filename convention

* Ported drawing code to new API

* Update expandBoundingBox for NG-Ultra

* Copyright and license update

* Add README information

* cleanup and constids

* Using ctx->idf where applicable

* remove if_using_basecluster

* refactor extra data usage

* refactor to use create_cell_ptr only

* optimized getCSC

* optimize critical path a bit

* clangformat

* disable clangformat where applicable

---------

Signed-off-by: gatecat <gatecat@ds0.me>
Co-authored-by: Lofty <dan.ravensloft@gmail.com>
Co-authored-by: gatecat <gatecat@ds0.me>
2024-12-04 09:00:05 +01:00
Pepijn de Vos
97f5c3ca2c Add documentation for Himbaechel Gowin uarch 2024-01-23 12:17:01 +01:00
Lofty
257fbe549d readme: update build prerequisites 2024-01-05 20:12:05 +00:00
gatecat
55635cf2cd Update README
Signed-off-by: gatecat <gatecat@ds0.me>
2023-11-17 09:14:19 +01:00
gatecat
e4fcd3740d cmake: Make HeAP placer always-enabled
Signed-off-by: gatecat <gatecat@ds0.me>
2023-03-17 10:38:11 +01:00
Catherine
57693bcb7f
Update links to IceStorm in README
Fixes #1099.
2023-02-14 05:47:16 +00:00
Adam Sampson
19160f10ae Use CMake's Python3 rather than PythonInterp in subdirs 2022-08-21 17:48:01 +01:00
Chandler Klüser
b502499a1e Update README.md 2022-06-22 21:03:04 -03:00
William D. Jones
78ce9971ff README.md: Add machxo2 arch to list of (experimental) supported devices. 2021-12-16 16:59:38 -05:00
Pepijn de Vos
916ae180ac remove generic leftover in gowin 2021-07-17 17:36:54 +02:00
gatecat
1941d1aa81 Update URLs
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-12 13:22:38 +01:00
gatecat
3eeb2b20eb Update README
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-15 21:51:56 +01:00
gatecat
ea45971dcc Update README
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-11 15:40:30 +01:00
Keith Rothman
6b04fd1524 Small fixes from review.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-15 09:54:58 -08:00
D. Shah
f501ba0c77 Update prjoxide URL
Signed-off-by: D. Shah <gatecat@ds0.me>
2021-02-08 13:04:49 +00:00
Pepijn de Vos
3611f54902
Gowin target (#542)
* load wires

* add slice bels

* add IOB

* add aliases

* local aliases

* broken packing stuff

* working packer

* add constraints

* pnr runs1111

* add timing info

* constraints

* more constraint stuff

* add copyright

* remove generic reference

* remove parameters

* remove generic python api

* add newline to end of file

* some small refactoring

* warn on invalid constraints

* don't error on missing cell

* comment out debugging print

* typo

* avoid copy

* faster empty idstring

* remove intermediate variable

* no more deadnames

* fix cst warnings

* increase ripup and epsilon a bit

* take single device parameter

* add info to readme

* gui stubs

* Revert 4d03b681a8

* assign ff_used in assignArchInfo

* decrease beta for better routability

* try to fix CI
2020-12-30 14:59:55 +00:00
David Shah
0a54ffdd44 cmake: Disable building GUI by default
This should reduce the number of Qt5-related issues, which often prevent
even the basic command line flow from working.

Signed-off-by: David Shah <dave@ds0.me>
2020-12-08 10:01:23 +00:00
David Shah
2fe8bebc6c nexus: Update docs and CMake
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:59:04 +00:00
梅见月七
b015ee825c
missing '/local' at ecp5 installing 2020-11-17 09:40:45 +08:00
Miodrag Milanović
93faa752f5
Remove boost-python from requirements 2020-11-16 09:42:15 +01:00
Jonathan Neuschäfer
13c2e8ceba README.md: Fix two typos 2020-09-23 09:08:47 +02:00
Robin Ole Heinemann
70afb97f61 readme: fix typo ICEBOX -> ICESTORM 2020-07-16 15:52:27 +02:00
David Shah
9eb6e549c5 Update some URLs
Signed-off-by: David Shah <dave@ds0.me>
2020-06-26 11:43:27 +01:00
David Shah
dc209f6344
Merge pull request #459 from whitequark/better-chipdb
CMake: rewrite chipdb handling from ground up
2020-06-25 15:39:54 +01:00
whitequark
1dc1164dce CMake: rewrite chipdb handling from ground up. 2020-06-25 14:03:37 +00:00
whitequark
1f061b5a97
Remove dead links from README 2020-06-24 07:24:29 +00:00
gojimmypi
b4aaae2c5f
update README TRELLIS_INSTALL_PREFIX example
`TRELLIS_INSTALL_PREFIX` will tell `next-pnr` to look in both `share` and `lib` directories.

See https://github.com/YosysHQ/nextpnr/pull/406#discussion_r387945570
2020-03-04 13:39:33 -08:00
gojimmypi
050cb6914f
Update README TRELLIS_INSTALL_PREFIX example
per https://github.com/YosysHQ/nextpnr/pull/406#discussion_r387937313 it is not an install directory
2020-03-04 13:25:47 -08:00
gojimmypi
5a26e0f0d3
Update README with TRELLIS_INSTALL_PREFIX example
see https://github.com/YosysHQ/nextpnr/pull/404 and https://github.com/SymbiFlow/prjtrellis/pull/123
2020-03-04 13:10:48 -08:00
Sebastian Birke
2c938e0e8b Rename cmake path variable TRELLIS_ROOT to TRELLIS_INSTALL_PREFIX 2020-02-04 18:19:45 +01:00
Miodrag Milanovic
3f439c1ef2 Enable screenshot and recording feature 2020-01-05 13:51:12 +01:00
Franck HOUSSEN
346998caed [README] Add prerequisite: libboost-iostreams-dev. 2019-12-25 11:56:18 +01:00
Franck HOUSSEN
16e28f002e [DOC] Fixing typo: cmake test suite triggered by 'make test'. 2019-12-15 20:14:25 +01:00
Miodrag Milanović
992c9acd56
Clarify step for macOS 2019-12-09 17:27:09 +01:00
David Shah
1e4feed383 General documentation updates
Signed-off-by: David Shah <dave@ds0.me>
2019-11-26 21:47:20 +00:00
David Shah
98fe4438f1 ECP5 support is no longer experimental
Signed-off-by: David Shah <dave@ds0.me>
2019-11-26 16:10:53 +00:00
Sean Cross
7cda79f9b7 README: document PREGENERATED_BBA_PATH
Signed-off-by: Sean Cross <sean@xobs.io>
2019-09-17 11:33:39 +08:00
Sean Cross
aa7e20357f README: add a note about static windows builds
Windows has different triples when building with static.  Note this in
the README.

Signed-off-by: Sean Cross <sean@xobs.io>
2019-08-15 12:59:27 +08:00
Ashe Connor
1727662f10
Add eigen to brew install list for macOS 2019-07-29 14:17:03 +10:00
Eddie Hung
bfe4c50d88
Add link to arXiv paper 2019-05-20 11:50:23 -07:00
Alexander Lent
003619e91c
Fix ice40 example directory in README.md
ice40/blinky.* moved to ice40/examples/blinky/blinky.* in commit 1780f42b9a
2019-04-15 21:27:11 -07:00
Sean Cross
638f84a622 README: update windows build instructions for eigen, python
The recent addition of "eigen3" to nextpnr necessitates the addition of
"eigen" to the list of vcpkg packages to be installed on Windows.

Add the 32- and 64-bit versions of eigen to the command issued to
install various dependencies.

Also document one possible build command, and note about unpacking
python36.zip.

Signed-off-by: Sean Cross <sean@xobs.io>
2019-04-02 15:25:00 +08:00
David Shah
81a7b5d2a1 Update README.md
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:46:54 +00:00
David Shah
8f5d5003e9 Clarify ICEBOX_ROOT parameter
Signed-off-by: David Shah <davey1576@gmail.com>
2018-12-21 14:37:27 +00:00
David Shah
024db62ef0 Update README.md
Fixes #74

Signed-off-by: David Shah <dave@ds0.me>
2018-11-26 09:47:16 +00:00
Sean Cross
bfbea5bcb7 README: further specify required Boost packages for Ubuntu
UWhen installing Boost, you can either install libboost-all-dev, or install
just the required packages.

Previously, `libboost-dev` was the only required package listed.

This adds `libboost-filesystem-dev libboost-thread-dev libboost-program-options-dev
libboost-python-dev` to the list of required packages.

It addresses issue #128.

Signed-off-by: Sean Cross <sean@xobs.io>
2018-11-22 14:06:24 +08:00
Miodrag Milanovic
890fec2a1b Added test code coverage report 2018-08-23 18:38:34 +02:00