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
76683a1e3c
refactor: Use constids instead of id("..")
...
Signed-off-by: gatecat <gatecat@ds0.me>
2022-02-16 17:09:54 +00:00
gatecat
30fd86ce69
refactor: New NetInfo and CellInfo constructors
2022-02-16 15:10:57 +00:00
gatecat
81c549549d
ecp5: Add DCSC support
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-07-06 11:45:37 +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
8fa3088057
ecp5: Don't attempt to promote undriven nets to globals
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-07 21:20:40 +01:00
gatecat
ecc19c2c08
Using hashlib in arches
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-06-02 15:05:19 +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
c7c13cd95f
Remove isValidBelForCell
...
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>
2021-02-16 13:31:36 +00:00
D. Shah
f05d024666
ecp5: Use snake case for arch-specific functions
...
This makes the difference clearer between the general arch API that
everyone must implement; and helper functions specific to one arch.
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-03 10:53:08 +00:00
D. Shah
9388df19d3
refactor: Replace getXName().c_str(ctx) with ctx->nameOfX
...
This makes the ongoing migration to IdStringList easier.
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 17:00:14 +00:00
D. Shah
6d23461bcd
ecp5: Proof-of-concept using IdStringList for bel names
...
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>
2021-02-02 17:00:12 +00:00
David Shah
43fd9e6779
ecp5: Fix placement of DCCs to guarantee routeability
...
Signed-off-by: David Shah <dave@ds0.me>
2020-06-10 15:47:47 +01:00
David Shah
3c60ea383d
ecp5: Improve global routing robustness
...
Signed-off-by: David Shah <dave@ds0.me>
2020-05-14 13:12:30 +01:00
David Shah
2aaef61547
ecp5: Don't promote VCC/GND to globals even if connected to clock port
...
Signed-off-by: David Shah <dave@ds0.me>
2020-05-14 13:07:59 +01:00
David Shah
64d3e3e1e8
ecp5: Use dedicated routing for ECLKs where possible
...
Signed-off-by: David Shah <dave@ds0.me>
2020-04-14 19:20:13 +01:00
David Shah
9dc8e1e35d
ecp5: Don't reroute existing globals
...
Signed-off-by: David Shah <dave@ds0.me>
2020-01-20 14:58:38 +00:00
David Shah
0d43aff268
ecp5: Always promote IOLOGIC SCLK to global
...
Fixes #374
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 15:53:00 +00:00
David Shah
08cf545d9b
Revert "Merge pull request #355 from YosysHQ/ecp5-promote-lsr"
...
This reverts commit 6a7d1fe53d
, reversing
changes made to c3d4117a21
.
2019-11-20 17:10:11 +00:00
David Shah
67e216f8fb
ecp5: Add support for promotion of LSRs to global network
...
Signed-off-by: David Shah <dave@ds0.me>
2019-11-19 14:08:35 +00:00
David Shah
04be9a71f9
ecp5: Add support for clock gating with DCCA
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-31 10:45:12 +01:00
Arnaud Durand
a26c9bb6d9
Rename clock restriction attribute to "noglobal"
2019-08-24 18:09:42 +02:00
Arnaud Durand
a947f09bfb
Restrict clock promotion to global
2019-08-22 00:43:03 +02:00
David Shah
661237eb64
ecp5: Add --out-of-context for building hard macros
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-07 14:22:47 +01:00
David Shah
ec48f8f464
ecp5: New Property interface
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-05 17:22:37 +01:00
David Shah
15a1d4f582
ecp5: Use an attribute to store is_global
...
Signed-off-by: David Shah <dave@ds0.me>
2019-06-07 11:55:20 +01:00
David Shah
4ec2bd1e5d
ecp5: Fix global clock routing with multiclock DPRAM
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
c01bb88509
ecp5: Add IOLOGIC timing and bitstream; ODDR working
...
Signed-off-by: David Shah <dave@ds0.me>
2018-12-14 16:40:38 +00:00
David Shah
5ddf99cf5d
ecp5: Pre-place PLLs and use dedicated routes into globals
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-30 16:09:56 +00:00
David Shah
084f9cf63f
ecp5: DCU clocking fixes
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
David Shah
0eba7d9789
ecp5: EXTREFB fixes
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
David Shah
37cbabecfb
ecp5: remove debug and clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
David Shah
4f8dfd8e1b
ecp5: Prefer DCCs with dedicated routing when placing DCCs
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-15 11:30:27 +00:00
David Shah
d3ad522bfe
ecp5: Copy clock constraints during global promotion
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-12 14:03:58 +00:00
David Shah
e005cc6754
ecp5: Add PLL support
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-31 19:52:41 +00:00
David Shah
24a2feda30
ecp5: Separate global promotion and routing
...
Signed-off-by: David Shah <dave@ds0.me>
2018-10-31 16:22:34 +00:00
David Shah
1fc2318c53
ecp5: Optimise DCC placement
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-14 13:22:47 +01:00
David Shah
8cbc92b7f3
ecp5: Small DRAM routing fixes
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-01 18:45:14 +01:00
David Shah
c8a9bb807c
ecp5: Debugging DRAM packing
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-10-01 17:45:35 +01:00
David Shah
0e0ad26f07
ecp5: Use ArchNetInfo to mark global nets to ignore
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 19:31:49 +01:00
David Shah
ab063b2456
clangformat
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 18:37:17 +01:00
David Shah
11cdc197bc
ecp5: Fix global buffer connectivity and timing
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 18:29:23 +01:00
David Shah
f46f205782
ecp5: Fix handling of global to fabric connections
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 18:06:08 +01:00
David Shah
5e46d1eb98
ecp5: Remove excessive debugging from global promoter
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 17:38:39 +01:00
David Shah
c2a062d254
ecp5: Fixing global to global user routing
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 17:13:50 +01:00
David Shah
9ff5d5a735
ecp5: Fixing global router bugs
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 17:01:19 +01:00
David Shah
2a0bb2be29
ecp5: Integrate global router and debug naming
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 16:49:29 +01:00
David Shah
4cd582478b
ecp5: Adding main global promoter/router function
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 16:37:18 +01:00
David Shah
f7a270a1d8
ecp5: Fix globals.cc following API update
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-29 16:15:17 +01:00