Commit Graph

65 Commits

Author SHA1 Message Date
Catherine cd7f7c12f1 CMake: refactor architecture-specific build system parts.
Two user-visible changes were made:
* `-DUSE_RUST` is replaced with `-DBUILD_RUST`, by analogy with
  `-DBUILD_PYTHON`
* `-DCOVERAGE` was removed as it doesn't work with either modern GCC
  or Clang
2025-01-21 17:13:03 +00:00
Catherine 155adc3f5d CMake: rationalize and refactor build system.
The two main changes, done together in this commit, are:
* Eliminating most instances of `aux_source_directory()`, replacing
  them with explicit file listings; and
* Moving these file listings into respective subdirectories by
  representing respective nextpnr components as interface libraries.

In addition, the GUI CMake script tree was simplified since it had
a lot of unused/redundant code.

The `aux_source_directory()` command is not recommended for use by
CMake itself because it misses dependency changes when adding/removing
files, and consequently causes build failures requiring a clean rebuild.

This commit does not touch anything related to architectures/families,
which are very complex and redundant all on their own.
2025-01-16 11:36:44 +01:00
gatecat 9994ba1d19 json: Fix handling of offsets in backend
Signed-off-by: gatecat <gatecat@ds0.me>
2023-09-07 08:00:05 +02:00
gatecat 2ffb081442 Fixing old emails and names in copyrights
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-12 13:22:38 +01:00
gatecat eca1a4cee4 Use hashlib in most remaining code
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-02 15:05:20 +01:00
gatecat 579b98c596 Use hashlib for core netlist structures
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-02 14:27:56 +01:00
D. Shah 0d97904216 clangformat
Signed-off-by: D. Shah <dave@ds0.me>
2021-01-28 14:38:20 +00:00
Marcin Kościelnicki 24e3f8417e json: fix handling of 32-bit parameters
See YosysHQ/yosys#1671 for rationale.  Also, added some validation
to our parser, so that out-of-range values are reported and the user
knows they should update yosys.
2020-02-01 17:23:05 +01:00
Tobias Müller 659c4fad56 Change version to git describe and make set-able from outside
Change version to use git describe instead of git log as this will also work
if tags are present and make the version string set-able from outside as a
parameter to cmake, so that package managers can set this if building outside
of a git working tree.
2020-01-11 11:38:45 +01:00
David Shah 035bfb0fe5 json: Remove legacy frontend
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah 6562edc98e jsonwrite: Fix bus cell ports
Signed-off-by: David Shah <dave@ds0.me>
2019-11-27 15:16:28 +00:00
David Shah 95540763b9 json: Add support for net aliases
Signed-off-by: David Shah <dave@ds0.me>
2019-09-13 17:27:15 +01:00
David Shah bb0b6e85ce json: Fix import/export of ports driven by the same net
Signed-off-by: David Shah <dave@ds0.me>
2019-08-07 18:48:06 +01:00
David Shah b8455f20e2 json: Group bus ports in backend
Signed-off-by: David Shah <dave@ds0.me>
2019-08-07 14:47:01 +01:00
David Shah 90364fc3fa Fix typo in jsonwrite
Signed-off-by: David Shah <dave@ds0.me>
2019-08-07 14:22:03 +01:00
David Shah 1839a3a770 Major Property improvements for common and iCE40
Signed-off-by: David Shah <dave@ds0.me>
2019-08-05 14:52:15 +01:00
Miodrag Milanovic be47fc3e9a clangformat run 2019-06-25 18:19:25 +02:00
Miodrag Milanovic ec47ce2320 Merge master 2019-06-25 18:14:51 +02:00
David Shah 76ff791913
Merge pull request #294 from YosysHQ/eddie/whiteboxes
Changes to cope with YosysHQ/yosys#943
2019-06-24 22:03:51 +01:00
Miodrag Milanovic 560e3899d8 Fix formatting 2019-06-24 10:09:25 +02:00
Miodrag Milanovic bc1450a5cd Reversed logic 2019-06-22 09:30:35 +02:00
Miodrag Milanovic 5cb9735735 Add support for upto and offset in JSON files 2019-06-21 20:12:24 +02:00
Miodrag Milanovic 0c3093fe49 fix regression 2019-06-21 17:45:53 +02:00
Miodrag Milanovic 87ecd49295 Fix loading json 2019-06-21 11:31:59 +02:00
Miodrag Milanovic 92da4a91de Preserve ports 2019-06-21 09:43:47 +02:00
Miodrag Milanovic 0d8c80ad5d gui for json write and proper statuses 2019-06-14 11:14:18 +02:00
Miodrag Milanovic 36ccc22fc9 Use flags for each step 2019-06-14 09:59:04 +02:00
Miodrag Milanovic 03dff10cbd Load properties from json and propagate to context create 2019-06-13 20:42:11 +02:00
Miodrag Milanovic 4de147d9e4 Save settings that we saved in project 2019-06-13 18:39:16 +02:00
Miodrag Milanovic 856760599e Use properties for settings and save in json 2019-06-12 18:34:34 +02:00
Miodrag Milanovic d9b0bac248 Save top level attrs and store current step 2019-06-07 16:11:11 +02:00
Miodrag Milanovic a8871ea8aa Cleanup and fixes, flow works now 2019-06-07 13:19:11 +02:00
Miodrag Milanovic 1093d7e122 WIP saving/loading attributes 2019-06-07 11:48:15 +02:00
Miodrag Milanovic 3ae50f85b1 Use index as unique identifier for nets 2019-06-04 20:08:43 +02:00
Miodrag Milanovic d5f804832f hacky way to support ECP5 for now 2019-06-03 21:13:47 +02:00
Miodrag Milanovic 44d6f16b66 Support ecp5 read write additional cell info 2019-06-03 21:01:05 +02:00
Miodrag Milanovic 82ed1803c7 use NEXTPNR_BEL, since BEL is initial placement 2019-06-02 18:38:20 +02:00
Miodrag Milanovic 1894cb549c preserve constraints 2019-06-02 16:46:07 +02:00
Miodrag Milanovic d5d8213871 Added support for attributes/properties types 2019-06-01 15:52:32 +02:00
Miodrag Milanovic ccbe2dd18d Add reading attributes to nets from json 2019-06-01 11:41:50 +02:00
Miodrag Milanovic aa0568628f Add writing routing data to json 2019-06-01 11:41:34 +02:00
Miodrag Milanovic 1657479c81 Solve some of connection issues 2019-05-31 11:50:49 +02:00
Miodrag Milanovic 545068dec4 Initial work on jsonwrite 2019-05-31 11:09:13 +02:00
whitequark a0c9a70a5e When choosing between labels for one net, always prefer ports.
1. Ports are already used in PCF and LPF files, so it is natural
that the developer would use them for constraints as well.

2. Unpredictable (the set of netlabels nextpnr looks at depends on
the optimizations during synthesis) net naming makes it impossible
for code generators like nMigen to reliably apply clock constraints.
2019-05-29 18:05:48 +00:00
Eddie Hung d49eb2ba40 Changes to cope with YosysHQ/yosys#943 2019-04-19 09:27:34 -07:00
David Shah 997a66791e json: Fix inputs directly driving inouts
Signed-off-by: David Shah <dave@ds0.me>
2019-03-20 16:07:47 +00:00
David Shah 8623bbc107 json: Prefer higher level net names when a net has multiple names
Signed-off-by: David Shah <davey1576@gmail.com>
2018-12-16 16:44:19 +00:00
David Shah 9d852f02b6 json: Print error instead of assert for driver/input conflicts
Signed-off-by: David Shah <dave@ds0.me>
2018-12-12 17:31:24 +00:00
David Shah dbc14ea76d json: Improve reporting of multiple drivers
Signed-off-by: David Shah <dave@ds0.me>
2018-11-29 19:20:51 +00:00
David Shah eda77a5244 json: Remove superfluous floating node message
Signed-off-by: David Shah <dave@ds0.me>
2018-11-26 09:36:43 +00:00