Commit Graph

710 Commits

Author SHA1 Message Date
Eddie Hung
2d75053744 Merge remote-tracking branch 'origin/estdelay' into redist_slack
Conflicts:
	ecp5/arch.cc
	generic/arch.cc
	ice40/arch.cc
2018-07-31 16:18:08 -07:00
Eddie Hung
70747b9355 Merge branch 'redist_slack' into 'redist_slack'
# Conflicts:
#   common/timing.cc
2018-07-31 17:51:56 +00:00
Clifford Wolf
41726087b7 getChipName() should be const
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-31 17:01:38 +02:00
Clifford Wolf
2652485a01 Use icestorm timing information
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-31 16:43:19 +02:00
Clifford Wolf
32ff0059fe Add binary search to getBelPinWire() and getBelPinType()
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-31 11:55:25 +02:00
Eddie Hung
07e2c9ba99 assign_budget() after initial placement, not after pack 2018-07-30 22:20:49 -07:00
Eddie Hung
a82f6f4105 Modify predictDelay signature 2018-07-30 21:51:30 -07:00
Eddie Hung
a099aca3c2 Modify predictDelay signature 2018-07-30 19:19:30 -07:00
Eddie Hung
d5049bf0ed Merge remote-tracking branch 'origin/estdelay' into redist_slack 2018-07-30 18:59:04 -07:00
Eddie Hung
46b7469652 Merge remote-tracking branch 'origin/master' into redist_slack 2018-07-30 18:14:40 -07:00
Clifford Wolf
b121008372 Towards better ice40 timing data
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 17:17:07 +02:00
David Shah
b09183db3b Use DelayInfo for cell timing instead of delay_t
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-30 16:59:30 +02:00
David Shah
84e0082925 cmake: Set --fast and --slow chipdb.py arguments
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-30 16:40:56 +02:00
Clifford Wolf
3d8b0087c3 Add ice40 chipdb.py --fast/--slow
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 16:36:34 +02:00
Clifford Wolf
8f9b031ef0 Add iCE40 fast/slow delay fields to chipdb
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 16:21:20 +02:00
David Shah
267970c01e ice40: Improving legalisation move statistics
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-30 16:18:49 +02:00
David Shah
edc6cf8b23 ice40: Print legalisation statistics
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-30 16:13:02 +02:00
Clifford Wolf
0daffec2a0 Add predictDelay Arch API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 15:35:40 +02:00
Clifford Wolf
0db86b8619 Improve ice40/benchmark
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-30 13:57:14 +02:00
Eddie Hung
beabb429b0 clangformat 2018-07-28 14:11:43 -07:00
Eddie Hung
02b3bda7f6 ice40 estimateDelay to account for out/in muxes 2018-07-27 19:52:45 -07:00
Eddie Hung
cd561b4316 getBudgetOverride() now handles COUT crossing tiles 2018-07-26 22:30:15 -07:00
Eddie Hung
97e546041e Revert "Remove Arch::getBudgetOverride()"
This reverts commit 749dae4ae5.
2018-07-26 21:37:19 -07:00
Eddie Hung
d5c2332ebf Merge remote-tracking branch 'origin/master' into redist_slack 2018-07-26 21:00:26 -07:00
Sergiusz Bazanski
c37d2baaf6 common: rename GraphicElement::{style,type} enums, add _MAX members 2018-07-26 16:39:19 +01:00
Clifford Wolf
03f92948d1 clangformat and GraphicElement::style comments
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-26 17:14:56 +02:00
Clifford Wolf
467e0926f9 Add getWireType()/getPipType() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-26 16:38:11 +02:00
Clifford Wolf
6a59b8522c Move iCE40 switchbox gfx to UI groups
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-26 16:21:01 +02:00
Clifford Wolf
7152ae1e3d Add iCE40 pip gfx for carry_in mux
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-26 15:42:32 +02:00
Clifford Wolf
a86c4f2f5d Improvements in bbasm
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-26 15:22:52 +02:00
Eddie Hung
749dae4ae5 Remove Arch::getBudgetOverride() 2018-07-25 23:02:31 -07:00
Eddie Hung
e2f8deec41 clangformat 2018-07-25 18:22:23 -07:00
Eddie Hung
a21cc4dd5b Merge remote-tracking branch 'origin/master' into redist_slack 2018-07-25 17:55:20 -07:00
Eddie Hung
950f33c1bb clangformat 2018-07-25 17:53:01 -07:00
Eddie Hung
e6015dc695 Merge remote-tracking branch 'origin/master' into eddieh/idstring_speedup 2018-07-25 17:51:47 -07:00
Eddie Hung
7c8c13aba1 Merge remote-tracking branch 'origin/master' into redist_slack 2018-07-25 17:41:23 -07:00
Clifford Wolf
a8001daf6f Add ice40/benchmark/report.ipynb
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-25 16:26:08 +02:00
Clifford Wolf
cc6e0e7df3 More minor ice40 benchmark improvements
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-25 15:51:19 +02:00
David Shah
1529fbe58c ice40: Tweaking picorv32_benchmark.py
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-25 15:49:43 +02:00
Clifford Wolf
6ea898855c Minor improvements in iCE40 benchmark scripts
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-25 14:02:22 +02:00
Clifford Wolf
5db4a3e8b0 Add ice40/benchmark/
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-25 13:28:12 +02:00
Clifford Wolf
f3dab003e7 Merge branch 'bba' into 'master'
bbasm

