nextpnr/common/kernel
Miodrag Milanović b8a6559a3f
gatemate: add CP lines as clock and general routing [sc-184] (#1638)
* gatemate: add alternate clock routes

* use additional pins

* Fix clock router and timings

* Fix DDR nets

* Test passtrough concept

* remove not used variable

* wip

* handle pip masks

* Cleanup

* create CPE_CPLINES cells and set properties on them

* Fix pip masking

* rough code to break cplines into subnets

* add ports to cell

* mux bridges need cell bel pins too

* fix multiplier output register packing

* remove empty if

* Fix ODDR

* Add options to disable some pips

* Use resources info

* mask field to resource field

* produce valid netlist with propagation netlist at least

* adapt reassign_cplines for internal resource pips

* Handle block and resources

* fix formatting

* It is required to set all mandatory properties now

* arch API for resources

* current progress

* Add option to skip bridges

* perform per-wire resource congestion costing

* Added no-cpe-cp option

* resource bugfix

* comment out spammy debug message

* Fix routing conflicts issues

* allow only some pass trough for clock router

* handle inversion bits for pass signals

* verify inversion before/after assigning bridges

* we care only if there is net

* Revert "we care only if there is net"

This reverts commit 3da2769e31.

* Revert "verify inversion before/after assigning bridges"

This reverts commit 8613ee17c8.

* chipdb version bump

* clangformat

* cleanup

* cleanup

* Initial conversion to GroupId

* Keep group info in pip extra

* Cleanup headers

* Initialize resource efficiently

* Addressing review comments

* improve resource docs

* Make CP lines not use as clocks as default

---------

Co-authored-by: Lofty <dan.ravensloft@gmail.com>
2026-02-25 08:22:16 +01:00
..
CMakeLists.txt CMake: refactor architecture-specific build system parts. 2025-01-21 17:13:03 +00:00
arch_api.h gatemate: add CP lines as clock and general routing [sc-184] (#1638) 2026-02-25 08:22:16 +01:00
arch_pybindings_shared.h api: add explain_invalid option to isBelLocationValid 2022-12-07 10:27:58 +01:00
archcheck.cc common: add missing includes for libc++. 2023-02-23 02:32:19 +00:00
array2d.h clangformat 2024-09-30 14:51:33 +02:00
base_arch.h gatemate: add CP lines as clock and general routing [sc-184] (#1638) 2026-02-25 08:22:16 +01:00
base_clusterinfo.h Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
basectx.cc kernel: look up ports when applying clock constraints. (#1448) 2025-01-31 08:30:39 +00:00
basectx.h clang-format on basectx.h 2024-10-01 15:24:40 +02:00
bits.cc Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
bits.h Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
chain_utils.h Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
command.cc Remove use of boost system and filesystem (#1591) 2025-10-22 15:01:21 +02:00
command.h clangformat 2024-01-12 10:09:28 +01:00
constraints.h Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
constraints.impl.h rename c++20 keyword s/requires/requires_range. 2023-05-16 12:43:40 +02:00
context.cc clangformat 2024-09-30 14:51:33 +02:00
context.h Cleanup Context API (#1593) 2025-10-23 14:44:14 +02:00
design_utils.cc Format utlilisation for larger FPGA as well 2024-05-06 11:22:33 +02:00
design_utils.h Remove deprecated functions 2022-12-22 15:26:39 +01:00
deterministic_rng.h placer_static: Initial prototype 2023-10-02 14:56:40 +02:00
dynamic_bitarray.h Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
embed.cc Cleanup Context API (#1593) 2025-10-23 14:44:14 +02:00
embed.h bba: fix `#embed` on Windows. 2025-05-14 05:38:30 +01:00
exclusive_state_groups.h clangformat 2023-05-19 09:00:31 +02:00
exclusive_state_groups.impl.h rename c++20 keyword s/requires/requires_range. 2023-05-16 12:43:40 +02:00
handle_error.cc Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
hashlib.h clangformat 2024-01-12 10:09:28 +01:00
idstring.cc Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
idstring.h Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
idstringlist.cc Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
idstringlist.h clangformat 2024-01-12 10:09:28 +01:00
indexed_store.h clangformat 2024-09-30 14:51:33 +02:00
log.cc log: Remove bad usage of [[no_return]] 2024-09-24 08:57:21 +02:00
log.h common: Implement Werror flag 2023-02-13 10:52:05 +01:00
nextpnr.cc Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
nextpnr.h Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
nextpnr_assertions.cc Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
nextpnr_assertions.h Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
nextpnr_base_types.h clangformat 2024-09-30 14:51:33 +02:00
nextpnr_namespaces.cc Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
nextpnr_namespaces.h Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
nextpnr_types.cc Add trivially copyable invariant for ID types 2024-01-04 17:04:28 +01:00
nextpnr_types.h Add attributes to the hierarchical cells (#1405) 2024-12-17 11:30:39 +01:00
property.cc Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
property.h Fix "implicit copy constructor for 'Property' is deprecated" 2022-11-10 10:57:41 +01:00
pybindings.cc clangformat 2025-05-20 13:19:52 +02:00
pybindings.h Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
pycontainers.h clangformat 2024-09-30 14:51:33 +02:00
pywrappers.h clangformat 2024-01-12 10:09:28 +01:00
relptr.h apicula: add support for magic sip pins (#1370) 2024-10-09 15:16:36 +02:00
report.cc clangformat 2025-07-07 10:15:50 +02:00
scope_lock.h Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
sdc.cc sdc: Fix EOF handling during string parse 2025-06-25 11:58:11 +02:00
sdf.cc context: Add getNetinfoRouteDelayQuad 2023-01-18 16:28:33 +01:00
sso_array.h clangformat 2024-09-30 14:51:33 +02:00
str_ring_buffer.cc Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
str_ring_buffer.h Split up common into kernel,place,route 2022-04-08 13:42:54 +01:00
svg.cc clangformat 2024-09-30 14:51:33 +02:00
timing.cc common: Use `NPNR_ASSERT_FALSE` for unreachable case 2024-09-24 08:57:21 +02:00
timing.h clangformat 2024-09-30 14:51:33 +02:00
timing_log.cc timing_log: Handle potentially missing net when reporting crit path (#1381) 2024-10-04 08:07:55 +02:00
util.h clangformat 2024-09-30 14:51:33 +02:00