Commit Graph

454 Commits

Author SHA1 Message Date
Miodrag Milanovic 473723b24a Fix hidpi, fixes #167, fixes #275, fixes #425 2021-05-31 16:20:43 +02:00
gatecat a581526528 mistral: Python and GUI stub
Signed-off-by: gatecat <gatecat@ds0.me>
2021-05-15 14:54:33 +01:00
gatecat 4e346ecfba Hash table refactoring
Signed-off-by: gatecat <gatecat@ds0.me>
2021-04-14 10:30:19 +01:00
Keith Rothman f4dc67879e Fixup GUI link dependencies on headers from libraries.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2021-03-18 14:00:19 -07:00
gatecat 23413a4d12 Fix compiler warnings introduced by -Wextra
Signed-off-by: gatecat <gatecat@ds0.me>
2021-02-25 15:15:25 +00:00
gatecat 7922b3bfc4 Replace DelayInfo with DelayPair/DelayQuad
This replaces the arch-specific DelayInfo structure with new DelayPair
(min/max only) and DelayQuad (min/max for both rise and fall) structures
that form part of common code.

This further reduces the amount of arch-specific code; and also provides
useful data structures for timing analysis which will need to delay
with pairs/quads of delays as it is improved.

While there may be a small performance cost to arches that didn't
separate the rise/fall cases (arches that aren't currently separating
the min/max cases just need to be fixed...) in DelayInfo, my expectation
is that inlining will mean this doesn't make much difference.

Signed-off-by: gatecat <gatecat@ds0.me>
2021-02-19 11:31:33 +00:00
gatecat 33eca9a3d2 machxo2: Python bindings and stub GUI
Signed-off-by: gatecat <gatecat@ds0.me>
2021-02-12 10:40:03 +00:00
gatecat 6bd3dba1e3 Remove the unused CellInfo::pins field
No arches ever actually used this to implement a Cell->Bel pin mapping,
and in practice if any did try they would inevitably hit bitrot.

This field had limited use in practice as it is necessary to also
support cases where one cell pin maps to more than one bel pin. Removing
this old field is the first step towards developing a new API for this.

Signed-off-by: gatecat <gatecat@ds0.me>
2021-02-10 10:42:26 +00: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 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 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 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
D. Shah 3ae96bff88 Refactor GUI to use IdStringLists
The GUI internally had an 'IdStringList' type that I hadn't spotted, to
avoid a conflict this is renamed to IdList which also reflects its new
purpose better.

Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 17:00:33 +00:00
D. Shah 9388df19d3 refactor: Replace getXName().c_str(ctx) with ctx->nameOfX
This makes the ongoing migration to IdStringList easier.

