Commit Graph

923 Commits

Author SHA1 Message Date
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
David Shah
29df577f14 Fixing packing of carry cells
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-26 14:37:01 +02:00
David Shah
103dde79de Fixing Python bindings after adding unique_ptr
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-26 14:13:52 +02:00
David Shah
ded9df61dc Working on debugging carry packer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-26 13:08:28 +02:00
Miodrag Milanovic
e51dd15b6b clang fix 2018-06-26 12:11:15 +02:00
David Shah
0a176b4fde ice40: Working on carry legalisation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-26 12:01:11 +02:00
Miodrag Milanovic
ac197e0b9e fix one more 2018-06-26 11:22:48 +02:00
Miodrag Milanovic
db890d3a81 nets and cells are unique_ptr's 2018-06-25 21:33:48 +02:00
David Shah
64208da1f9 ice40: Remove constant driver cells in packer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-25 16:29:37 +02:00
Miodrag Milanovic
a279720fc1 merge 2018-06-25 16:22:08 +02:00
David Shah
bee6bc461d ice40: Working on the placement legaliser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-25 16:15:47 +02:00
Miodrag Milanovic
6de8b4ef7d some more memory leaks 2018-06-25 15:52:55 +02:00
David Shah
6d154cfa13 ice40: Creating a carry chain splitter function
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-25 15:39:46 +02:00
David Shah
8d9444b6f0 ice40: More preparations for carry legalisation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-25 14:45:33 +02:00
David Shah
fd8017449d ice40: Helper functions for placement legalisation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-25 13:52:44 +02:00
David Shah
28d8f8b2cb ice40: Start work on the placement legaliser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-25 13:09:50 +02:00
David Shah
bdd54a6847 Refactor: remove PlacementValidityChecker and move methods to Arch
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-25 11:43:59 +02:00
Miodrag Milanovic
1acaf41277 added project saving and loading 2018-06-24 14:38:45 +02:00
David Shah
37bad1f99e Fixing the Python bindings following Context/Arch refactoring
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-23 19:51:22 +02:00
Clifford Wolf
0ccd9febeb Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-23 16:14:39 +02:00
David Shah
1e8840b0f9 Update from increased clangformat line length
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-23 16:12:52 +02:00
Clifford Wolf
a40d9dc514 Improve router ripup handling
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-23 15:58:24 +02:00
Clifford Wolf
a1681560a3 Updates from clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-23 15:28:09 +02:00
Clifford Wolf
b5efe3ecbc Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-23 15:16:37 +02:00
Clifford Wolf
746d63f9fa Refactoring bind/unbind API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-23 15:16:24 +02:00
Miodrag Milanovic
82ec1be31f Added BUILD_GUI, BUILD_PYTHON and BUILD_TESTS cmake options, 2018-06-23 14:32:49 +02:00
David Shah
d72fe0c230 place_sa: Add option to disable timing-driven placement
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-23 12:18:44 +02:00
David Shah
289fca0976 ice40: Move global net test to Arch
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-23 12:09:01 +02:00
David Shah
2e6916ecab ice40: Fix UltraPlus quasi-logic-cell bits
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-23 11:25:32 +02:00
Miodrag Milanovic
cb92c10b99 Cleanup almost all deprecation warnings 2018-06-23 09:42:48 +02:00
Miodrag Milanovic
761e28ce67 one more 2018-06-23 08:08:42 +02:00
Clifford Wolf
0508fb3627 Fix "dereferencing type-punned pointer" warnings
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-22 20:19:29 +02:00
David Shah
8850f86a8a ice40: SB_LFOSC support, fabric routing only
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-22 19:21:39 +02:00
David Shah
6a783ef94f Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-22 18:35:18 +02:00
David Shah
60e885d342 ice40: Adding extra cell wires to database; SB_WARMBOOT working
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-22 18:35:08 +02:00
Serge Bazanski
5dfe1969af Merge branch 'q3k/gl' into 'master'
Modern OpenGL renderer