See merge request SymbioticEDA/nextpnr!18
2018-07-25 11:07:51 +00:00
Sergiusz Bazanski
2c34a50a7c ice40: after review 2018-07-25 12:01:51 +01:00
Sergiusz Bazanski
db4f2d2318 ice40: check PLL PACKAGEPIN drives only PLL, cosmetics 2018-07-25 11:47:24 +01:00
Sergiusz Bazanski
14a501969a Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/pll-pads 2018-07-25 11:32:45 +01:00
Sergiusz Bazanski
c554ab1ef0 clang-format 2018-07-25 11:32:40 +01:00
Sergiusz Bazanski
aad0d3eb35 ice40: support PLL40_*_PAD, fix pass-through LUT for LOCK 2018-07-25 11:32:21 +01:00
Miodrag Milanovic
6ac2a4de48 proper options for linux build 2018-07-25 12:13:06 +02:00
David Shah
e39290b712 Add a simple 8x benchmark script
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-25 10:48:24 +02:00
Eddie Hung
c71212d0e1 If --freq not set, attempt to find max by adjusting budget so min path slack == 0 2018-07-24 23:19:24 -07:00
Eddie Hung
9382938661 Merge branch 'master' into redist_slack 2018-07-24 22:20:10 -07:00
Eddie Hung
879f0d7c57 Reduce id() lookups for commonly used update_budget() 2018-07-24 21:21:11 -07:00
Clifford Wolf
c3859072d4 Use bbasm to create iCE40 chipdb
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-24 21:10:42 +02:00
Sergiusz Bazanski
2039112a47 ice40: after review 2018-07-24 15:59:18 +01:00
Sergiusz Bazanski
b31e95f82c Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/pll 2018-07-24 15:54:03 +01:00
David Shah
974ca143e8 Remove implementations of deprecated APIs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 16:09:29 +02:00
David Shah
5a170f286c ice40: Remove use of deprecated APIs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 15:52:56 +02:00
Clifford Wolf
c0c8dc7602 Remove uphill/downhill bel pins from ice40 db
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-24 15:44:39 +02:00
David Shah
942c552e07 Add bbasm target, use as passthru in iCE40 builder
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 15:31:00 +02:00
Clifford Wolf
9d38907e95 Add G_ARROW (for now same look as G_LINE)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-24 12:18:01 +02:00
David Shah
7858663aa7 timing: Model clock to Q times
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 11:46:14 +02:00
David Shah
4359197dfe ice40: Trim BRAM constant inputs, reduces routing congestion around BRAM
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 11:21:10 +02:00
David Shah
a09f95bb06 ice40: Fix SPRAM and other primitives in corners other than (0, 0)
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-24 11:16:33 +02:00
Sergiusz Bazanski
90ba958abe ice40: fixes before review 2018-07-24 03:19:22 +01:00
Sergiusz Bazanski
eaae1d299c ice40: move PLL->IO from pseudo pip to second uphill bel 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
65ceb20784 ice40: emit list of upbels in chipdb 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
fae7994bc3 clang-format 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
dbf79d78bb ice40: A slightly nicer way to do this. 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
065ea95eab ice40: Move spliceLUT back to pack.cc 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
1d3147e26a ice40: Prevent placement of SB_IOs in IO blocks used by PLL outputs 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
e6c7b14465 ice40: Refactor PLL/LOCK LUT splicing out into Arch:: 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
69233385f8 ice40: Emit feed-through LUTs for PLL/LOCK 2018-07-24 02:55:40 +01:00
Sergiusz Bazanski
db31c0625b ice40: Fail early on SB_PLL40_*_PAD cells 2018-07-24 02:55:38 +01:00
Sergiusz Bazanski
2b1f7875bb ice40: Implement emitting PLLs 2018-07-24 02:38:10 +01:00
Eddie Hung
771edd1fda Merge branch 'master' into redist_slack 2018-07-23 07:16:39 -07:00
Clifford Wolf
e647604e2a Add Context::archcheck() and "nextpnr-ice40 --test"
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-23 14:03:23 +02:00
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
Eddie Hung
926c186ec7 Add Arch::getBudgetOverride() to eliminate hack for COUT 2018-07-21 13:05:09 -07: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
Clifford Wolf
6ffae27aa1 Deterministic chipdb blobs
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-11 18:36:15 +02:00
Clifford Wolf
7daa8524c8 Add ctx->place() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-11 18:15:08 +02:00
Clifford Wolf
7df67c91b3 Add ctx->route() API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-11 18:04:09 +02:00
Clifford Wolf
e9b27860da Unflip iCE40 tile graphics
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-11 17:40:02 +02:00
Clifford Wolf
2a01b5e4d3 New refreshUi API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-11 17:02:13 +02:00
Clifford Wolf
ce6afb5f7f Merge branch 'ice40gfx' into 'master'
Ice40gfx

