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
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
D. Shah
b31b21fd51
ice40: Implement IdStringList for all arch object names
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 17:00:33 +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
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
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
94e8847d67
cleanup: Spelling fixes
...
Signed-off-by: D. Shah <dave@ds0.me>
2021-01-28 15:19:06 +00: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
c10238de8c
ice40: 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 18:35:49 +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
Miodrag Milanovic
32ddc94b4f
Support rest of parts
2020-07-08 14:09:44 +02:00
Miodrag Milanovic
6991a53d68
Adding LP4K as well
2020-07-08 13:44:13 +02:00
Miodrag Milanovic
3be76a837d
Support 4K parts directly
2020-07-08 13:22:59 +02: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
ce144addb3
ice40: Implement getRouteBoundingBox for router2
...
Signed-off-by: David Shah <dave@ds0.me>
2020-02-03 12:00:05 +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
02ae21d8fc
Add --placer option and refactor placer selection
...
Signed-off-by: David Shah <dave@ds0.me>
2019-03-24 11:10:20 +00:00
Simon Schubert
7044f56246
ice40: support u4k
2019-02-23 17:39:20 +01:00
Miodrag Milanovic
73f200fe74
Load chipdb from filesystem as option
2019-02-09 13:34:57 +01:00
David Shah
cc53c312de
timing: Path related fixes
...
Signed-off-by: David Shah <dave@ds0.me>
2019-01-27 16:45:37 +00:00
Sylvain Munaut
a79f0db749
ice40: Add helper to know which global network is driven by a SB_GB Bel
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2018-11-26 12:51:14 +01:00
Sylvain Munaut
3f4dc7c80e
ice40: Add GlobalNetowkrInfo in the chip database
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2018-11-19 18:20:20 +01:00
Sylvain Munaut
b29165eeba
ice40/arch: Add helper to check if a BEL is LOCKED or not
...
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2018-11-19 18:20:20 +01:00
Eddie Hung
c5ba77e06b
Merge remote-tracking branch 'origin/master' into timingapi
2018-11-13 13:47:37 -08:00
Eddie Hung
51a2894762
[ice40] getBudgetOverride() to use constrained Z not placed Z
2018-11-13 12:51:46 -08:00
Eddie Hung
2d39cde17b
Merge remote-tracking branch 'origin/master' into timingapi
2018-11-13 12:12:11 -08:00
Eddie Hung
3b2b15dc4a
Merge pull request #107 from YosysHQ/router_improve
...
Major rewrite of "router1"
2018-11-13 11:39:51 -08:00
David Shah
07e265868b
archapi: Add getDelayFromNS to improve timing algorithm portability
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-12 14:03:58 +00:00
David Shah
122771cac3
timing: iCE40 Arch API changes for clocking info
...
Signed-off-by: David Shah <dave@ds0.me>
2018-11-12 14:03:58 +00:00
Clifford Wolf
6002a0a80a
clangformat
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-11-11 19:48:15 +01:00
Clifford Wolf
f93129634b
Add getConflictingWireWire() arch API, streamline getConflictingXY semantic
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-11-11 17:28:41 +01:00
Clifford Wolf
d2bdb670c0
Add getConflictingPipWire() arch API, router1 improvements
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-11-11 11:34:38 +01:00
Miodrag Milanovic
4c0db11608
fix grid dimensions for ice40
2018-10-27 12:02:01 +02:00
David Shah
ea03aafc26
clangformat
...
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 15:13:18 +01:00
Clifford Wolf
7cdafb8121
Add iCE40 gfx for span-4 wires between IO tiles
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-19 16:31:02 +02:00
Clifford Wolf
26be6f9761
Merge pull request #47 from YosysHQ/settings_propagate
...
Use settings for placer1 and router1
2018-08-18 19:25:19 +02:00
Clifford Wolf
456a83430a
Improve iCE40 gfx for IO tiles and RAM tiles
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-18 16:20:33 +02:00
Clifford Wolf
5500cf3aff
Add ice40 wire attributes (grid position, segment list)
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-18 14:14:27 +02:00
Clifford Wolf
428f0b9eba
Add Arch attrs API
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-14 17:16:14 +02:00
Eddie Hung
fc0496ec71
Merge remote-tracking branch 'origin/master' into placer_speedup
2018-08-10 19:51:35 -07:00
Eddie Hung
a41500a015
Rework Arch::logicCellsCompatible() to take pointer + size, allowing use of std::array
2018-08-10 19:50:27 -07:00
Miodrag Milanovic
93a0d24560
Use settings for placer1 and router1
2018-08-09 18:39:10 +02:00
Clifford Wolf
5ddde5c49f
Add pip locations
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-09 10:39:53 +02:00
Clifford Wolf
f6189e4677
Merge branch 'master' of github.com:YosysHQ/nextpnr into constids
2018-08-08 19:35:13 +02:00
David Shah
cd4e761bb7
Merge pull request #44 from YosysHQ/improve_timing_spec
...
Speed up budget allocator using topographical ordering and update cell timing API
2018-08-08 19:23:47 +02:00
Clifford Wolf
f875a37467
Get rid of old iCE40 id_ Arch members
...
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-08 17:17:16 +02:00