See merge request SymbioticEDA/nextpnr!1
2018-06-22 16:17:21 +00:00
David Shah
7c169c48d0 ice40: Preparations for extra cells support
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-22 17:44:26 +02:00
Sergiusz Bazanski
15a7a76415 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/gl 2018-06-22 15:54:05 +01:00
Miodrag Milanovic
e5bd4764b2 Added custom QApplication implementation 2018-06-22 16:49:15 +02:00
David Shah
cf78f1b0e4 ice40: Add UltraPlus tiles to database
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-22 16:40:22 +02:00
Clifford Wolf
aa81f9d648 Switched from clifford@clifford.at to clifford@symbioticeda.com for copyright headers
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-22 16:19:17 +02:00
Sergiusz Bazanski
858acc5c1c Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into q3k/gl 2018-06-22 14:29:28 +01:00
Sergiusz Bazanski
98b1f0c041 Reimplement FPGAWidget in modern OpenGL. 2018-06-22 14:27:04 +01:00
Miodrag Milanovic
7f36828270 fixed namespace for gui section 2018-06-22 13:10:43 +02:00
David Shah
63baa10032 ice40: Make the packer deterministic
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-22 12:57:22 +02:00
David Shah
71176ac538 Fixing 5k bitstream gen and place heuristics
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-22 12:34:42 +02:00
Clifford Wolf
2c98231f88 Updates from clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 19:36:20 +02:00
Miodrag Milanovic
c33a039ac3 Added return code to json parsing and pcf reading 2018-06-21 18:08:28 +02:00
Miodrag Milanovic
8fac26c2b7 Fixed return codes for packer, placer and router 2018-06-21 17:56:45 +02:00
Miodrag Milanovic
54549d36e9 log_error now trows exception, main is covering catch 2018-06-21 17:44:18 +02:00
Clifford Wolf
4fefdbd57c Cleanup parse_json_file API, some other cleanups
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 16:16:58 +02:00
Clifford Wolf
a29bfc788e Add ctx->checksum(), slightly improve log messages
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 15:47:41 +02:00
Clifford Wolf
993f6ef7d3 Improve log messages, move many messages to verbose mode
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 14:09:50 +02:00
Clifford Wolf
693c34ad06 Improvements in router
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-21 14:08:45 +02:00
David Shah
56ed679f83 Add frequency setting and fix slack calculation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-21 11:59:20 +02:00
Sergiusz Bazanski
4e480a9a61 chipdb.py style fix 2018-06-20 20:28:48 +01:00
David Shah
93ed8ca405 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-20 20:14:08 +02:00
David Shah
c27c96f4f0 place_sa: Improvements including supporting force and ordering consistency
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 20:12:23 +02:00
Clifford Wolf
f2ae9a713b Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-20 19:37:16 +02:00
Clifford Wolf
9475997a2d Improve --tmfuzz mode and iCE40 delay estimator
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 19:22:03 +02:00
David Shah
4fc9625040 WIP: adding timing budget to placer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 17:08:57 +02:00
David Shah
e45508f6c4 Improving timing annotator
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 15:15:51 +02:00
Clifford Wolf
2da90889ef Add "nextpnr-ice40 --tmfuzz"
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 14:04:10 +02:00
Clifford Wolf
c4e544856a Fix jsonparse compiler warnings, clangformat updates
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 13:40:13 +02:00
David Shah
d5a032d00e Fix chipdb UltraPlus wires
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 13:10:40 +02:00
David Shah
c667f640d5 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-20 13:01:30 +02:00
David Shah
4648d3bc83 Working on the timing annotator
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 13:01:22 +02:00
Clifford Wolf
37f7802c6c Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-20 12:58:08 +02:00
Clifford Wolf
cb9c6c6ef2 Changes to estimatePosition API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 12:57:38 +02:00
Clifford Wolf
c3837027b2 Add better iCE40 delay estimates
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-20 12:50:38 +02:00
David Shah
5ca4663294 Working on the timing budget annnotator
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 12:21:56 +02:00
David Shah
1436ae21a2 Adding stubs for delay annotation and cell timing lookup
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-20 11:44:28 +02:00
David Shah
df4b4d48f7 ice40: Tidying up carry packer a bit
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-19 16:23:02 +02:00
David Shah
8e26e4381b ice40: WIP SB_CARRY packer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-19 16:16:10 +02:00
Clifford Wolf
3a505638a6 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr
# Conflicts:
#	common/place_sa.cc
#	ice40/arch.h
2018-06-19 15:03:54 +02:00
Clifford Wolf
d7f424b809 Improved log messages in SA placer, minor changes from clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-19 15:00:24 +02:00
David Shah
9008669867 Major performance improvement to placement validity check
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-19 14:44:49 +02:00
Clifford Wolf
2603c6d805 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-19 14:34:45 +02:00
Clifford Wolf
fd40d6f58d Updates from clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-19 14:10:42 +02:00
Clifford Wolf
5f37da9704 Add Context::force and "nextpnr-ice40 --force"
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-19 14:10:42 +02:00
David Shah
a8071a418d ice40: Improve error reporting for invalid tristate usage
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-19 14:10:28 +02:00
David Shah
ecc2c486d9 ice40: Fix constant packer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-19 13:48:04 +02:00
David Shah
7abfd36773 ice40: Don't deduplicate local tracks when counting
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-19 13:35:01 +02:00
Clifford Wolf
d2ff5fec08 Add rng to Context, start using ctx->verbose
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-19 12:49:40 +02:00
Clifford Wolf
8067ed9af0 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-19 12:08:51 +02:00
Clifford Wolf
c910846c5c Refactor Arch/Context design hierarchy
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-19 12:08:37 +02:00
David Shah
6f7070a365 ice40: More IdString API updates
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-19 11:21:16 +02:00
David Shah
e3519ddfcd ice40: Adding support for tristate IO
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-19 11:12:18 +02:00
David Shah
ec2792764a ice40: Removing deprecated API in cells.cc
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-19 10:50:23 +02:00
Clifford Wolf
79d1075345 Getting rid of old IdString API users, Add ctx to many internal APIs
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-18 17:08:35 +02:00
Clifford Wolf
7ef4d0726b Getting rid of users of old IdString API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-18 16:08:19 +02:00
Clifford Wolf
0dd185a141 Getting rid of users of old IdString API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-18 15:53:18 +02:00
Clifford Wolf
babd5f39ab Towards IdString as per-context facility
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-18 14:53:01 +02:00
Clifford Wolf
cbcd2ea3ac Rename chip.h to arch.h
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-18 14:12:39 +02:00
Clifford Wolf
58e3104796 Updates from clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-18 14:07:18 +02:00
Clifford Wolf
8ee149f4fc Rename Design to Context, derive from Arch instead of instantiating
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-18 14:06:37 +02:00
Clifford Wolf
ad18cdb087 Rename Chip to Arch and ChipArgs to ArchArgs
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-18 13:35:25 +02:00
David Shah
ef2d0d2cb9 Fix hash specialisation for BelType and warnings in place_sa.cc
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-18 12:20:06 +02:00
David Shah
fc7490370b Improving code style and fixing dummy
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-18 11:43:59 +02:00
Clifford Wolf
0b2345996d Updates from clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 19:28:03 +02:00
Clifford Wolf
acfef6971e Refactore ice40 chipdb to use a super-large C-string as output format
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 18:15:41 +02:00
Clifford Wolf
0af9156d7a Minor chipdb.py improvement
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 16:28:05 +02:00
Clifford Wolf
4fe8ba5e9a Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into chipdbng 2018-06-17 16:14:58 +02:00
Clifford Wolf
105cde328b Updates from clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 16:14:27 +02:00
Clifford Wolf
19b665177e Move top-level ChipInfoPOD into ice40 chipdb blob
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 16:12:52 +02:00
David Shah
f66999a883 Minor performance tweaks and fixes
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-17 16:03:16 +02:00
Clifford Wolf
6f4af8387e Move PackageInfoPOD to ice40 chipdb blob
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 15:53:17 +02:00
Clifford Wolf
5d46ff54ba Move TileType array to ice40 chipdb blob
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 15:46:39 +02:00
Clifford Wolf
f38c5660cb Move BitstreamInfoPOD to ice40 chipdb blob
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 15:39:19 +02:00
Clifford Wolf
a4ad3533fe Move IerenInfoPOD to ice40 chipdb blob
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 15:25:58 +02:00
David Shah
f723aaa373 ice40: Fixing negative clock bitstream generation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-17 15:21:35 +02:00
Clifford Wolf
246fe999dd Move TileInfoPOD to chipdb blob
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 15:15:49 +02:00
Clifford Wolf
1f9c28ba58 Move SwitchInfoPOD to chipdb blob
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 15:05:17 +02:00
David Shah
748171dae2 place_sa: Adding seed option
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-17 15:04:53 +02:00
Clifford Wolf
a3e0842299 Move PipInfoPOD into ChipDB binary blob
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 14:46:10 +02:00
David Shah
681c9654d7 place_sa: Add a rip-up feature when initial placement fails
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-17 14:36:19 +02:00
Clifford Wolf
c0a2f0b89f Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr into chipdbng 2018-06-17 14:31:43 +02:00
Clifford Wolf
3b5c33d685 Move WireInfoPOD into ChipDB binary blob
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 14:30:26 +02:00
Clifford Wolf
84defd3fee Minor refactoring of BinaryBlobAssembler, fix alignments
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-17 13:32:38 +02:00
David Shah
1b077320dc General reformatting
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-17 12:53:39 +02:00
David Shah
12818fb694 ice40: Add symbol output to bitstream generation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-17 12:38:21 +02:00
David Shah
6a937e0b45 Updating copyrights
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-17 11:49:57 +02:00
David Shah
3afce5ff5a Improving the placer output
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-17 11:45:41 +02:00
David Shah
f9bfccf68e Add 'get or default' functions
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-17 11:14:49 +02:00
David Shah
8ab0b06f5f ice40: Fixing build
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-17 10:35:37 +02:00
Clifford Wolf
69e5bc5030 Progress with chipdb refactoring
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-16 19:25:37 +02:00
David Shah
e497575c8e place: Fix placer validity checks
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-16 18:45:48 +02:00
Clifford Wolf
ee06db3293 Progress with chipdb refactoring
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-16 18:42:29 +02:00
Clifford Wolf
f0edb625e3 Progress with chipdb refactoring
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-16 17:53:09 +02:00
David Shah
1e6124309f ice40: Proper global promotion
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-16 17:44:35 +02:00
David Shah
bb92dc09a8 ice40: Promote reset signal
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-16 17:09:41 +02:00
Clifford Wolf
fe47e7fc2d Update clangformat
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-16 15:25:33 +02:00
Clifford Wolf
4d14bc2914 Merge remote-tracking branch 'origin/master' into chipdbng 2018-06-16 15:25:03 +02:00
Clifford Wolf
6acf23cf37 Some refactoring of Chip API (prep for chipdb refactoring)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-16 15:23:04 +02:00
David Shah
7ff1b7e02f ice40: Fix RAM config in packer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-16 14:44:10 +02:00
David Shah
f079e0d204 ice40: Fix BRAM initialisation
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-16 14:44:10 +02:00
David Shah
c0a2627179 place: Tidying up the SA placer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-16 14:44:10 +02:00
David Shah
c9a784ec0c ice40: Include RAM init data in bitstream
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-16 14:44:10 +02:00
David Shah
04f1d7516a ice40: Fix bitstream generation when parameters are unspecified
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-16 14:44:10 +02:00
David Shah
23b1fc02fb ice40: Bitstream generation for RAM
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-16 14:44:10 +02:00
David Shah
cabdfe3616 ice40: Only place IO at valid pins
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-16 14:44:10 +02:00
David Shah
6b74d326d4 experiment: Simple heuristic-based placer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-16 14:44:10 +02:00
David Shah
355d33632c ice40: Another arch_place fix
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-14 21:52:01 +02:00
David Shah
66ea22bb5c ice40: General fixes
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-14 21:12:15 +02:00
David Shah
323a2aaa54 ice40: Read cells in arachne placement script
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-14 20:55:39 +02:00
David Shah
0f0d9bfb00 ice40: Importer for placed ice40 designs from arachne
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-14 20:46:05 +02:00
Clifford Wolf
312699e590 Add route-ripup routing loop
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-14 15:09:13 +02:00
Clifford Wolf
7787ce5fd9 Refactor position/delay estimation API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-14 12:43:00 +02:00
Clifford Wolf
c94b8c4861 Drastically reduce number of linker symbols in chipdb
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-13 23:55:18 +02:00
David Shah
537b0e6e94 ice40: Rename ICESTORM_RAM pins
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-13 18:18:57 +02:00
Clifford Wolf
1a3d0f2f5d Add picorv32_top module with fewer IO pins
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-13 17:38:34 +02:00
Clifford Wolf
33863fee2d Add missing iCE40 global buffer bels
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-13 17:19:36 +02:00
Clifford Wolf
821fb3a55d Add test PicoRV32 build script
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-13 17:08:27 +02:00
Clifford Wolf
81a154ca5d Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-13 16:54:25 +02:00
Clifford Wolf
aa4fedfd54 Add A*-like optimizations to router
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-13 16:52:21 +02:00
David Shah
5af707a0b6 ice40: Pack RAMs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-13 16:26:21 +02:00
David Shah
14b5e46b5d ice40: Promote one clock to a global buffer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-13 15:10:42 +02:00
Clifford Wolf
d80e60cce2 Add hierarchy to bel/wire/pip names
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-13 14:53:44 +02:00
David Shah
9374ef29bf Fixing implementation of constants
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-13 14:01:42 +02:00
David Shah
4694c6aae7 ice40: Update examples to use packer/pcf
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-13 12:55:08 +02:00
Clifford Wolf
1e314cc0ce Update chip Graphics API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-13 12:48:58 +02:00
Clifford Wolf
145c849596 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-13 12:38:28 +02:00
Clifford Wolf
4d7f18dd98 Redesign PosInfo API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-13 12:37:23 +02:00
David Shah
de0918c287 ice40: Add a PCF parser
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-13 12:30:15 +02:00
David Shah
5435a97024 ice40: Add package selection
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-13 11:51:09 +02:00
David Shah
696aaee24c ice40: Add package pins to database
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-13 11:40:28 +02:00
David Shah
94eea289ae Simple IO buffer insertion, enable packer by default
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-13 11:08:20 +02:00
David Shah
a76f5c5678 Remove IO buffers when fed by SB_IO
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-13 10:50:05 +02:00
Miodrag Milanovic
b7c747f15b Write tests to replace -test option from main 2018-06-12 20:39:20 +02:00
Miodrag Milanovic
9953012154 reveresed logic for enabling main file, and made tests link arch files 2018-06-12 19:56:03 +02:00
Clifford Wolf
136ce3d18f Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-12 15:51:51 +02:00
Clifford Wolf
9c275d0a65 Add fast IdString <-> PortPin conversion
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-12 15:50:33 +02:00
David Shah
6e79b93c6e Improve packer diagnostics
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-12 15:33:53 +02:00
David Shah
6707b985b4 ice40: Add support for LC placement constraints in packer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-12 15:13:50 +02:00
Clifford Wolf
a139654980 Add IdString API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-12 15:08:01 +02:00
David Shah
592a627e0c Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-12 14:43:56 +02:00
David Shah
5a9ff4aea1 ice40: Testing the placement validity check
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-12 14:39:49 +02:00
Clifford Wolf
c8b815361e Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-12 14:33:13 +02:00
Clifford Wolf
426fb75bb5 Fix NEXTPNR_NAMESPACE
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-12 14:31:26 +02:00
David Shah
95fb0595a5 ice40: Debugging and fixing FF configuration
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-12 14:27:04 +02:00
Clifford Wolf
d62e341d5a Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-12 14:25:12 +02:00
Clifford Wolf
391d49c13e Add nextpnr namespace
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-12 14:24:59 +02:00
David Shah
9ee6a6e114 ice40: Creating packer tests
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-12 14:19:26 +02:00
David Shah
47eeda40bc Implement the placement validity checker
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-12 13:45:59 +02:00
David Shah
031d8e811f ice40: Adding a placement validity checker
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-12 13:40:22 +02:00
David Shah
67a5cedbe3 ice40: Pack constants to LCs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-12 13:09:36 +02:00
David Shah
f72807f790 ice40: Debugging the packer
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-12 12:46:30 +02:00
David Shah
2f61a9b98a ice40: Start working on a packer, currently not tested
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-12 12:13:11 +02:00
David Shah
5f813410aa ice40: Adding cell utilities for packing
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-12 11:49:54 +02:00
David Shah
19aefe374c ice40: Optimising chipdb builds
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-12 10:39:33 +02:00
Clifford Wolf
be73894bea Add "nextpnr.h"
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-11 20:12:57 +02:00
Clifford Wolf
ac67482380 Remove pool, dict, vector namespace aliases
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-11 19:56:33 +02:00
Clifford Wolf
f63eec034f Add conflicting=false argument to bind getters
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-11 19:46:03 +02:00
Miodrag Milanovic
b4b5586efd Fixed portability issue, now it works on msys2 windows build as well 2018-06-11 09:33:42 +02:00
Miodrag Milanovic
67227847e5 Pass design to gui, display chip name 2018-06-10 18:25:23 +02:00
David Shah
d3f1112580 Improving 5k support
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-10 17:20:29 +02:00
Clifford Wolf
458a13456a Fix iCE40 routing graph
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-10 17:08:14 +02:00
Clifford Wolf
602e6fab1e Add support for iCE40 global buffers (currently only for 1k devices)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-10 16:31:06 +02:00
David Shah
02b83d6db6 Debugging on icebreaker 2018-06-10 15:06:26 +02:00
Clifford Wolf
032c94d094 Add blinky post-synthesis testbench
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-10 14:31:38 +02:00
Clifford Wolf
4a79e70470 Fix ice40 pip/switch locked performance issue
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-10 14:08:00 +02:00
David Shah
8d5da98122 ice40: Set config bits for unused IO
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-10 13:38:34 +02:00
David Shah
4e6d6e632f ice40: Fix techmap
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-10 13:33:47 +02:00
David Shah
30e672313d ice40: Add IO config to bitstream
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-10 13:24:48 +02:00
David Shah
d0bd657551 ice40: Write logic cell config to bitstream
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-10 12:58:05 +02:00
David Shah
6da8f98eac ice40: Lock out mutually exclusive pips
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-10 12:17:55 +02:00
David Shah
827a43c88c ice40: Start adding routing to asc output
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-10 12:11:58 +02:00
David Shah
d0431225f1 ice40: Writing an empty ASC file
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-10 11:56:07 +02:00
David Shah
89d5280bf6 ice40: Adding non-routing config bits to database
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-10 11:14:50 +02:00
David Shah
48b72126c9 ice40: Add switch data to database
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-10 10:54:55 +02:00
Clifford Wolf
70f322ab44 Renamed LOC attribute to BEL, fix ice40 IO bel names
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-09 19:52:22 +02:00
David Shah
72f5e640af Adding basic placement constraints
Specify the attribute (* LOC="bel_name" *) on any cell to constrain its
placement to that bel.

Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-09 19:38:37 +02:00
Clifford Wolf
8cabb39d6d Getting rid of .nil() methods, compare with zero- and default-constructed objects instead
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-09 18:41:38 +02:00
Clifford Wolf
dfbfbf87db Add very basic router
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-09 18:19:20 +02:00
David Shah
c16a971c0f python: Fixing builds as importable module
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-08 11:17:04 +02:00
David Shah
7f330af9f3 Reformat remaining files
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-08 11:04:02 +02:00
ZipCPU
4499864024 Applied clang-format to my own contributions 2018-06-07 15:38:24 -04:00
ZipCPU
c13c15bada Set the default log to stdout 2018-06-07 09:52:32 -04:00
ZipCPU
c352f6536b Moved placer definitions to place.h, main automatically runs placer now 2018-06-07 09:49:21 -04:00
ZipCPU
f32b9622d5 Initial (random) placer capability
This commit also includes changes to jsonparse to allow it to
1) recognize ports with no connection, and set their net pointers to NULL
2) recognize designs with a ports node rather than a ports_direction