See merge request SymbioticEDA/nextpnr!7
2018-07-11 12:04:53 +00:00
Clifford Wolf
7081cca016 Add GUI Decals API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-11 14:03:23 +02:00
David Shah
c4af52dd5b ecp5: Working on arch implementation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-11 10:41:36 +02:00
Clifford Wolf
87d88048ac Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into ice40gfx 2018-07-10 15:11:35 +02:00
Clifford Wolf
841714a3d6 Improve ic40 gfx
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-10 15:09:11 +02:00
Miodrag Milanovic
bfc47e9cd4 Added ICE40_HX1K_ONLY check in gui and main 2018-07-10 13:58:20 +02:00
Clifford Wolf
46d28551fc Add ice40 LC output gfx
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-09 17:13:26 +02:00
David Shah
132c5b5019 Make logic cell positioning a constant
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-09 17:00:54 +02:00
David Shah
b5cf1c8257 Adding all LUT input wires
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-09 16:52:03 +02:00
David Shah
c921e4f24b Add constants for switchbox locations
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-09 16:50:01 +02:00
David Shah
c6043ed570 Reorder gfx.h, add LUT0 inputs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-09 16:42:30 +02:00
Clifford Wolf
ba6f3b45b8 Add ice40 gfx right vertical span-4
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-09 16:39:18 +02:00
Clifford Wolf
4576fc7c20 Vertical wires and span-12 wires
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-09 16:12:41 +02:00
David Shah
5b6fa934d8 Make LCs smaller and move them down
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-09 16:07:16 +02:00
David Shah
953560ae17 Add switchboxes
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-09 16:02:02 +02:00
Clifford Wolf
6198a68968 Add horizontal ice40 span4 wire gfx
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-09 15:45:01 +02:00
David Shah
1f36242d43 Add lutff_global switchbox
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-09 15:09:17 +02:00
Clifford Wolf
3be10f629a Add ice40 wire gfx enums
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-07-09 15:05:44 +02:00
David Shah
a1cd9fcf73 Reduce line width, adding some switchboxes
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-09 14:53:20 +02:00
Miodrag Milanovic
4c06b9be1d Python executable filename could be different 2018-07-08 19:27:42 +02:00
Miodrag Milanovic
9704ebd079 Added selection of chip and pacakge on new projet in GUI 2018-07-07 13:23:45 +02:00
Miodrag Milanovic
fcff203c23 typeof to decltype 2018-07-05 10:13:29 +02:00
David Shah
726f2020f1 python: Convert empty BelId to None
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 15:26:09 +02:00
David Shah
11fb625195 python: Renaming and fixing 'generic' build
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 14:55:24 +02:00
David Shah
79e91368f9 python: Update wrapper for non-unique_ptr maps
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 14:55:24 +02:00
David Shah
4376ae43af ice40: Near-complete Arch bindngs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 14:55:24 +02:00
David Shah
f6432aa88e python: Adding more wrapped bindings for ice40
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 14:55:24 +02:00
David Shah
a382d906ef python: Developing context wrappers for maps
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 14:55:24 +02:00
David Shah
45ec502ded python: Adding more bindings
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 14:55:24 +02:00
David Shah
1e96d65ded python: Add context wrapper support for ranges
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 14:55:24 +02:00
David Shah
4bc12f2ead Progress on new wrapper system
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 14:55:24 +02:00
David Shah
65195513eb python: Restructuring wrapper system
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 14:55:24 +02:00
David Shah
2e8c0c872f Add NPNR_ASSERT_FALSE, use in bitstream.cc
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 13:04:31 +02:00
David Shah
e0a851976f refactor: Replace assert with NPNR_ASSERT
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-04 12:15:23 +02:00
Miodrag Milanovic
b96727549c Building using MSVC works 2018-07-04 12:08:16 +02:00
Miodrag Milanovic
fd3c124f87 Add opetion to defie ICEBOX_ROOT, fix compile on other location 2018-07-03 20:46:05 +02:00
Miodrag Milanovic
1a8b4591f5 added parameter to call 2018-07-03 20:17:20 +02:00
Miodrag Milanovic
ec9a9de6d3 Make chibdb.py able to generate pure binary output 2018-07-03 20:14:49 +02:00
David Shah
5ca76461da ice40: Improving routeability of carries
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-03 14:47:41 +02:00
David Shah
59b2091f77 ice40: Another carry timing fix
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-03 14:04:32 +02:00
David Shah
9c4feb32a4 ice40: Fix carry timing paths
Signed-off-by: David Shah <davey1576@gmail.com>
2018-07-03 13:45:42 +02:00
Miodrag Milanovic
1cf8293019 Fixed macros and includes for MSVC 2018-07-03 08:53:44 +02:00
Clifford Wolf
172ceef377 Improve blinky testbench, double blink frequency
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-30 08:00:51 +02:00
Clifford Wolf
c73759f9f1 Split "arch.h" in "arch.h" and "archdefs.h"
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-29 20:36:34 +02:00
David Shah
302ccc14cf ice40: UltraPlus SPRAM working
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 19:58:08 +02:00
David Shah
27e7bc3b4b Improving the SA+legalisation flow
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 17:04:22 +02:00
David Shah
d908928b56 Tidying up the SA placer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 15:47:56 +02:00
David Shah
3b90f3698f ice40: Fix carry packing in some degenerate cases
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 15:10:29 +02:00
David Shah
b5f473cd7a Integrating SA placer and legaliser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 13:12:44 +02:00
David Shah
c18b7b3f6e ice40: Reworking placement legalisation to allow integration with SA placer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-29 12:02:34 +02:00
Miodrag Milanovic
960c650478 clangformat cleanup 2018-06-28 18:06:31 +02:00
David Shah
66670831b8 ice40: PLace legaliser produces a design that is at least routable for picosoc
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-28 16:31:52 +02:00
David Shah
27a9850921 Debugging carry legalisation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-28 15:48:57 +02:00
David Shah
c0724a7e97 ice40: Only pack up to one SB_CARRY into a LC
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-27 16:24:44 +02:00
David Shah
28e851cf45 ice40: Fix IO packer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-27 16:16:38 +02:00
David Shah
885fe93a17 ice40: Carry packer bugfix
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-27 15:24:34 +02:00
David Shah
92ddc31003 Improving debugability
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-27 15:08:37 +02:00
David Shah
998ab2b20a ice40: Fixing the carry packer for a larger design
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-27 12:43:29 +02:00
David Shah
53ce81343a ice40: Add timing paths for carry
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-27 12:23:12 +02:00
David Shah
b0b16a344a Improving post-ripup placement in the legaliser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-27 12:18:52 +02:00
Miodrag Milanovic
bafb4702c7 reinit python tab 2018-06-27 11:45:19 +02:00
David Shah
09c0d96105 ice40: Fixing packing of CIN constant drivers
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-26 20:02:19 +02:00
David Shah
67d4720989 ice40: Fixing carry chain legaliser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-26 16:23:10 +02:00
David Shah
841d126672 CarryInSet added to bitstream gen, add counter tb
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-26 16:04:10 +02:00
David Shah
95de0a36b4 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-26 15:58:35 +02:00
David Shah
21d5a04501 Carry chains now routable
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-26 15:55:50 +02:00
Miodrag Milanovic
0bd73c1977 Make GUI use recreated context 2018-06-26 15:47:43 +02:00
David Shah
6f12f2b7e8 Working on debugging the carry legaliser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-26 15:06:59 +02:00