Commit Graph

122 Commits

Author SHA1 Message Date
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
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
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
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
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
Miodrag Milanovic
bb3dad7ce7 Fix assert, check should be other way arround 2020-07-06 17:29:25 +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
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
Miodrag Milanovic
c6604a4582 Fix reading conflicting wire in GUI for pips, fixes #225 2019-02-07 17:25:14 +01: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
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
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
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
David Shah
ea03aafc26 clangformat
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-30 15:13:18 +01:00
David Shah
09ddcb67d3 gui: Fix another zero-decal issue
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-25 13:55:54 +01:00
David Shah
1d782870dc Apply GUI fix from @mmicko
Signed-off-by: David Shah <davey1576@gmail.com>
2018-09-25 13:31:54 +01:00
Miodrag Milanovic
28e30b2af0 Added hover on properties as well, fixes #64 2018-08-22 18:37:24 +02:00
Miodrag Milanovic
ad84df7974 Hover on items in tree 2018-08-22 17:38:42 +02:00
Clifford Wolf
74eebc489f Add arch attributes display to GUI
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-18 14:13:45 +02:00
Clifford Wolf
e03ae50e21 Get rid of PortPin and BelType (ice40, generic, docs)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-08 17:01:18 +02:00
Clifford Wolf
5e53075990 API change: Use CellInfo* and NetInfo* as cell/net handles (common, ice40)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
2018-08-05 15:25:42 +02:00
Miodrag Milanovic
8abf38f37f Moved to new signal slot syntax 2018-08-03 10:53:38 +02:00
Miodrag Milanovic
23a7d96f4c clangformat 2018-08-02 19:25:20 +02:00
Sergiusz Bazanski
1996f8c2d7 gui: fix race condition when selecting elements during plavement 2018-08-01 11:44:42 +01:00
Sergiusz Bazanski
f9d30bcdea gui: lock arch when accessing/building treemodel 2018-08-01 03:26:27 +01:00
Sergiusz Bazanski
6baf8216ed gui: move tree model into own namespace 2018-08-01 02:19:30 +01:00
Sergiusz Bazanski
c728cdcae0 gui: restore menu for new tree model 2018-08-01 02:11:23 +01:00
Sergiusz Bazanski
1038b7ef23 gui: restore property navigation in tree 2018-08-01 02:08:56 +01:00
Sergiusz Bazanski
bf43c27567 gui: restore lookup into tree after new model 2018-08-01 01:59:58 +01:00
Sergiusz Bazanski
6241052e11 Merge branch 'master' into q3k/treemodel-fast 2018-08-01 00:22:09 +01:00
Sergiusz Bazanski
cc0ffee3fe gui: lazy loading of tree model 2018-07-31 15:49:47 +01:00
Miodrag Milanovic
7da64ee167 Implement simple search 2018-07-30 20:10:36 +02:00
Miodrag Milanovic
91227b7753 double click on tree, zoom on selected object 2018-07-29 15:21:34 +02:00
Miodrag Milanovic
ba2531edc0 add proper info on model changes 2018-07-28 18:48:32 +02:00
Miodrag Milanovic
9a30b6330b fix select multiple, and reinit model 2018-07-28 17:13:13 +02:00