The rule checker has also been modified to accommodate possible NULL netlists

The ice40 chip now also has iterator operations ++bi and bi++.
2018-06-07 09:38:14 -04:00
David Shah
1d39924c14 ice40: More Python bindings and examples
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-07 15:04:07 +02:00
David Shah
547d4fe3ee ice40: Refactor PortPin and add Python binding
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-07 14:36:35 +02:00
ZipCPU
efd8722fd9 Connected the log file facility to stderr 2018-06-07 08:12:22 -04:00
ZipCPU
0dbfa4662f Preliminary placer changes to main 2018-06-07 07:52:05 -04:00
David Shah
024ff8fa7d cmake: Add HX1K-only builds support
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-07 13:20:16 +02:00
David Shah
c3e0252703 Reformat Python bindings and ice40 main
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-07 13:10:53 +02:00
David Shah
6236a10427 Fixing file->run renaming
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-07 13:08:18 +02:00
David Shah
9ebc879826 Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr 2018-06-07 12:59:41 +02:00
David Shah
66b36cdd45 Merge branch 'python'
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-07 12:59:27 +02:00
David Shah
b0e66d441c Global design object working
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-07 12:57:52 +02:00
Clifford Wolf
1ea8fa4881 clang-format for design and chip codebase
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-07 12:56:49 +02:00
Clifford Wolf
2edde06c07 Fix clang-format include order issues
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-07 12:48:53 +02:00
David Shah
a5249da02d Working on global Python design object
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-07 12:40:31 +02:00
Clifford Wolf
8bfeaeaced Add ICE40_HX1K_ONLY config macro
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-07 12:26:02 +02:00
Clifford Wolf
9eeecf0e62 Rename --file to --run
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-07 12:19:48 +02:00
David Shah
0f6ebd6384 Allow specifying multiple Python files on the command line
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-07 09:01:30 +02:00
David Shah
bdd9313582 Allow loading and running Python files before GUI starts
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-07 08:56:54 +02:00
ZipCPU
16b9a2f1b5 Attempt to add JSON parser--not working yet w/ build system 2018-06-06 14:44:54 -04:00
Clifford Wolf
f9bd66e7ac Add iCE40 device selection, improve iCE40 IO GraphicElements
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-06 17:23:58 +02:00
Clifford Wolf
28e2276906 Add simple SVG generator to ice40 main
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-06 17:08:31 +02:00
Clifford Wolf
72b4bba0e7 Add ice40 geometry information
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-06 16:42:42 +02:00
Clifford Wolf
f07682f515 Add ice40 --test mode
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-06 16:01:31 +02:00
Clifford Wolf
5ff9aafb20 Refactor Chip API and iCE40 database
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-06 15:13:41 +02:00
Miodrag Milanovic
7cb42f4368 Initial GUI work 2018-06-05 21:03:06 +02:00
ZipCPU
709ce3884d Initial JSON parser 2018-06-05 09:01:26 -04:00
Clifford Wolf
d13a84b687 Add iCE40 blockram bels
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-04 12:37:56 +02:00
Clifford Wolf
eb3c89bee9 Replace GuiLine with GraphicElement
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-04 12:02:58 +02:00
Clifford Wolf
6840ffd9c0 Add iCE40 SB_IO bels
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-03 16:16:59 +02:00
Clifford Wolf
20d7cd0194 Add ice40 ICESTORM_LC bels
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-02 15:00:33 +02:00
Clifford Wolf
d85f5d2285 Remove now obsolete ice40/makefile.inc
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-02 14:49:32 +02:00
David Shah
e6302bbe73 Fix race condition and optimise the build 2018-06-02 14:17:31 +02:00
David Shah
363ddd0f3c Python bindings working on both architectures
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-02 13:48:28 +02:00
David Shah
d3f74eb056 Simple Python test working
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-02 13:48:28 +02:00
David Shah
f353453a7f Add architecture specific Python defs
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-02 13:48:28 +02:00
David Shah
ee0a5374d8 Add a CMake based build system
Signed-off-by: David Shah <davey1576@gmail.com>
2018-06-02 13:48:28 +02:00
Clifford Wolf
cdb31fdafc Use singular in type names (BelRange, WireIterator)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-06-02 12:57:19 +02:00
Clifford Wolf
90c7e3b13d Add iCE40 blinky example
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-05-31 18:10:36 +02:00
Clifford Wolf
3b0d1beabb Add DelayInfo struct
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-05-29 20:04:29 +02:00
Clifford Wolf
d56e29c47e Progress in chip.h API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-05-26 16:08:20 +02:00
Clifford Wolf
757786f134 Progress in ice40 chipdb
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-05-26 14:56:30 +02:00
Clifford Wolf
1899833b4d Start work on iCE40 chipdb
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-05-26 14:27:28 +02:00