gatecat
7c667eeba3
ecp5: Prioritise ECLK usage when placing PLLs
...
Signed-off-by: gatecat <gatecat@ds0.me>
2026-07-17 12:27:24 +02:00
gatecat
8624a48bcf
ecp5: Make fabric routed ECLK an error
...
Signed-off-by: gatecat <gatecat@ds0.me>
2026-07-17 12:27:24 +02:00
gatecat
261152be8a
ecp5: IDDRX2F has ALIGNWD too
...
Signed-off-by: gatecat <gatecat@ds0.me>
2026-07-14 14:53:17 +02:00
mrcmry
33e1c9033b
Improve file open error messages ( #1700 )
...
Define open_(o|i)fstream_and_log_error in log.h to:
- quote 'filename'
- add error cause to easier troubleshoot
- use existing consistent string style
- easily allows OS specific message
Introduce it when file are opened and add it where error message
was missing.
2026-04-19 16:41:47 +02:00
gatecat
7de80fbb9c
ecp5: Fix placement of LUT permutation switchboxes
...
Signed-off-by: gatecat <gatecat@ds0.me>
2026-04-15 14:41:04 +02:00
gatecat
4e9debe4e5
ecp5: Fix timing for DCU clock outputs
...
Signed-off-by: gatecat <gatecat@ds0.me>
2026-04-15 09:24:33 +02:00
gatecat
ae7843fbf0
ecp5: Fix case of one net driving multiple DCSs
...
Signed-off-by: gatecat <gatecat@ds0.me>
2026-04-09 10:34:22 +02:00
gatecat
5281b8d8af
Revert "ecp5: Also promote EBRD_CLK to global"
...
This reverts commit e359390ad3 .
2026-03-21 15:04:04 +01:00
gatecat
e359390ad3
ecp5: Also promote EBRD_CLK to global
...
Signed-off-by: gatecat <gatecat@ds0.me>
2026-03-21 14:36:59 +01:00
Rowan Goemans
60f02a200d
ecp5/pack: split carry chains by re-driving CIN from S0
...
When splitting a carry chain the original COUT -> carry -> CIN
was preserved. This was not routable if the carry chain is split.
Instead now the COUT is wired to a feed out CC2C whose `S0` port
is the start of the new carry chain.
2026-03-11 14:04:50 +01:00
myrtle
d065288979
ecp5: Fix DCC selection ( #1644 )
...
Signed-off-by: gatecat <gatecat@ds0.me>
2026-02-20 15:21:57 +01:00
myrtle
24785a3219
ecp5: Fix placement of ECLKSYNCB driving PLL CLKFB ( #1512 )
...
* ecp5: Fix placement of ECLKSYNCB driving PLL CLKFB
Signed-off-by: gatecat <gatecat@ds0.me>
* ecp5: Improve PLL placement algorithm slightly
Signed-off-by: gatecat <gatecat@ds0.me>
---------
Signed-off-by: gatecat <gatecat@ds0.me>
2025-07-08 08:50:12 +02:00
gatecat
226a2dfdb4
clangformat
...
Signed-off-by: gatecat <gatecat@ds0.me>
2025-05-20 13:19:52 +02:00
Dave Anderson
182b77a2e8
ecp5: fix frequency constraint on bypassed PLL outputs ( #1475 )
...
Each PLL output in ECP5 can be bypassed, which turns it into a wire
that passes through ICLK unmodified. When an outputs mux is set to
REFCLK, disregard other PLL configuration and copy the input constraint
over unchanged.
2025-05-06 15:55:38 +02:00
gatecat
ede78f3730
ecp5: Fix constant and inverted CEMUX
...
Signed-off-by: gatecat <gatecat@ds0.me>
2025-01-27 11:46:25 +01:00
Miodrag Milanović
e12093201a
CMake: Add include guards when IMPORT_BBA_FILES is used ( #1438 )
2025-01-23 10:54:37 +01:00
Catherine
90d746f79e
CMake: add support for exporting and importing .bba files.
...
This is useful for certain cross-compilation workloads, and to cache
rarely changing build products.
To use this functionality, build e.g. as follows:
cmake . -B build-export -DEXPORT_BBA_FILES=../bba-files -DARCH=all
cmake --build build-export -t nextpnr-all-bba
cmake . -B build-import -DIMPORT_BBA_FILES=../bba-files -DARCH=all
cmake --build build-import
2025-01-23 07:49:12 +00:00
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
bb2336ad73
Fix `#embed` support in bbasm and use it when available.
...
This removes the atomic rename for bbasm outputs because it embeds
the resulting paths into the `.cc` files in embed mode. In any case
the write should be fast enough to not be a big risk for interrupted
builds.
This was tested with Clang 19 only (gcc hasn't had a release that
supports `#embed` yet).
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
Catherine
a951faa16d
CMake: extract bbasm compilation into a function.
...
This fully preserves existing functionality, although the `embed` mode
is untested and seems broken.
2025-01-21 17:13:03 +00:00
Catherine
d214308f5f
CMake: reformat for consistency.
...
Normalize keywords to:
if (...)
elseif (...)
else()
endif()
foreach (...)
endforeach()
other(...)
Normalize whitespace to 4 spaces.
2025-01-16 11:36:44 +01:00
Catherine
574f504787
Find all components of Python at the same time.
...
This is explicitly recommended by the FindPython module documentation
and is required to avoid failed builds on some systems. See:
https://cmake.org/cmake/help/latest/module/FindPython.html
2025-01-13 03:29:43 +00:00
gatecat
9b51c6e337
clangformat
...
Signed-off-by: gatecat <gatecat@ds0.me>
2024-09-30 14:51:33 +02:00
Rowan Goemans
2627d4e0ad
ecp5: Allow disabling of global promotion ( #1367 )
2024-09-12 20:16:17 +02:00
gatecat
a29a17f8f2
clangformat
...
Signed-off-by: gatecat <gatecat@ds0.me>
2024-06-18 13:54:12 +02:00
gatecat
05ed9308d6
ecp5: Improve router performance on slower speed grades
...
Signed-off-by: gatecat <gatecat@ds0.me>
2024-02-21 08:14:51 +01:00
gatecat
255633c9f3
static: First pass at timing-driven placement
...
Signed-off-by: gatecat <gatecat@ds0.me>
2024-02-12 09:09:13 +01:00
gatecat
4a4025192a
run clangformat
...
Signed-off-by: gatecat <gatecat@ds0.me>
2023-12-26 09:54:34 +01:00
laanwj
a32ad13a86
ecp5: Don't segfault while packing FFs when DI port of TRELLIS_FF unconnected
...
Currently a segfault happens when the DI port is not specified. Leaving
it unconnected is probably incorrect, but it shouldn't crash the placer.
Fix by adding a check.
2023-11-14 11:55:51 +01:00
gatecat
4a7e58a938
static/ecp5: zero bel area for RAMW because it's a zero-area cell
...
Signed-off-by: gatecat <gatecat@ds0.me>
2023-10-14 09:40:41 +02:00
gatecat
0eb9a9ad02
placer_static: Initial prototype
...
Signed-off-by: gatecat <gatecat@ds0.me>
2023-10-02 14:56:40 +02:00
gatecat
79c6840fef
ecp5: Improve packer robustness to FF dangling M input
...
Signed-off-by: gatecat <gatecat@ds0.me>
2023-09-02 11:38:20 +02:00
Miodrag Milanovic
5497a37de1
VLO,VHI support for ECP5
2023-08-29 10:05:30 +02:00
gatecat
88714c54ec
ecp5: Fix TQFP144 package import
...
Signed-off-by: gatecat <gatecat@ds0.me>
2023-08-17 16:28:35 +02:00
rowanG077
914999673c
Rip out budgets
2023-06-20 10:57:10 +02:00
rowanG077
cb4846a58d
build: push INSTALL_PREFIX from env to cmake var
2023-06-12 14:11:36 +02:00
gatecat
7557d33dc6
ecp5: Fix invalid accesses during certain IO packing cases
...
Signed-off-by: gatecat <gatecat@ds0.me>
2023-04-12 06:56:59 +02:00
gatecat
e4fcd3740d
cmake: Make HeAP placer always-enabled
...
Signed-off-by: gatecat <gatecat@ds0.me>
2023-03-17 10:38:11 +01:00
gatecat
ff14547601
ecp5: Update GUI rendering to match arch changes
...
Signed-off-by: gatecat <gatecat@ds0.me>
2023-03-16 13:13:57 +01:00
gatecat
39b6584274
clangformat
...
Signed-off-by: gatecat <gatecat@ds0.me>
2023-03-16 11:27:08 +01:00
myrtle
b5125aac31
Merge pull request #1090 from rowanG077/ecp5-propagate-dcsc-clk-ct
...
ecp5: Propagate clock constraints through DCSC
2023-02-13 10:25:07 +01:00
gatecat
a8a88d4813
ecp5: Handle the case where both CE are the same constant
...
Signed-off-by: gatecat <gatecat@ds0.me>
2023-02-09 11:12:15 +01:00
rowanG077
9e8f8b7b45
streamline constant_net detection
2023-02-06 17:05:28 +01:00
rowanG077
d2bf44ba45
ecp5: DSCS clock propagation if modesel is 0 constant
2023-02-06 16:27:45 +01:00
rowanG077
a38ee0786a
ecp5: Propagate clock constraints through DSCS
2023-02-01 19:12:10 +01:00
rowanG077
803c57d052
ecp5: LOCATE in LPF works on singleton vector
2023-01-31 21:05:32 +01:00
myrtle
f80b871dd5
Merge pull request #1084 from YosysHQ/gatecat/ecp5-ioff-fix
...
ecp5: Improve IOFF CE handling robustness
2023-01-27 11:20:45 +01:00
gatecat
9b5e5f124c
clangformat
...
Signed-off-by: gatecat <gatecat@ds0.me>
2023-01-25 10:29:32 +01:00
gatecat
c8cb063656
ecp5: Improve IOFF CE handling robustness
...
Signed-off-by: gatecat <gatecat@ds0.me>
2023-01-25 09:26:12 +01:00