Commit Graph

483 Commits

Author SHA1 Message Date
Clifford Wolf
90fe002a36 Remove getBelsByType() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-23 13:16:27 +02:00
David Shah
bfa1137fe0 clangformat
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-23 13:02:57 +02:00
Clifford Wolf
27c5236826 Add getGridDimX(), getGridDimY(), getTileDimZ() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-23 12:19:54 +02:00
Clifford Wolf
3788bd26e6 Bugfix in iCE40 chipdb.py
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-23 00:25:49 +02:00
Miodrag Milanovic
b9c413a5aa Move to new API and remove deprecated 2018-07-22 19:58:17 +02:00
Clifford Wolf
e13fc7edab Add Arch::getBelPins() to generic and iCE40 archs
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-22 12:08:52 +02:00
Clifford Wolf
b60c9485d2 Add Arch::getBelPinType() and Arch::getWireBelPins() in iCE40 arch
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-22 11:56:51 +02:00
Clifford Wolf
62b66e0208 Rename getWireBelPin to getBelPinWire
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-22 10:59:21 +02:00
Clifford Wolf
1e96999863 clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-22 00:50:49 +02:00
Clifford Wolf
9e6deed3b8 Merge branch 'q3k/lock-2-electric-boogaloo' into 'master'
Basic locking and threading for Arch/GUI

See merge request SymbioticEDA/nextpnr!10
2018-07-21 19:45:24 +00:00
Clifford Wolf
30e2f0e1e8 Add Loc constructors
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 21:40:06 +02:00
Sergiusz Bazanski
6588aafdb8 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/lock-2-electric-boogaloo 2018-07-21 20:00:42 +01:00
Miodrag Milanovic
f438fc615b Added driver and users for nets 2018-07-21 20:21:48 +02:00
Clifford Wolf
39b843ecac Merge branch 'router1ng' into 'master'
Router1ng

