diff --git a/common/router1.cc b/common/router1.cc index 92bccceb..c001a943 100644 --- a/common/router1.cc +++ b/common/router1.cc @@ -375,7 +375,7 @@ struct Router if (ctx->debug) { log(" Destination wire: %s\n", ctx->getWireName(dst_wire).c_str(ctx)); - log(" Path delay estimate: %.2f\n", float(ctx->estimateDelay(src_wire, dst_wire))); + log(" Path delay estimate: %.2f\n", ctx->getDelayNS(ctx->estimateDelay(src_wire, dst_wire))); } delay_t max_delay = 3 * ctx->estimateDelay(src_wire, dst_wire); diff --git a/xc7/arch.cc b/xc7/arch.cc index 868b9ee1..3e5b7c06 100644 --- a/xc7/arch.cc +++ b/xc7/arch.cc @@ -146,14 +146,19 @@ std::vector TorcInfo::construct_wire_to_delay(const std::vector wire_to_delay; wire_to_delay.reserve(wire_to_tilewire.size()); - const boost::regex re_124 = boost::regex("[NESW][NESWLR](\\d)BEG(_[NS])?\\d"); - const boost::regex re_L = boost::regex("L(H|V|VB)(_L)?\\d+"); + const boost::regex re_124 = boost::regex("[NESW][NESWLR](\\d)BEG(_[NS])?\\d"); + const boost::regex re_L = boost::regex("L(H|V|VB)(_L)?\\d+"); + const boost::regex re_BYP = boost::regex("BYP(_ALT)?\\d"); + const boost::regex re_BYP_B = boost::regex("BYP_[BL]\\d"); + const boost::regex re_BOUNCE_NS = boost::regex("(BYP|FAN)_BOUNCE_[NS]3_\\d"); + const boost::regex re_FAN = boost::regex("FAN(_ALT)?\\d"); + boost::cmatch what; - DelayInfo d; ExtendedWireInfo ewi(ddb); for (const auto &tw : wire_to_tilewire) { ewi.set(tw); + DelayInfo d; if (boost::regex_match(ewi.mWireName, what, re_124)) { std::string l(what[1]); switch (l[0]) { @@ -171,7 +176,15 @@ std::vector TorcInfo::construct_wire_to_delay(const std::vector