aboutsummaryrefslogtreecommitdiffstats
path: root/ice40/arch.h
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-07-13 14:29:03 +0200
committerClifford Wolf <clifford@clifford.at>2018-07-13 14:29:03 +0200
commit45462ef3a714c0d98fe570d96e6761e2b298c7d0 (patch)
tree544b422ac9421eef370aeb650d86e52c48386e10 /ice40/arch.h
parente9668ed618b054d323fe848fce2bf1e78840316e (diff)
downloadnextpnr-45462ef3a714c0d98fe570d96e6761e2b298c7d0.tar.gz
nextpnr-45462ef3a714c0d98fe570d96e6761e2b298c7d0.tar.bz2
nextpnr-45462ef3a714c0d98fe570d96e6761e2b298c7d0.zip
Fix Ui/Decal handling of active/inactive arch objects
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'ice40/arch.h')
-rw-r--r--ice40/arch.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/ice40/arch.h b/ice40/arch.h
index 04de5178..b6c64de4 100644
--- a/ice40/arch.h
+++ b/ice40/arch.h
@@ -371,6 +371,7 @@ struct Arch : BaseCtx
bel_to_cell[bel.index] = cell;
cells[cell]->bel = bel;
cells[cell]->belStrength = strength;
+ refreshUiBel(bel);
}
void unbindBel(BelId bel)
@@ -380,6 +381,7 @@ struct Arch : BaseCtx
cells[bel_to_cell[bel.index]]->bel = BelId();
cells[bel_to_cell[bel.index]]->belStrength = STRENGTH_NONE;
bel_to_cell[bel.index] = IdString();
+ refreshUiBel(bel);
}
bool checkBelAvail(BelId bel) const
@@ -473,6 +475,7 @@ struct Arch : BaseCtx
wire_to_net[wire.index] = net;
nets[net]->wires[wire].pip = PipId();
nets[net]->wires[wire].strength = strength;
+ refreshUiWire(wire);
}
void unbindWire(WireId wire)
@@ -488,10 +491,12 @@ struct Arch : BaseCtx
if (pip != PipId()) {
pip_to_net[pip.index] = IdString();
switches_locked[chip_info->pip_data[pip.index].switch_index] = IdString();
+ refreshUiPip(pip);
}
net_wires.erase(it);
wire_to_net[wire.index] = IdString();
+ refreshUiWire(wire);
}
bool checkWireAvail(WireId wire) const
@@ -542,6 +547,9 @@ struct Arch : BaseCtx
wire_to_net[dst.index] = net;
nets[net]->wires[dst].pip = pip;
nets[net]->wires[dst].strength = strength;
+
+ refreshUiPip(pip);
+ refreshUiWire(dst);
}
void unbindPip(PipId pip)
@@ -558,6 +566,9 @@ struct Arch : BaseCtx
pip_to_net[pip.index] = IdString();
switches_locked[chip_info->pip_data[pip.index].switch_index] = IdString();
+
+ refreshUiPip(pip);
+ refreshUiWire(dst);
}
bool checkPipAvail(PipId pip) const