See merge request SymbioticEDA/nextpnr!13
2018-07-21 17:59:44 +00:00
Miodrag Milanovic
3175891cb5 Map ports to nets 2018-07-21 19:48:00 +02:00
Miodrag Milanovic
57c63e6921 create io cells out of asc 2018-07-21 17:54:35 +02:00
Miodrag Milanovic
912a79dc33 add cells that are in default state or no configuration 2018-07-21 17:38:22 +02:00
Miodrag Milanovic
7beb4739d4 Add used cells and attach them to bels 2018-07-21 17:04:47 +02:00
Clifford Wolf
41194d934b Refactoring of router1
- Use source-sink pairs as jobs, not whole nets
- Route nets with smallest slack first
- Preserve routes for already routed source-sink pairs
- Add small incentive for re-using wires

Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 17:02:53 +02:00
Miodrag Milanovic
13339c0355 Assign proper pips 2018-07-21 15:08:49 +02:00
Miodrag Milanovic
3afcd812c9 add only missing net 2018-07-21 14:41:04 +02:00
Clifford Wolf
78f40ca0af Change DelayInfo semantics to what we actually need
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 13:52:59 +02:00
Clifford Wolf
c556242976 Add getWireDelay API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-21 13:38:44 +02:00
Miodrag Milanovic
09a68affa3 Fix warnings and status 2018-07-21 12:22:41 +02:00
Miodrag Milanovic
fe239366b5 Made save project work as well 2018-07-21 12:15:50 +02:00
Miodrag Milanovic
20941292ad fix introduced bug 2018-07-21 09:22:09 +02:00
Sergiusz Bazanski
be14e161ae Re-enable drawing Pips. 2018-07-20 18:35:42 +01:00
Sergiusz Bazanski
5d0dbe9db9 clang-format 2018-07-20 18:24:34 +01:00
Sergiusz Bazanski
76e5236fb3 Nuke IdStringDB 2018-07-20 18:24:16 +01:00
Miodrag Milanovic
34ec70e88b Bind wires to net 2018-07-20 18:42:27 +02:00
Clifford Wolf
fd8239e170 Add Location APIs to generic arch
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-20 18:09:22 +02:00
Clifford Wolf
f6fa0300ae Improve iCE40 and common Loc code
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-20 17:33:57 +02:00
Clifford Wolf
e16b4a325e Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into gridapi 2018-07-20 17:13:26 +02:00
Miodrag Milanovic
6c835d76f2 Few more checks on parameters and error eol 2018-07-20 14:06:53 +02:00
Miodrag Milanovic
53034959f3 Start adding bitstream reading for ice40 2018-07-20 13:27:21 +02:00
Sergiusz Bazanski
55d5f8f248 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/lock-2-electric-boogaloo 2018-07-20 10:59:33 +01:00
David Shah
3bad9c26cf ice40: Optimise reset/enable net checking
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-20 11:36:32 +02:00
David Shah
79dc910b40 ice40: Trim DSP inputs that are constant where appropriate
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 14:32:30 +02:00
David Shah
bff7d673ed ice40: Packer and bitstream gen support for MAC16s
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 14:03:48 +02:00
David Shah
6c38df7295 ice40: Adding cell definition for DSPs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 13:22:46 +02:00
David Shah
0cb9ec0757 ice40: Add virtual padin wires for intoscs and GB_IOs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 12:04:35 +02:00
David Shah
d221e90706 Reducing performance cost of asserts
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 11:43:10 +02:00
David Shah
b0d9b994eb ice40: Adding data for extra cell configuration
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-19 11:14:43 +02:00
David Shah
08ceb8a059 ice40: Renaming
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-18 14:34:32 +02:00
David Shah
ddd94edfe0 ice40: Fixes for inverted clocks
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-18 14:01:19 +02:00
Clifford Wolf
acdaec249a Cleanups in iCE40 blinky and picorv32 tests
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-18 13:46:00 +02:00
David Shah
d392b5f635 ice40: Use xArchArgs in validity check
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-18 12:51:07 +02:00
David Shah
70cfa7a6a4 ice40: Make assignArchArgs a Arch method; call also after legaliser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-18 12:21:02 +02:00
David Shah
c75a924c3f ice40: Assign ArchArgs after packing
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-18 12:12:05 +02:00
Serge Bazanski
03508faabf WIP. 2018-07-17 19:16:26 +01:00
Clifford Wolf
ddfc535df7 Add ArchNetInfo and ArchCellInfo
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-17 20:04:49 +02:00
Serge Bazanski
498bef3f3e Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/lock-2-electric-boogaloo 2018-07-17 16:03:48 +01:00
Clifford Wolf
c0f1af87f6 Add Loc struct for x/y/z bel locations
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-17 17:03:44 +02:00
David Shah
56fa8cc669 refactor: Remove incorrect uses of the term 'wirelength'
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-16 17:13:40 +02:00
Serge Bazanski
f3c6c76fff Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/lock-2-electric-boogaloo 2018-07-15 21:57:42 +01:00
Clifford Wolf
5531546d6b Remove pip names from ice40 chip db to safe memory
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-15 21:41:34 +02:00
Clifford Wolf
164bd28348 Add iCE40 Pip gfx
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-15 20:29:32 +02:00
Serge Bazanski
59a790cd00 Refactor IdString functionality into IdStringDB
This lets us more precisely control the lifetime of IdString databases
in contexts/arches.
2018-07-14 20:24:20 +01:00
Sergiusz Bazanski
eafb9b4281 Fix revert issues. 2018-07-14 19:02:52 +01:00
Sergiusz Bazanski
d327a0afbb Revert "Make ice40::Arch thread-safe"
This reverts commit 0816f447b7.
2018-07-14 19:01:33 +01:00
Sergiusz Bazanski
57f75385b0 Revert "Make PnR use Unlocked methods"
This reverts commit 9e4f97290a.
2018-07-14 18:53:08 +01:00
Sergiusz Bazanski
447ed83638 Revert "Introduce proxies for locked access to ctx"
This reverts commit 89809a8b81.
2018-07-14 18:52:56 +01:00
Sergiusz Bazanski
09ca9ea39e Revert "Comment arch.h"
This reverts commit dc3256e62f.
2018-07-14 18:50:58 +01:00
Sergiusz Bazanski
89b9d6bc8a Revert "Slight simplification of proxy code"
This reverts commit a71b576de6.
2018-07-14 18:50:54 +01:00
Sergiusz Bazanski
36b4e3382d Revert "Make GUI nice and smooth."
This reverts commit a8c84e90a3.
2018-07-14 18:50:50 +01:00
Sergiusz Bazanski
b0c05c7f75 Revert "Refactor proxies to nextpnr."
This reverts commit 9b17fe385c.
2018-07-14 18:50:37 +01:00
Sergiusz Bazanski
d9c3c117a3 Revert "clang-format"
This reverts commit 8ca7a6da25.
2018-07-14 18:50:34 +01:00
Sergiusz Bazanski
d4a0feb1ad Revert "Add read/mutate context stubs for ECP5"
This reverts commit f333a68753.
2018-07-14 18:50:29 +01:00
Sergiusz Bazanski
ade67ecf21 Revert "Move read methods to ReadMethods, remove some legacy access to Arch"
This reverts commit 3352ff4abb.
2018-07-14 18:50:23 +01:00
Sergiusz Bazanski
2233040201 Revert "Remove legacy access to state via Arch"
This reverts commit 18b4b31678.
2018-07-14 18:50:15 +01:00
Sergiusz Bazanski
339198b394 Revert "Remove unimplemented pybindings (for now)"
This reverts commit 53393b993f.
2018-07-14 18:50:07 +01:00
Sergiusz Bazanski
9c013ce74c Revert "Undo accidental picorv32.sh commit"
This reverts commit 98c5948856.
2018-07-14 18:50:01 +01:00
Sergiusz Bazanski
98c5948856 Undo accidental picorv32.sh commit 2018-07-14 12:14:30 +01:00
Sergiusz Bazanski
53393b993f Remove unimplemented pybindings (for now)
We need to re-jigger the template magic in common/pywrappers.h to be
proxy context aware.
2018-07-14 12:11:20 +01:00
Sergiusz Bazanski
18b4b31678 Remove legacy access to state via Arch 2018-07-14 12:02:28 +01:00
Sergiusz Bazanski
3352ff4abb Move read methods to ReadMethods, remove some legacy access to Arch 2018-07-14 11:46:32 +01:00
Sergiusz Bazanski
f333a68753 Add read/mutate context stubs for ECP5 2018-07-14 11:25:38 +01:00
Sergiusz Bazanski
8ca7a6da25 clang-format 2018-07-14 11:10:59 +01:00
Sergiusz Bazanski
9b17fe385c Refactor proxies to nextpnr. 2018-07-14 11:10:31 +01:00
Sergiusz Bazanski
a8c84e90a3 Make GUI nice and smooth. 2018-07-13 20:53:52 +01:00
Sergiusz Bazanski
a71b576de6 Slight simplification of proxy code 2018-07-13 19:45:35 +01:00
Sergiusz Bazanski
dc3256e62f Comment arch.h 2018-07-13 19:22:39 +01:00
Sergiusz Bazanski
b8ca1a5582 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/lock-the-things 2018-07-13 19:10:27 +01:00
Sergiusz Bazanski
89809a8b81 Introduce proxies for locked access to ctx 2018-07-13 18:58:59 +01:00
Clifford Wolf
013cfebcc5 Improve handling of iCE40 BRAM bels
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-13 16:22:28 +02:00
Clifford Wolf
0f736f551c Fix iCE40 wire gfx decals
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-13 16:15:15 +02:00
Sergiusz Bazanski
9e4f97290a Make PnR use Unlocked methods 2018-07-13 14:50:58 +01:00
Clifford Wolf
44663fa589 Fix ice40 gfx wire indices
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-13 15:44:39 +02:00
Clifford Wolf
c05bea12e0 Add ctx->pack() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-13 15:16:44 +02:00
Clifford Wolf
45462ef3a7 Fix Ui/Decal handling of active/inactive arch objects
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-13 14:29:03 +02:00
Sergiusz Bazanski
0816f447b7 Make ice40::Arch thread-safe
We move all non-chip data to be private and guard them with an R/W
mutex.

