diff options
Diffstat (limited to 'ecp5')
| -rw-r--r-- | ecp5/arch.cc | 4 | ||||
| -rw-r--r-- | ecp5/arch.h | 4 | ||||
| -rw-r--r-- | ecp5/archdefs.h | 4 | ||||
| -rw-r--r-- | ecp5/main.cc | 2 | 
4 files changed, 11 insertions, 3 deletions
| diff --git a/ecp5/arch.cc b/ecp5/arch.cc index e035c0f4..fe6a9545 100644 --- a/ecp5/arch.cc +++ b/ecp5/arch.cc @@ -400,7 +400,7 @@ BelId Arch::getBelByLocation(Loc loc) const  delay_t Arch::estimateDelay(WireId src, WireId dst) const  { -    return 100 * (abs(src.location.x - dst.location.x) + abs(src.location.y - dst.location.y)); +    return 170 * (abs(src.location.x - dst.location.x) + abs(src.location.y - dst.location.y));  }  delay_t Arch::predictDelay(const NetInfo *net_info, const PortRef &sink) const @@ -409,7 +409,7 @@ delay_t Arch::predictDelay(const NetInfo *net_info, const PortRef &sink) const      auto driver_loc = getBelLocation(driver.cell->bel);      auto sink_loc = getBelLocation(sink.cell->bel); -    return 100 * (abs(driver_loc.x - sink_loc.x) + abs(driver_loc.y - sink_loc.y)); +    return 170 * (abs(driver_loc.x - sink_loc.x) + abs(driver_loc.y - sink_loc.y));  }  bool Arch::getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay_t &budget) const { return false; } diff --git a/ecp5/arch.h b/ecp5/arch.h index 07b1e65d..aa3c5348 100644 --- a/ecp5/arch.h +++ b/ecp5/arch.h @@ -619,6 +619,8 @@ struct Arch : BaseCtx              return wire_to_net.at(wire);      } +    WireId getConflictingWireWire(WireId wire) const { return wire; } +      NetInfo *getConflictingWireNet(WireId wire) const      {          NPNR_ASSERT(wire != WireId()); @@ -724,6 +726,8 @@ struct Arch : BaseCtx              return pip_to_net.at(pip);      } +    WireId getConflictingPipWire(PipId pip) const { return WireId(); } +      NetInfo *getConflictingPipNet(PipId pip) const      {          NPNR_ASSERT(pip != PipId()); diff --git a/ecp5/archdefs.h b/ecp5/archdefs.h index b85852c2..01cbad46 100644 --- a/ecp5/archdefs.h +++ b/ecp5/archdefs.h @@ -75,6 +75,7 @@ struct Location      bool operator==(const Location &other) const { return x == other.x && y == other.y; }      bool operator!=(const Location &other) const { return x != other.x || y != other.y; } +    bool operator<(const Location &other) const { return y == other.y ? x < other.x : y < other.y; }  };  inline Location operator+(const Location &a, const Location &b) { return Location(a.x + b.x, a.y + b.y); } @@ -86,6 +87,7 @@ struct BelId      bool operator==(const BelId &other) const { return index == other.index && location == other.location; }      bool operator!=(const BelId &other) const { return index != other.index || location != other.location; } +    bool operator<(const BelId &other) const { return location == other.location ? index < other.index : location < other.location; }  };  struct WireId @@ -95,6 +97,7 @@ struct WireId      bool operator==(const WireId &other) const { return index == other.index && location == other.location; }      bool operator!=(const WireId &other) const { return index != other.index || location != other.location; } +    bool operator<(const WireId &other) const { return location == other.location ? index < other.index : location < other.location; }  };  struct PipId @@ -104,6 +107,7 @@ struct PipId      bool operator==(const PipId &other) const { return index == other.index && location == other.location; }      bool operator!=(const PipId &other) const { return index != other.index || location != other.location; } +    bool operator<(const PipId &other) const { return location == other.location ? index < other.index : location < other.location; }  };  struct GroupId diff --git a/ecp5/main.cc b/ecp5/main.cc index c444f96f..cc004df3 100644 --- a/ecp5/main.cc +++ b/ecp5/main.cc @@ -40,7 +40,7 @@ class ECP5CommandHandler : public CommandHandler      void customBitstream(Context *ctx) override;    protected: -    po::options_description getArchOptions(); +    po::options_description getArchOptions() override;  };  ECP5CommandHandler::ECP5CommandHandler(int argc, char **argv) : CommandHandler(argc, argv) {} | 
