gatecat
76683a1e3c
refactor: Use constids instead of id("..")
...
Signed-off-by: gatecat <gatecat@ds0.me>
2022-02-16 17:09:54 +00:00
gatecat
d446a29987
nexus: Hotfix to disable unimplemented DCS routethru
...
Signed-off-by: gatecat <gatecat@ds0.me>
2022-02-03 14:59:25 +00:00
Alessandro Comodi
676e56e5d4
nexus: add option to modify the mult factor of the estimate delay
...
Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
2022-02-01 11:18:17 +01:00
gatecat
ddb084e9a8
archapi: Use arbitrary rather than actual placement in predictDelay
...
This makes predictDelay be based on an arbitrary belpin pair rather
than a arc of a net based on cell placement. This way 'what-if'
decisions can be evaluated without actually changing placement;
potentially useful for parallel placement.
A new helper predictArcDelay behaves like the old predictDelay to
minimise the impact on existing passes; only arches need be updated.
Signed-off-by: gatecat <gatecat@ds0.me>
2021-12-19 17:15:15 +00:00
gatecat
a306860144
nexus: router1 speedup based on #867
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-12-17 15:06:19 +00:00
gatecat
718ee441a0
nexus: Add resource cost overrides
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-09-24 19:19:26 +01:00
gatecat
502fcff765
nexus: LUT permutation support
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-09-24 15:26:16 +01:00
gatecat
24f13ec942
Merge pull request #822 from YosysHQ/gatecat/nexus-split-vcc
...
nexus: Support for split Vcc routing
2021-09-23 13:04:04 +01:00
gatecat
b2e9ce46f1
Merge pull request #823 from YosysHQ/gatecat/nexus-r1-tweaks
...
nexus: Tweaks for router1 performance
2021-09-22 22:04:56 +01:00
gatecat
f395ad3e27
nexus: Support for split Vcc routing
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-09-22 15:00:59 +01:00
gatecat
fed682ee5f
nexus: Tweaks for router1 performance
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-09-22 14:55:10 +01:00
gatecat
53e94653f3
nexus: Fix DSP macro placement
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-09-22 13:12:21 +01:00
gatecat
3d528adfdc
nexus: Disable center DCC-thrus on 17k device
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-16 13:52:10 +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
579b98c596
Use hashlib for core netlist structures
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-02 14:27:56 +01:00
gatecat
1595c07260
router2: Add heatmap by routing resource type
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-20 14:54:23 +01:00
gatecat
ae8a910339
Revert "nexus: Enable placeAllAtOnce"
...
This reverts commit 0abe425675
.
2021-05-06 15:51:54 +01:00
gatecat
0abe425675
nexus: Enable placeAllAtOnce
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-04-25 11:53:21 +01:00
gatecat
55fa8b7745
nexus: Fix copypasta
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-03-08 14:40:13 +00:00
gatecat
f0e30abf62
nexus: Fail gracefully when seeing special pins
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-03-05 12:15:58 +00:00
gatecat
7922b3bfc4
Replace DelayInfo with DelayPair/DelayQuad
...
This replaces the arch-specific DelayInfo structure with new DelayPair
(min/max only) and DelayQuad (min/max for both rise and fall) structures
that form part of common code.
This further reduces the amount of arch-specific code; and also provides
useful data structures for timing analysis which will need to delay
with pairs/quads of delays as it is improved.
While there may be a small performance cost to arches that didn't
separate the rise/fall cases (arches that aren't currently separating
the min/max cases just need to be fixed...) in DelayInfo, my expectation
is that inlining will mean this doesn't make much difference.
Signed-off-by: gatecat <gatecat@ds0.me>
2021-02-19 11:31:33 +00:00
D. Shah
f5d2e245e1
nexus: Switch to BaseArch
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 19:19:17 +00:00
Keith Rothman
c99fbde0eb
Mark IdString and IdStringList single argument constructors explicit.
...
Single argument constructors will silently convert to that type. This
is typically not the right thing to do. For example, the nexus and
ice40 arch_pybindings.h files were incorrectly parsing bel name strings,
etc.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:07 -08:00
D. Shah
6566a011b4
nexus: Implement IdStringList for all arch object names
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 17:00:33 +00:00
Keith Rothman
da74a425d2
Run "make clangformat".
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:44:49 -08:00
Keith Rothman
9fe546f279
Rename Partition -> BelBucket.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:34:56 -08:00
Keith Rothman
0338368afa
Add Partition APIs to ice40, nexus, gowin archs.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:34:56 -08:00
D. Shah
e049d5f2fc
nexus: Switch from RelPtr to RelSlice
...
This replaces RelPtrs and a separate length field with a Rust-style
slice containing both a pointer and a length; with bounds checking
always enforced.
Thus iterating over these structures is both cleaner and safer.
Signed-off-by: D. Shah <dave@ds0.me>
2021-01-27 17:24:01 +00:00
David Shah
270efdca85
nexus: Add basic LRAM support (no init)
...
Signed-off-by: David Shah <dave@ds0.me>
2020-12-02 17:07:34 +00:00
David Shah
567166aece
nexus: Fix db integrity check
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
ca73e14cf9
nexus: Add post-place LUTFF optimisation
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
df3c6dfe3e
nexus: Preliminary integration of DSP timing data
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
76543d05e7
nexus: Tweak heuristics to improve routeability
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
6b5277638b
nexus: Fix slow routing around DSPs
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
c7ad3cece6
nexus: Tweak delay heuristics
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
530d6ce9e9
nexus: Add EBR timing analysis
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
9b89a82573
nexus: Add LUTRAM and WIDEFN9 timing support
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
8c1f25cf31
timing: Add a few more cell types
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
6457b4ca7b
nexus: Swap sort order to make some lookups easier
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
fa9194e3e2
nexus: Add cell delay lookup
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
963fd175ad
nexus: Lookup speed grade and pip delays
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
00ff7c6cfe
nexus: Default to router2 for now
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:28 +00:00
David Shah
f749038959
nexus: Improve placer config
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah
8d1678f0ef
nexus: Add stub GUI
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah
dfd6b6e39e
nexus: Add a simple global routing pass
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah
c80144b7f0
nexus: Generate FASM files that can be used standalone
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah
9affda5626
nexus: Build and embed chipdb automatically
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah
0eb5c72cc5
nexus: Refactor cell pin style db
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah
df3866a800
nexus: Add IO packing
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
David Shah
12013b4c1f
nexus: Lookup of package and IO pins
...
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00