| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
|
|
|
|
| |
Signed-off-by: gatecat <gatecat@ds0.me>
|
|
|
|
| |
Signed-off-by: gatecat <gatecat@ds0.me>
|
|
|
|
| |
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
|
|
|
|
| |
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
|
|
|
|
|
|
| |
Also check return of placer1_refine.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
|
|
|
|
| |
Signed-off-by: gatecat <gatecat@ds0.me>
|
|
|
|
| |
Signed-off-by: gatecat <gatecat@ds0.me>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This Arch API dates from when we were first working out how to
implement placement validity checking, and in practice is little used by
the core parts of placer1/HeAP and the Arch implementation involves a
lot of duplication with isBelLocationValid.
In the short term; placement validity checking is better served by the
combination of checkBelAvail and isValidBelForCellType before placement;
followed by isBelLocationValid after placement (potentially after
moving/swapping multiple cells).
Longer term, removing this API makes things a bit cleaner for a new
validity checking API.
Signed-off-by: gatecat <gatecat@ds0.me>
|
|
|
|
|
|
|
|
|
|
|
| |
This uses the new IdStringList API to store bel names for the ECP5. Note
that other arches and the GUI do not yet build with this
proof-of-concept patch.
getBelByName still uses the old implementation and could be more
efficiently implemented with further development.
Signed-off-by: D. Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
|
|
|
|
| |
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
|
|
|
|
| |
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
|
|
|
|
| |
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
|
|
|
|
| |
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
|
|
|
|
| |
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
|
|
|
|
| |
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
|
|
|
|
| |
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
|
|
|
|
| |
Signed-off-by: D. Shah <dave@ds0.me>
|
|
|
|
|
|
|
| |
Note that some '#if 0' code that might still be useful for debugging in
the future has been retained.
Signed-off-by: D. Shah <dave@ds0.me>
|
|
|
|
| |
std::random_shuffle deprecated in C++14 and was removed in C++17.
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This involves very few changes, all typical to WASM ports:
* WASM doesn't currently support threads or atomics so those are
disabled.
* WASM doesn't currently support exceptions so the exception
machinery is stubbed out.
* WASM doesn't (and can't) have mmap(), so an emulation library is
used. That library currently doesn't support MAP_SHARED flags,
so MAP_PRIVATE is used instead.
There is also an update to bring ECP5 bbasm CMake rules to parity
with iCE40 ones, since although it is possible to embed chipdb into
nextpnr on WASM, a 200 MB WASM file has very few practical uses.
The README is not updated and there is no included toolchain file
because at the moment it's not possible to build nextpnr with
upstream boost and wasi-libc. Boost requires a patch (merged, will
be available in boost 1.74.0), wasi-libc requires a few unmerged
patches.
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Fixes #259
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A CMake option 'BUILD_HEAP' (default on) configures building of the
HeAP placer and the associated Eigen3 dependency.
Default for the iCE40 is SA placer, with --heap-placer to use HeAP
Default for the ECP5 is HeAP placer, as SA placer can take 1hr+ for
large ECP5 designs and HeAP tends to give better QoR. --sa-placer can
be used to use SA instead, and auto-fallback to SA if HeAP not built.
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <davey1576@gmail.com>
|
|
|
|
| |
Signed-off-by: David Shah <davey1576@gmail.com>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|
|
|
|
| |
Signed-off-by: David Shah <dave@ds0.me>
|