Commit Graph

83 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
Tarik Graba
f01465f628
Add attributes to the hierarchical cells (#1405)
* Adds attributes to the hierarchical cells

* python: add binding for hierarchical cells attributes

* frontend/base: import hierarchical cells attributes
2024-12-17 11:30:39 +01:00
gatecat
9b51c6e337 clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2024-09-30 14:51:33 +02:00
gatecat
8968c84ce6 Increase the set of PnR-excluded cells
Signed-off-by: gatecat <gatecat@ds0.me>
2024-01-23 12:16:14 +01:00
gatecat
d00fdc8f7a frontend: Ignore $scopeinfo
Signed-off-by: gatecat <gatecat@ds0.me>
2024-01-11 15:48:53 +01:00
gatecat
86699b42f6 Switch to potentially-sparse net users array
This uses a new data structure for net.users that allows gaps, so
removing a port from a net is no longer an O(n) operation on the number
of users the net has.

Signed-off-by: gatecat <gatecat@ds0.me>
2022-02-27 13:47:05 +00:00
gatecat
6a32aca4ac refactor: New member functions to replace design_utils
Signed-off-by: gatecat <gatecat@ds0.me>
2022-02-18 11:13:18 +00:00
gatecat
4451a562ef frontend: Consider net aliases when uniquifying name
Signed-off-by: gatecat <gatecat@ds0.me>
2021-12-17 14:51:19 +00:00
gatecat
1941d1aa81 Update URLs
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-12 13:22:38 +01: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
dcbb322447 Remove redundant code after hashlib move
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-02 15:05:20 +01:00
gatecat
897e2c2fdc Use hashlib in frontend, where possible
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-02 15:05:20 +01:00
gatecat
cede682585
Merge pull request #579 from litghost/add_control_for_split_io
Add control to whether GenericFrontend splits IO ports.
2021-02-12 18:22:06 +00:00
Keith Rothman
96293ab25e Add design_loaded state variable.
This is to decouple the command line flag "--json" and enable other
frontend's.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-11 13:43:23 -08:00
Keith Rothman
73710416b4 Add control to whether GenericFrontend splits IO ports.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-11 13:33:55 -08:00
David Shah
af7be21591 Improve handling of unflattened netlists
Signed-off-by: David Shah <dave@ds0.me>
2020-03-06 15:21:28 +00:00
David Shah
b4d029a55c
Merge pull request #385 from YosysHQ/router1-arc-fixes
Fixes for partial reconfig demo
2020-02-03 13:55:07 +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
David Shah
4754ab3894 clangformat
Signed-off-by: David Shah <dave@ds0.me>
2020-01-20 20:30:43 +00:00
David Shah
84fec7e82f Fixes for partial reconfig demo
Signed-off-by: David Shah <dave@ds0.me>
2020-01-18 15:37:13 +00:00
Miodrag Milanovic
d281e18113 Warnings noticed by clang 2020-01-18 15:34:58 +01:00
David Shah
b67ba18590 frontend: Fix hang when loading very large designs
Signed-off-by: David Shah <dave@ds0.me>
2020-01-16 12:15:16 +00:00
David Shah
fe40094216 Preserve hierarchy through packing
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
b100087024 python: Add bindings for hierarchy structures
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
9f6031cda1 frontend_base: Import cell hierarchy
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
14b18cb6fa frontend: Support for loading settings and nextpnr state
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
28279b18fe frontend/generic: Fix regressions
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
c9a0033c5c frontend/base: Fix lookup of nets by module index
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
3e21f894f4 frontend: Improved error handling and fixes
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
eb14cf09f4 frontend: Fix template compile issues
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
a26b1a276d frontend: Top level port import
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
98f93f39be frontend/base: Functions for hierarchical submodule cell import
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
bed053251e frontend/base: Functions for leaf cell import
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
21b4965966 frontend/base: Functions for net[name] import
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
David Shah
77cbd70a72 frontend: JSON implementation of the generic framework
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:29 +00:00
David Shah
25867e3f23 frontend/base: Improve net indexing
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:29 +00:00
David Shah
6aaa9f5a3d frontend/base: Functions for port import
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:29 +00:00
David Shah
fffc3b8447 frontend/base: Top module handling
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:29 +00:00
David Shah
fa7317f594 frontend: Draft for a generic template-based frontend API
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:29 +00:00
Clifford Wolf
fe26ce4471 Move json parser from frontend/json/ to json/
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-23 16:20:31 +02:00
Clifford Wolf
80fbf7e4eb Update jsonparse clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-23 16:16:11 +02:00
Clifford Wolf
aa81f9d648 Switched from clifford@clifford.at to clifford@symbioticeda.com for copyright headers
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-22 16:19:17 +02:00
Miodrag Milanovic
c33a039ac3 Added return code to json parsing and pcf reading 2018-06-21 18:08:28 +02:00
Clifford Wolf
4fefdbd57c Cleanup parse_json_file API, some other cleanups
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 16:16:58 +02:00
Clifford Wolf
a29bfc788e Add ctx->checksum(), slightly improve log messages
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 15:47:41 +02:00
Clifford Wolf
993f6ef7d3 Improve log messages, move many messages to verbose mode
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 14:09:50 +02:00
Clifford Wolf
c4e544856a Fix jsonparse compiler warnings, clangformat updates
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 13:40:13 +02:00
Clifford Wolf
7c3593ea5a Updates from clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 12:57:59 +02:00
David Shah
1d34507937 json: Make the JSON parser deterministic
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-19 20:43:52 +02:00