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