Signed-off-by: D. Shah <dave@ds0.me>
2021-02-02 17:00:14 +00: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 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
Pepijn de Vos 3611f54902
Gowin target (#542)
* load wires

* add slice bels

* add IOB

* add aliases

* local aliases

* broken packing stuff

* working packer

* add constraints

* pnr runs1111

* add timing info

* constraints

* more constraint stuff

* add copyright

* remove generic reference

* remove parameters

* remove generic python api

* add newline to end of file

* some small refactoring

* warn on invalid constraints

* don't error on missing cell

* comment out debugging print

* typo

* avoid copy

* faster empty idstring

* remove intermediate variable

* no more deadnames

* fix cst warnings

* increase ripup and epsilon a bit

* take single device parameter

* add info to readme

* gui stubs

* Revert 4d03b681a8

* assign ff_used in assignArchInfo

* decrease beta for better routability

* try to fix CI
2020-12-30 14:59:55 +00:00
David Shah 8d1678f0ef nexus: Add stub GUI
Signed-off-by: David Shah <dave@ds0.me>
2020-11-30 08:45:27 +00:00
Miodrag Milanovic bb16fdb4bb Python code cleanup 2020-11-14 16:34:12 +01:00
Miodrag Milanovic 717bcfa19e Preserve cmd parameters when loading json from GUI 2020-09-04 17:14:30 +02:00
Miodrag Milanovic 1fae965cbb Use proper names in GUI 2020-07-08 14:16:00 +02: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
Miodrag Milanovic bb3dad7ce7 Fix assert, check should be other way arround 2020-07-06 17:29:25 +02:00
whitequark 89e0cc8078 Simplify and improve chipdb embedding/loading. 2020-06-26 08:36:07 +00:00
Miodrag Milanovic 93228f78d7 old boost support 2020-04-20 13:59:47 +02:00
Miodrag Milanovic 5fa10e1a95 cleanup 2020-02-28 11:02:07 +01:00
Miodrag Milanovic 6566b5da73 Add support for pasting multiline code to python 2020-02-28 11:02:01 +01:00
Vegard Storheil Eriksen 34cc1bd41f gui: Fix sorting order in TreeModel. 2020-02-28 03:56:33 +01:00
Vegard Storheil Eriksen bb754441c8 gui: Fix undefined behavior in TreeModel.
std::sort() requires the comparison function to return false for even
comparison. Returning true results in undefined behavior and a potential
segfault.
2020-02-28 03:48:41 +01:00
Miodrag Milanovic 3e95c57317 Add SVG option to gui 2020-02-27 09:37:09 +01:00
Miodrag Milanovic 38e3b6338c Various warning fixes 2020-01-18 15:23:35 +01:00
Miodrag Milanovic 0bf8fa23d9 Skip same frames 2020-01-11 15:48:43 +01:00
Miodrag Milanovic 3f439c1ef2 Enable screenshot and recording feature 2020-01-05 13:51:12 +01:00
Miodrag Milanovic 796d648995 Merge remote-tracking branch 'origin/master' into mmicko/ecp5_gui 2019-12-28 13:54:06 +01:00
David Shah 035bfb0fe5 json: Remove legacy frontend
Signed-off-by: David Shah <dave@ds0.me>
2019-12-27 10:44:30 +00:00
Miodrag Milanovic d399346de0 Add options to enable/disable displayed elements 2019-12-20 15:25:10 +01:00
Miodrag Milanovic 7fd856b866 clangformat run 2019-12-08 09:33:06 +01:00
Miodrag Milanovic d1dc2c3a5f Add more zoom 2019-10-20 09:41:48 +02:00
David Shah 1839a3a770 Major Property improvements for common and iCE40
Signed-off-by: David Shah <dave@ds0.me>
2019-08-05 14:52:15 +01:00
Miodrag Milanovic e27dc41a76 add newline 2019-06-28 13:44:01 +02:00
Miodrag Milanovic be47fc3e9a clangformat run 2019-06-25 18:19:25 +02:00
Miodrag Milanovic ec47ce2320 Merge master 2019-06-25 18:14:51 +02:00
David Shah fa77a5ae4a clangformat
Signed-off-by: David Shah <dave@ds0.me>
2019-06-24 11:43:01 +01:00
Miodrag Milanovic 8d5724f4fd moved some context variables to settings 2019-06-15 15:23:51 +02:00
Miodrag Milanovic 66ea9f39f7 enable lading of jsons and setting up context 2019-06-14 15:18:35 +02:00
Miodrag Milanovic aca372de99 fix title 2019-06-14 13:33:20 +02:00
Miodrag Milanovic 903391a9e4 Remove base config, since deprecated 2019-06-14 13:02:15 +02:00
Miodrag Milanovic 0d8c80ad5d gui for json write and proper statuses 2019-06-14 11:14:18 +02:00
Miodrag Milanovic 053bd48bef Cleanup 2019-06-14 10:07:59 +02:00
Miodrag Milanovic 1cd4a4d17a Remove concept of project and code connected 2019-06-13 17:42:41 +02:00
Miodrag Milanovic 9b8d3b7546 option to disable anti aliasing in gui 2019-05-25 08:42:17 +02:00
Miodrag Milanović 0d1c7118e3
Merge pull request #169 from ajeakins/master
Fix device view not showing anything on macOS.
2019-05-23 23:53:52 -07:00
Michael Buesch 3d4f1dc60b gui: Fix warning: catching polymorphic type by value
gui/application.cc: In member function ‘virtual bool nextpnr_ice40::Application::notify(QObject*, QEvent*)’:
gui/application.cc:56:32: warning: catching polymorphic type ‘class nextpnr_ice40::assertion_failure’ by value [-Wcatch-value=]
2019-05-20 22:17:45 +02:00
Adrian Jeakins d00288198f Bring back check that GL contexts get the format requested. 2019-05-01 21:32:48 +01:00
David Shah ede81dc095 generic: Disable GUI as it isn't supported yet
Signed-off-by: David Shah <dave@ds0.me>
2019-04-17 11:03:06 +01:00
David Shah 6fffe24177 generic: GUI Python bindings
Signed-off-by: David Shah <dave@ds0.me>
2019-04-03 16:08:33 +01:00
David Shah 23f2fff1c8 clangformat
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:39:05 +00:00
Miodrag Milanović cadbf42054
Merge pull request #249 from koriakin/gui-tab-fix
gui: Fix Cells/Nets tab contents.
2019-03-12 19:17:22 +01:00
Marcin Kościelnicki a0ad5bc306 gui: Fix Cells/Nets tab contents.
Signed-off-by: Marcin Kościelnicki <marcin@symbioticeda.com>
2019-03-12 18:18:36 +01:00
David Shah 97993e76ea gui/fpgaviewwidget: Make background opaque
Signed-off-by: David Shah <dave@ds0.me>
2019-03-12 14:03:28 +00:00
Sylvain Munaut 9539f57c74 gui: Allow shift+drag to move around the view
right & middle clight are really inconvenient when working with a touchpad
in tap-to-click mode

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-02-22 12:31:23 +01:00
Miodrag Milanovic bfc96cc962 Better resize, FPGAViewWidget minimal is now 320x200, fixes #222 2019-02-07 17:42:14 +01:00
Miodrag Milanovic c6604a4582 Fix reading conflicting wire in GUI for pips, fixes #225 2019-02-07 17:25:14 +01:00
Adrian Jeakins 7f950a1852 Reduce GL shader version for wider compatibility. 2018-12-20 22:28:53 +00:00
Adrian Jeakins 3cdd83a3be Remove format versioning now this is set at the top level application. 2018-12-20 22:21:10 +00:00
Miodrag Milanovic e0b4a2eeab Add GUI for executing python file 2018-12-14 17:20:25 +01:00
Miodrag Milanovic fdb632f24c Fix crash exiting nextpnr gui 2018-12-06 08:31:40 +01:00
Adrian Jeakins 38f80b1048 Fix device view not showing anything on macOS.
* Fix line shader when running under the core profile and make version match those elsewhere.
* Make surface format version match the openGL functions we are using.
2018-12-05 22:27:04 +00:00
Adrian Jeakins 92ddef9fc3 Fix crash starting the GUI on macOS where we must request a core profile.
See http://doc.qt.io/qt-5/qabstractopenglfunctions.html
2018-12-04 23:05:06 +00:00
David Shah b550791d92 Refactor log code and add log file support
Signed-off-by: David Shah <dave@ds0.me>
2018-11-21 17:08:45 +00:00
David Shah 9c52afcf5f clangformat
Signed-off-by: David Shah <dave@ds0.me>
2018-11-16 13:25:51 +00:00
Eddie Hung 3b2b15dc4a
Merge pull request #107 from YosysHQ/router_improve
Major rewrite of "router1"
2018-11-13 11:39:51 -08:00
Miodrag Milanovic 7bd542ecbe Make zoom in/out always display content 2018-11-12 10:06:04 +01: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
Miodrag Milanovic 2d35d99ed2 Show wires in tree for ECP5 as well 2018-11-11 13:52:19 +01:00
Miodrag Milanovic 5d11af5a25 multiple selection fix 2018-11-11 13:26:33 +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 a445ae37ee Pip visible for all archs 2018-11-11 11:08:34 +01:00
Miodrag Milanovic b8870bb99c Propagate proper ctx, fixes fetchMore 2018-11-11 10:53:48 +01:00
Miodrag Milanovic 3cfdb4e0c1 Sorted out zoomout, works for all now 2018-11-11 09:04:20 +01:00
Miodrag Milanović 6b197fde72
Merge pull request #93 from YosysHQ/gui_changes
Gui changes
2018-11-10 23:00:34 -08:00
Miodrag Milanovic 636a03d71e Fix method override in gui 2018-11-05 08:56:01 +01:00
Miodrag Milanovic 27fcaf50d2 Fix lpf button action 2018-11-03 10:03:27 +01:00
Miodrag Milanovic aed04ae6f2 Added image generator and regenerate icons 2018-11-03 10:02:53 +01:00
Miodrag Milanovic a0e79c993f Added LPF support and all chip models available for select 2018-11-03 09:39:43 +01:00
Miodrag Milanovic 0a3ebfbb5b change to const auto& 2018-10-30 08:07:31 +01:00
Miodrag Milanovic 02edd66ae9 Changes to cover issues from code review 2018-10-29 19:39:52 +01:00
Miodrag Milanovic 3758029227 fix unselect from tree 2018-10-28 14:50:48 +01:00
Miodrag Milanovic 436c2a0444 Fix keep selection on multiple trees 2018-10-27 17:04:08 +02:00
Miodrag Milanovic f66c5a0094 update properties based on move history 2018-10-27 16:00:47 +02:00
Miodrag Milanovic cb6baa0f6a Update grid properly 2018-10-27 12:02:01 +02:00
Miodrag Milanovic d08fe2109d clangformat 2018-10-27 12:02:01 +02:00
Miodrag Milanovic f43ee265e8 Cleanup 2018-10-27 12:02:01 +02:00
Miodrag Milanovic ba0ab7cb30 simplify and move arround 2018-10-27 12:02:01 +02:00
Miodrag Milanovic 5d5324c073 Split tree models and make other features work with it 2018-10-27 12:02:01 +02:00
Miodrag Milanovic 7386004c60 make grid cover device only, do not zoom in if there are no elements 2018-10-27 12:02:01 +02:00