We then modify all calls that access these fields to lock/shared_lock
the mutex as required.

Profiling the code before and after is an exercise left to the reader
:).
2018-07-13 12:35:39 +01:00
David Shah
e9668ed618 Fixing hash link problem
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-13 12:42:04 +02:00
Miodrag Milanovic
b5498c8a53 Fixed initial title and actions after new 2018-07-13 12:02:49 +02:00
Miodrag Milanovic
8e54ac1542 Use command line parameters settings for GUI as well. 2018-07-13 09:14:48 +02:00
Sergiusz Bazanski
499951cb65 Remove legacy graphics API
For now we do not optimize the OpenGL renderer against the new decal
API, but this can be done in the future.
2018-07-12 21:30:36 +01:00
Clifford Wolf
b8a42ff53b Updates from clang-format
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-12 22:04:13 +02:00
Clifford Wolf
ad60ab2ef1 Fix ice40 wire segments in lutff complex
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-12 21:46:16 +02:00
Clifford Wolf
4f87ea0eb6 Improve iCE40 wire database and gfx
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-12 21:05:09 +02:00
Clifford Wolf
a436035424 Add Groups API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-12 17:22:29 +02:00
Clifford Wolf
33e592e55e Add missing wires to ice40 gfx
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-11 19:02:30 +02:00