Keith Rothman
99e397000c
Add getBelHidden and add some missing "override" statements.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-11 14:58:02 -08:00
gatecat
11db5a2f1d
Add BaseArchRanges for default ArchRanges types
...
Signed-off-by: gatecat <gatecat@ds0.me>
2021-02-09 10:39:14 +00:00
gatecat
bcf81f0e71
Merge pull request #568 from YosysHQ/dave/arch-override
...
Create a new BaseArch that formally specifies the Arch API and provides some base implementations
2021-02-08 17:56:08 +00:00
D. Shah
0d444bfc6e
Use RelSlice::ssize instead of cast-to-int throughout
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-08 11:24:00 +00:00
D. Shah
efca63862c
Use 'T' postfix to disambiguate LHS and RHS of using
...
Arches might otherwise have range types named ambigiously with the entry
in ArchRanges.
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-08 10:29:50 +00:00
D. Shah
3e631fe2f4
Add archArgs and archArgsToId to Arch API
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 19:19:17 +00:00
D. Shah
b4227f586c
Rename ArchBase to BaseArch for consistency with BaseCtx
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 19:19:17 +00:00
D. Shah
297cd026b9
Add default implementation of bel bucket functions
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 19:19:17 +00:00
D. Shah
ed8e3c83d9
Add default implementation of some range-returning functions
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 19:19:17 +00:00
D. Shah
6d794abf49
Add a few more functions to ArchBase
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 19:19:17 +00:00
D. Shah
d4363b7ee5
ecp5: Use common wire/pip binding
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 19:19:17 +00:00
D. Shah
cfa9a9daec
nextpnr: Use templates to specify range types
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 19:19:17 +00:00
D. Shah
8f76af40db
nextpnr: Add base virtual functions for non-range Arch API
...
This makes the Arch API clearer and also allows a base implementation of
functions to reduce the amount of complexity to get a basic Arch up and
running.
Currently this only implements these for functions that don't return a
range. Range-returning functions will require more work in order due to
the current 'duck typing' approach (probably a struct that contains the
range types combined with templating.)
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 19:19:17 +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
d792bce0fb
ecp5: Implement IdStringList for all arch object names
...
This is a complete implementation of IdStringList for ECP5; excluding
the GUI (which you will have to disable for it to build).
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 17:00:32 +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
D. Shah
ff92d19fed
arch: Add getNameDelimiter API for string lists
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 16:59:40 +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
71e210dd4b
Refactor ECP5 to new Partition API.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:34:56 -08:00
Keith Rothman
2285c8dbbd
Initial refactoring of placer API.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-02 07:34:56 -08:00
D. Shah
75ee2fc4e6
Move RelPtr/RelSlice out of arches into common
...
The bba approach seems widely used enough that it's reasonable for this
to become part of common code.
Signed-off-by: D. Shah <dave@ds0.me>
2021-01-27 20:43:01 +00:00
D. Shah
3fc5455ec5
ecp5: 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 19:39:19 +00:00
David Shah
8686b6dada
RelPtr: remove copy constructor and copy assignment
...
These operations are meaningless for a data structure that references
another structure relative to its location.
Signed-off-by: David Shah <dave@ds0.me>
2020-11-13 20:19:53 +00:00
David Shah
b18ea204c2
Remove wire alias API
...
It has not actually been implemented in any router for over 2.5 years and causes nothing more than confusion. It can always be added back if it forms part of a future solution; possibly as part of a more general database structure rethink.
Signed-off-by: David Shah <dave@ds0.me>
2020-10-15 09:36:15 +01:00
David Shah
2c4ae853f2
ecp5: Fix getTileBelDimZ
...
Signed-off-by: David Shah <dave@ds0.me>
2020-06-29 19:52:31 +01:00
whitequark
89e0cc8078
Simplify and improve chipdb embedding/loading.
2020-06-26 08:36:07 +00:00
whitequark
1dc1164dce
CMake: rewrite chipdb handling from ground up.
2020-06-25 14:03:37 +00:00
David Shah
3b49c20f43
ecp5: Proper support for '12k' device
...
Signed-off-by: David Shah <dave@ds0.me>
2020-03-13 11:22:11 +00:00
David Shah
7123209324
Allow selection of router algorithm
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:54:38 +00:00
David Shah
abdaa9c8a1
ecp5: Router2 test integration
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 11:38:30 +00:00
Miodrag Milanovic
796d648995
Merge remote-tracking branch 'origin/master' into mmicko/ecp5_gui
2019-12-28 13:54:06 +01:00
David Shah
1c1c096861
ecp5: Fix 25k DDRDLLA bitstream gen
...
Signed-off-by: David Shah <dave@ds0.me>
2019-11-29 10:56:04 +00:00
David Shah
475fcd4425
ecp5: Add an error for out-of-sync constids and bba
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-26 20:38:28 +01:00
David Shah
36c07a0f45
ecp5: Fix routing to shared DSP control inputs
...
Signed-off-by: David Shah <dave@ds0.me>
2019-10-25 09:37:13 +01:00
Miodrag Milanovic
a11cc8791b
set wire active flag
2019-10-20 09:41:48 +02:00
Miodrag Milanovic
f7a6d4dc06
Start adding visible wires
2019-10-20 09:41:48 +02:00
Miodrag Milanovic
eafc0e4e9e
Added type to wire
2019-10-20 09:41:48 +02:00
Miodrag Milanovic
bfbb6dbf69
Draw swbox, smaller slices, proper io
2019-10-20 09:41:30 +02:00
David Shah
9f9920f92b
ecp5: Add full part name to bitstream header
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-27 14:36:20 +01:00
David Shah
78f86ce67a
ecp5: Add GSR/SGSR support
...
Signed-off-by: David Shah <dave@ds0.me>
2019-08-27 13:14:41 +01:00
David Shah
df8688c227
ecp5: Delay tweaking for lower speed grades
...
Signed-off-by: David Shah <dave@ds0.me>
2019-06-21 10:55:23 +01:00
David Shah
02ae21d8fc
Add --placer option and refactor placer selection
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-24 11:10:20 +00:00
David Shah
23f2fff1c8
clangformat
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:39:05 +00:00
David Shah
fcc3bb1495
ecp5: Speedup cell delay lookups
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah
a2d906a3fd
ecp5: Increase ripup penalty
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 18:08:26 +00:00
David Shah
a0fa164399
ecp5: Add criticality-based LUT permutation
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
f363dd2d3c
ecp5: Delay tuning
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
55b0b60d9d
ecp5: Router performance improvements
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-25 11:49:25 +00:00
David Shah
63e1f02c65
ecp5: Helper functions for DQS and ECLK
...
Signed-off-by: David Shah <dave@ds0.me>
2019-02-24 10:28:25 +01:00