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
6575bfac3e
gowin: Switch to BaseArch
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 19:19:17 +00:00
D. Shah
c7ef7e1902
generic: Base upon ArchAPI
...
As generic is often picked as our 'odd-one-out' we also use it as an
example of an Arch that does not build upon BaseArch.
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 19:19:17 +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
D. Shah
59c3db46ca
ice40: Switch to BaseArch
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 19:19:17 +00:00
D. Shah
a8a27299ae
Add pure-virtual ArchAPI interface
...
This splits out the pure-virtual definition of the architecture API into
ArchAPI; leaving BaseArch to only provide default implementations (which
can now be completely opted out of by deriving from ArchAPI instead of
BaseArch).
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
b866601b63
Fix now-illegal use of reinterpret_cast
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 19:19:17 +00:00
D. Shah
ba5568d501
nextpnr: Example of shared wire/bel/pip binding code
...
Currently not actually being tested
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
David Shah
8b4163b77c
Merge pull request #567 from litghost/initial_fpga_interchange
...
Initial FPGA interchange arch
2021-02-05 19:15:29 +00:00
Keith Rothman
a0ee42833b
Add RelSlice::ssize and use it when comparing with signed ints.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-05 10:12:13 -08:00
Keith Rothman
9557047e5e
Move all string data into BBA file.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-05 09:22:55 -08:00
David Shah
b0f9b7834e
Merge pull request #570 from litghost/make_id_string_list_explicit
...
Mark IdString and IdStringList single argument constructors explicit.
2021-02-05 11:32:09 +00:00
D. Shah
450bfae86c
generic: Fix pin names accidentally being IdStringList not IdString
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-05 10:43:35 +00:00
Keith Rothman
ca32e935a6
Use RelSlice instead of RelPtr in cases where sizes are present.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:34 -08:00
Keith Rothman
f1ee2fde58
Update APIs to conform to style guide.
...
- Change non-Arch methods to snake_case
- Adds some utility functions to for accessing bel_data.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:34 -08:00
Keith Rothman
9afa8a9bea
Remove unused method getReservedWireNet.
...
This was a holdover from the nextpnr-xilinx arch.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
22c3c9c303
Update copywrite headers.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
58c90184f6
Correct some typos.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
d8fa9d7f36
Fix warnings with signed/unsigned.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
d4f66a73c1
Fix fpga_interchange/README.md duplicate patch statement.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
90ece77f8d
Fix URLs in Markdown.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
dc47c6d9ec
Add empty constids.inc for build.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
0b911e484c
Run "make clangformat".
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
149087b880
Add README about initial state of FPGA interchange implementation.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
78737ab01d
Update FPGA interchange to use IdStringList.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
083f6afb1c
Add initial GUI files.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
4a62c8c2eb
Start adding data for placement constraint solving.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
5c16c5024d
Debug BEL bucket data.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
cd41c4001e
Add initial updates to FPGA interchange arch for BEL buckets.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
67dc19bb57
Address review comments.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
5a89dc58e1
Fix BBA import bugs.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
1dd24f6461
Assorted fixes to new FPGA interchange based arch.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:33 -08:00
Keith Rothman
6e68e8f097
Initial compiling version.
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:32 -08:00
Keith Rothman
561b519716
Initial FPGA interchange (which is just a cut-down xilinx arch).
...
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-04 16:38:32 -08: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
David Shah
40d026e6fc
Merge pull request #566 from litghost/use_lru_cache
...
Use a LRU cache for pip to wire map.
2021-02-04 10:18:55 +00:00
Keith Rothman
235a8e07e3
Use a LRU cache for pip to wire map.
...
This avoids storing the entire pip to wire map in memory with a moderate
runtime increase and a dramatic memory decrease (2 GB to 200 MB for
A50T).
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-02-03 13:45:47 -08:00
David Shah
155e0b9c42
Merge pull request #565 from YosysHQ/dave/snakecase
...
Use snake case consistently for non-Arch-API functions
2021-02-03 19:55:32 +00:00
D. Shah
0865198a9e
Update coding.md
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-03 10:53:15 +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
a09a62bc4a
ice40: 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:46:12 +00:00
David Shah
9a79163eab
Merge pull request #561 from YosysHQ/dave/idstringlist
...
Use IdStringList for bel/wire/pip/group names
2021-02-03 09:48:07 +00:00