From 926c186ec78efb086364a05ba7e83e68fa116301 Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Sat, 21 Jul 2018 13:05:09 -0700 Subject: Add Arch::getBudgetOverride() to eliminate hack for COUT --- generic/arch.cc | 5 +++++ generic/arch.h | 1 + 2 files changed, 6 insertions(+) (limited to 'generic') diff --git a/generic/arch.cc b/generic/arch.cc index b7ec847e..b9ec1695 100644 --- a/generic/arch.cc +++ b/generic/arch.cc @@ -372,6 +372,11 @@ delay_t Arch::estimateDelay(WireId src, WireId dst) const return (dx + dy) * grid_distance_to_delay; } +delay_t Arch::getBudgetOverride(const PortRef& pr, delay_t v) const +{ + return v; +} + // --------------------------------------------------------------- bool Arch::place() { return placer1(getCtx()); } diff --git a/generic/arch.h b/generic/arch.h index e1516569..977cc4d5 100644 --- a/generic/arch.h +++ b/generic/arch.h @@ -190,6 +190,7 @@ struct Arch : BaseCtx delay_t getRipupDelayPenalty() const { return 1.0; } float getDelayNS(delay_t v) const { return v; } uint32_t getDelayChecksum(delay_t v) const { return 0; } + delay_t getBudgetOverride(const PortRef& pr, delay_t v) const; bool pack() { return true; } bool place(); -- cgit v1.2.3 From 9d489e819863e431de3db58221f0d6fbe3387412 Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Wed, 25 Jul 2018 18:34:14 -0700 Subject: Retry clangformat --- generic/arch.cc | 5 +---- generic/arch.h | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) (limited to 'generic') diff --git a/generic/arch.cc b/generic/arch.cc index a12b7380..d1ca482c 100644 --- a/generic/arch.cc +++ b/generic/arch.cc @@ -396,10 +396,7 @@ delay_t Arch::estimateDelay(WireId src, WireId dst) const return (dx + dy) * grid_distance_to_delay; } -delay_t Arch::getBudgetOverride(const PortRef& pr, delay_t v) const -{ - return v; -} +delay_t Arch::getBudgetOverride(const PortRef &pr, delay_t v) const { return v; } // --------------------------------------------------------------- diff --git a/generic/arch.h b/generic/arch.h index 43f43842..08a7a247 100644 --- a/generic/arch.h +++ b/generic/arch.h @@ -196,7 +196,7 @@ struct Arch : BaseCtx delay_t getRipupDelayPenalty() const { return 1.0; } float getDelayNS(delay_t v) const { return v; } uint32_t getDelayChecksum(delay_t v) const { return 0; } - delay_t getBudgetOverride(const PortRef& pr, delay_t v) const; + delay_t getBudgetOverride(const PortRef &pr, delay_t v) const; bool pack() { return true; } bool place(); -- cgit v1.2.3 From 749dae4ae5b2b719237af5db28e98ff671bae265 Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Wed, 25 Jul 2018 23:02:31 -0700 Subject: Remove Arch::getBudgetOverride() --- generic/arch.cc | 2 -- generic/arch.h | 1 - 2 files changed, 3 deletions(-) (limited to 'generic') diff --git a/generic/arch.cc b/generic/arch.cc index d1ca482c..d7401356 100644 --- a/generic/arch.cc +++ b/generic/arch.cc @@ -396,8 +396,6 @@ delay_t Arch::estimateDelay(WireId src, WireId dst) const return (dx + dy) * grid_distance_to_delay; } -delay_t Arch::getBudgetOverride(const PortRef &pr, delay_t v) const { return v; } - // --------------------------------------------------------------- bool Arch::place() { return placer1(getCtx()); } diff --git a/generic/arch.h b/generic/arch.h index 08a7a247..97ed1ac2 100644 --- a/generic/arch.h +++ b/generic/arch.h @@ -196,7 +196,6 @@ struct Arch : BaseCtx delay_t getRipupDelayPenalty() const { return 1.0; } float getDelayNS(delay_t v) const { return v; } uint32_t getDelayChecksum(delay_t v) const { return 0; } - delay_t getBudgetOverride(const PortRef &pr, delay_t v) const; bool pack() { return true; } bool place(); -- cgit v1.2.3 From 97e546041e109fdade1099b056c7166578314846 Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Thu, 26 Jul 2018 21:37:19 -0700 Subject: Revert "Remove Arch::getBudgetOverride()" This reverts commit 749dae4ae5b2b719237af5db28e98ff671bae265. --- generic/arch.cc | 2 ++ generic/arch.h | 1 + 2 files changed, 3 insertions(+) (limited to 'generic') diff --git a/generic/arch.cc b/generic/arch.cc index 5c9864ab..03a6b122 100644 --- a/generic/arch.cc +++ b/generic/arch.cc @@ -403,6 +403,8 @@ delay_t Arch::estimateDelay(WireId src, WireId dst) const return (dx + dy) * grid_distance_to_delay; } +delay_t Arch::getBudgetOverride(const PortRef &pr, delay_t v) const { return v; } + // --------------------------------------------------------------- bool Arch::place() { return placer1(getCtx()); } diff --git a/generic/arch.h b/generic/arch.h index 01a90ee1..df21fbe4 100644 --- a/generic/arch.h +++ b/generic/arch.h @@ -198,6 +198,7 @@ struct Arch : BaseCtx delay_t getRipupDelayPenalty() const { return 1.0; } float getDelayNS(delay_t v) const { return v; } uint32_t getDelayChecksum(delay_t v) const { return 0; } + delay_t getBudgetOverride(const PortRef &pr, delay_t v) const; bool pack() { return true; } bool place(); -- cgit v1.2.3 From d083451cd5918c676e0f6a15dd8595bb3c077a6b Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Thu, 26 Jul 2018 22:31:16 -0700 Subject: Update getBudgetOverride() for other arches --- generic/arch.cc | 2 +- generic/arch.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'generic') diff --git a/generic/arch.cc b/generic/arch.cc index 03a6b122..ce6fe50a 100644 --- a/generic/arch.cc +++ b/generic/arch.cc @@ -403,7 +403,7 @@ delay_t Arch::estimateDelay(WireId src, WireId dst) const return (dx + dy) * grid_distance_to_delay; } -delay_t Arch::getBudgetOverride(const PortRef &pr, delay_t v) const { return v; } +delay_t Arch::getBudgetOverride(NetInfo *net_info, int user_idx, delay_t budget) const { return budget; } // --------------------------------------------------------------- diff --git a/generic/arch.h b/generic/arch.h index df21fbe4..b6892c85 100644 --- a/generic/arch.h +++ b/generic/arch.h @@ -198,7 +198,7 @@ struct Arch : BaseCtx delay_t getRipupDelayPenalty() const { return 1.0; } float getDelayNS(delay_t v) const { return v; } uint32_t getDelayChecksum(delay_t v) const { return 0; } - delay_t getBudgetOverride(const PortRef &pr, delay_t v) const; + delay_t getBudgetOverride(NetInfo *net_info, int user_idx, delay_t budget) const; bool pack() { return true; } bool place(); -- cgit v1.2.3 From 0daffec2a0efdbea36201eeb5666d208a10d0226 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Mon, 30 Jul 2018 15:35:40 +0200 Subject: Add predictDelay Arch API Signed-off-by: Clifford Wolf --- generic/arch.cc | 9 +++++++++ generic/arch.h | 1 + 2 files changed, 10 insertions(+) (limited to 'generic') diff --git a/generic/arch.cc b/generic/arch.cc index 5c9864ab..8ef37716 100644 --- a/generic/arch.cc +++ b/generic/arch.cc @@ -403,6 +403,15 @@ delay_t Arch::estimateDelay(WireId src, WireId dst) const return (dx + dy) * grid_distance_to_delay; } +delay_t Arch::predictDelay(WireId src, WireId dst) const +{ + const WireInfo &s = wires.at(src); + const WireInfo &d = wires.at(dst); + int dx = abs(s.x - d.x); + int dy = abs(s.y - d.y); + return (dx + dy) * grid_distance_to_delay; +} + // --------------------------------------------------------------- bool Arch::place() { return placer1(getCtx()); } diff --git a/generic/arch.h b/generic/arch.h index 01a90ee1..60220fbe 100644 --- a/generic/arch.h +++ b/generic/arch.h @@ -194,6 +194,7 @@ struct Arch : BaseCtx const std::vector &getGroupGroups(GroupId group) const; delay_t estimateDelay(WireId src, WireId dst) const; + delay_t predictDelay(WireId src, WireId dst) const; delay_t getDelayEpsilon() const { return 0.01; } delay_t getRipupDelayPenalty() const { return 1.0; } float getDelayNS(delay_t v) const { return v; } -- cgit v1.2.3 From a82f6f410595de26e82eaf4818e41036f0bc2f9c Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Mon, 30 Jul 2018 19:19:30 -0700 Subject: Modify predictDelay signature --- generic/arch.cc | 12 +++++++----- generic/arch.h | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) (limited to 'generic') diff --git a/generic/arch.cc b/generic/arch.cc index 8ef37716..4469a828 100644 --- a/generic/arch.cc +++ b/generic/arch.cc @@ -403,12 +403,14 @@ delay_t Arch::estimateDelay(WireId src, WireId dst) const return (dx + dy) * grid_distance_to_delay; } -delay_t Arch::predictDelay(WireId src, WireId dst) const +delay_t Arch::predictDelay(const NetInfo *net_info, const PortRef &sink) const; { - const WireInfo &s = wires.at(src); - const WireInfo &d = wires.at(dst); - int dx = abs(s.x - d.x); - int dy = abs(s.y - d.y); + const auto& driver = net_info->driver; + auto driver_loc = getBelLocation(driver.cell->bel); + auto sink_loc = getBelLocation(sink.cell->bel); + + int dx = abs(driver_loc.x - driver_loc.x); + int dy = abs(sink_loc.y - sink_locy); return (dx + dy) * grid_distance_to_delay; } diff --git a/generic/arch.h b/generic/arch.h index 60220fbe..f02649f6 100644 --- a/generic/arch.h +++ b/generic/arch.h @@ -194,7 +194,7 @@ struct Arch : BaseCtx const std::vector &getGroupGroups(GroupId group) const; delay_t estimateDelay(WireId src, WireId dst) const; - delay_t predictDelay(WireId src, WireId dst) const; + delay_t predictDelay(const NetInfo *net_info, const PortRef &sink) const; delay_t getDelayEpsilon() const { return 0.01; } delay_t getRipupDelayPenalty() const { return 1.0; } float getDelayNS(delay_t v) const { return v; } -- cgit v1.2.3 From f646ec790a79f29d6964f3b7e30088f044b4a4e9 Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Tue, 31 Jul 2018 19:31:54 -0700 Subject: Modify the getNetinfo*() functions and getBudgetOverride() to not use user_idx and to take a PortRef& instead --- generic/arch.cc | 2 +- generic/arch.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'generic') diff --git a/generic/arch.cc b/generic/arch.cc index 43015685..756537e8 100644 --- a/generic/arch.cc +++ b/generic/arch.cc @@ -414,7 +414,7 @@ delay_t Arch::predictDelay(const NetInfo *net_info, const PortRef &sink) const; return (dx + dy) * grid_distance_to_delay; } -delay_t Arch::getBudgetOverride(NetInfo *net_info, int user_idx, delay_t budget) const { return budget; } +delay_t getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay_t budget) const { return budget; } // --------------------------------------------------------------- diff --git a/generic/arch.h b/generic/arch.h index 154a2352..17d62ec3 100644 --- a/generic/arch.h +++ b/generic/arch.h @@ -199,7 +199,7 @@ struct Arch : BaseCtx delay_t getRipupDelayPenalty() const { return 1.0; } float getDelayNS(delay_t v) const { return v; } uint32_t getDelayChecksum(delay_t v) const { return 0; } - delay_t getBudgetOverride(NetInfo *net_info, int user_idx, delay_t budget) const; + delay_t getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay_t budget) const; bool pack() { return true; } bool place(); -- cgit v1.2.3 From 92ec2cd13825ef996ebf0d88246d975a19352800 Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Tue, 31 Jul 2018 20:57:36 -0700 Subject: clangformat for stuff I've touched --- generic/arch.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'generic') diff --git a/generic/arch.cc b/generic/arch.cc index 756537e8..b1905e6f 100644 --- a/generic/arch.cc +++ b/generic/arch.cc @@ -405,7 +405,7 @@ delay_t Arch::estimateDelay(WireId src, WireId dst) const delay_t Arch::predictDelay(const NetInfo *net_info, const PortRef &sink) const; { - const auto& driver = net_info->driver; + const auto &driver = net_info->driver; auto driver_loc = getBelLocation(driver.cell->bel); auto sink_loc = getBelLocation(sink.cell->bel); -- cgit v1.2.3