diff options
-rw-r--r-- | gui/designwidget.cc | 8 | ||||
-rw-r--r-- | ice40/pack.cc | 4 |
2 files changed, 8 insertions, 4 deletions
diff --git a/gui/designwidget.cc b/gui/designwidget.cc index c49df085..34f151a8 100644 --- a/gui/designwidget.cc +++ b/gui/designwidget.cc @@ -827,7 +827,9 @@ void DesignWidget::onHoverIndexChanged(QModelIndex index) if (index.isValid()) {
TreeModel::Item *item = treeModel->nodeFromIndex(index);
if (item->type() != ElementType::NONE) {
- Q_EMIT hover(getDecals(item->type(), item->id()).at(0));
+ std::vector<DecalXY> decals = getDecals(item->type(), item->id());
+ if (decals.size()>0)
+ Q_EMIT hover(decals.at(0));
return;
}
}
@@ -844,7 +846,9 @@ void DesignWidget::onHoverPropertyChanged(QtBrowserItem *item) if (value!=IdString()) {
auto node = treeModel->nodeForIdType(type, value);
if (node) {
- Q_EMIT hover(getDecals((*node)->type(), (*node)->id()).at(0));
+ std::vector<DecalXY> decals = getDecals((*node)->type(), (*node)->id());
+ if (decals.size()>0)
+ Q_EMIT hover(decals.at(0));
return;
}
}
diff --git a/ice40/pack.cc b/ice40/pack.cc index 38c0c299..01cb3855 100644 --- a/ice40/pack.cc +++ b/ice40/pack.cc @@ -159,7 +159,7 @@ static void pack_carries(Context *ctx) exhausted_cells.find(usr.cell->name) == exhausted_cells.end()) { // This clause stops us double-packing cells i0_matches.insert(usr.cell->name); - if (!i1_net) { + if (!i1_net && !usr.cell->ports.at(ctx->id("I2")).net) { // I1 is don't care when disconnected, duplicate I0 i1_matches.insert(usr.cell->name); } @@ -174,7 +174,7 @@ static void pack_carries(Context *ctx) exhausted_cells.find(usr.cell->name) == exhausted_cells.end()) { // This clause stops us double-packing cells i1_matches.insert(usr.cell->name); - if (!i0_net) { + if (!i0_net && !usr.cell->ports.at(ctx->id("I1")).net) { // I0 is don't care when disconnected, duplicate I1 i0_matches.insert(usr.cell->name); } |