Change DelayInfo semantics to what we actually need
Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
parent
c556242976
commit
78f40ca0af
@ -143,12 +143,12 @@ struct Router
|
||||
thisVisitCntLimit = (thisVisitCnt * 3) / 2;
|
||||
|
||||
for (auto pip : ctx->getPipsDownhill(qw.wire)) {
|
||||
delay_t next_delay = qw.delay + ctx->getPipDelay(pip).avgDelay();
|
||||
delay_t next_delay = qw.delay + ctx->getPipDelay(pip).maxDelay();
|
||||
WireId next_wire = ctx->getPipDstWire(pip);
|
||||
bool foundRipupNet = false;
|
||||
thisVisitCnt++;
|
||||
|
||||
next_delay += ctx->getWireDelay(next_wire).avgDelay();
|
||||
next_delay += ctx->getWireDelay(next_wire).maxDelay();
|
||||
|
||||
if (!ctx->checkWireAvail(next_wire)) {
|
||||
if (!ripup)
|
||||
@ -228,7 +228,7 @@ struct Router
|
||||
: ctx(ctx), scores(scores), ripup(ripup), ripup_penalty(ripup_penalty)
|
||||
{
|
||||
std::unordered_map<WireId, delay_t> src_wires;
|
||||
src_wires[src_wire] = ctx->getWireDelay(src_wire).avgDelay();
|
||||
src_wires[src_wire] = ctx->getWireDelay(src_wire).maxDelay();
|
||||
route(src_wires, dst_wire);
|
||||
routedOkay = visited.count(dst_wire);
|
||||
|
||||
@ -286,7 +286,7 @@ struct Router
|
||||
log(" Source wire: %s\n", ctx->getWireName(src_wire).c_str(ctx));
|
||||
|
||||
std::unordered_map<WireId, delay_t> src_wires;
|
||||
src_wires[src_wire] = ctx->getWireDelay(src_wire).avgDelay();
|
||||
src_wires[src_wire] = ctx->getWireDelay(src_wire).maxDelay();
|
||||
|
||||
ripup_net(ctx, net_name);
|
||||
ctx->bindWire(src_wire, net_name, STRENGTH_WEAK);
|
||||
|
@ -32,9 +32,14 @@ struct DelayInfo
|
||||
{
|
||||
delay_t delay = 0;
|
||||
|
||||
delay_t raiseDelay() const { return delay; }
|
||||
delay_t fallDelay() const { return delay; }
|
||||
delay_t avgDelay() const { return delay; }
|
||||
delay_t minRaiseDelay() const { return delay; }
|
||||
delay_t maxRaiseDelay() const { return delay; }
|
||||
|
||||
delay_t minFallDelay() const { return delay; }
|
||||
delay_t maxFallDelay() const { return delay; }
|
||||
|
||||
delay_t minDelay() const { return delay; }
|
||||
delay_t maxDelay() const { return delay; }
|
||||
|
||||
DelayInfo operator+(const DelayInfo &other) const
|
||||
{
|
||||
|
@ -29,11 +29,14 @@ struct DelayInfo
|
||||
{
|
||||
delay_t delay = 0;
|
||||
|
||||
delay_t raiseDelay() const { return delay; }
|
||||
delay_t minRaiseDelay() const { return delay; }
|
||||
delay_t maxRaiseDelay() const { return delay; }
|
||||
|
||||
delay_t fallDelay() const { return delay; }
|
||||
delay_t minFallDelay() const { return delay; }
|
||||
delay_t maxFallDelay() const { return delay; }
|
||||
|
||||
delay_t avgDelay() const { return delay; }
|
||||
delay_t minDelay() const { return delay; }
|
||||
delay_t maxDelay() const { return delay; }
|
||||
|
||||
DelayInfo operator+(const DelayInfo &other) const
|
||||
{
|
||||
|
@ -507,6 +507,14 @@ void DesignWidget::onItemSelectionChanged()
|
||||
addProperty(topItem, QVariant::String, "Conflicting Net", ctx->getConflictingWireNet(wire).c_str(ctx),
|
||||
ElementType::NET);
|
||||
|
||||
DelayInfo delay = ctx->getWireDelay(wire);
|
||||
|
||||
QtProperty *delayItem = addSubGroup(topItem, "Delay");
|
||||
addProperty(delayItem, QVariant::Double, "Min Raise", delay.minRaiseDelay());
|
||||
addProperty(delayItem, QVariant::Double, "Max Raise", delay.maxRaiseDelay());
|
||||
addProperty(delayItem, QVariant::Double, "Min Fall", delay.minFallDelay());
|
||||
addProperty(delayItem, QVariant::Double, "Max Fall", delay.maxFallDelay());
|
||||
|
||||
QtProperty *belpinItem = addSubGroup(topItem, "BelPin Uphill");
|
||||
BelPin uphill = ctx->getBelPinUphill(wire);
|
||||
if (uphill.bel != BelId())
|
||||
@ -566,9 +574,10 @@ void DesignWidget::onItemSelectionChanged()
|
||||
DelayInfo delay = ctx->getPipDelay(pip);
|
||||
|
||||
QtProperty *delayItem = addSubGroup(topItem, "Delay");
|
||||
addProperty(delayItem, QVariant::Double, "Raise", delay.raiseDelay());
|
||||
addProperty(delayItem, QVariant::Double, "Fall", delay.fallDelay());
|
||||
addProperty(delayItem, QVariant::Double, "Average", delay.avgDelay());
|
||||
addProperty(delayItem, QVariant::Double, "Min Raise", delay.minRaiseDelay());
|
||||
addProperty(delayItem, QVariant::Double, "Max Raise", delay.maxRaiseDelay());
|
||||
addProperty(delayItem, QVariant::Double, "Min Fall", delay.minFallDelay());
|
||||
addProperty(delayItem, QVariant::Double, "Max Fall", delay.maxFallDelay());
|
||||
} else if (type == ElementType::NET) {
|
||||
NetInfo *net = ctx->nets.at(c).get();
|
||||
|
||||
|
@ -29,9 +29,14 @@ struct DelayInfo
|
||||
{
|
||||
delay_t delay = 0;
|
||||
|
||||
delay_t raiseDelay() const { return delay; }
|
||||
delay_t fallDelay() const { return delay; }
|
||||
delay_t avgDelay() const { return delay; }
|
||||
delay_t minRaiseDelay() const { return delay; }
|
||||
delay_t maxRaiseDelay() const { return delay; }
|
||||
|
||||
delay_t minFallDelay() const { return delay; }
|
||||
delay_t maxFallDelay() const { return delay; }
|
||||
|
||||
delay_t minDelay() const { return delay; }
|
||||
delay_t maxDelay() const { return delay; }
|
||||
|
||||
DelayInfo operator+(const DelayInfo &other) const
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user