Merge branch 'master' into extend-placement

This commit is contained in:
YRabbit 2021-09-07 09:18:28 +10:00
commit 9368671ca9
3 changed files with 12 additions and 4 deletions

View File

@ -92,7 +92,7 @@ struct Router2
int16_t x = 0, y = 0;
// Visit data
PipId pip_fwd, pip_bwd;
bool visited_fwd, visited_bwd;
bool visited_fwd = false, visited_bwd = false;
};
Context *ctx;
@ -687,6 +687,7 @@ struct Router2
// Explore forwards
auto curr = t.fwd_queue.top();
t.fwd_queue.pop();
++explored;
if (was_visited_bwd(curr.wire)) {
// Meet in the middle; done
midpoint_wire = curr.wire;
@ -729,6 +730,7 @@ struct Router2
// Explore backwards
auto curr = t.bwd_queue.top();
t.bwd_queue.pop();
++explored;
if (was_visited_fwd(curr.wire)) {
// Meet in the middle; done
midpoint_wire = curr.wire;

View File

@ -192,7 +192,8 @@ struct SiteExpansionLoop
}
// Expand from wire specified, always downhill.
bool expand_net(const SiteArch *ctx, SiteRoutingCache *site_routing_cache, const SiteNetInfo *net, bool cache_disabled = false)
bool expand_net(const SiteArch *ctx, SiteRoutingCache *site_routing_cache, const SiteNetInfo *net,
bool cache_disabled = false)
{
if (net->driver == net_driver && net->users == net_users) {
return expand_result;
@ -1415,7 +1416,8 @@ void SiteRouter::bindSiteRouting(Context *ctx)
block_lut_outputs(&site_arch, blocked_wires);
block_cluster_wires(&site_arch);
reserve_site_ports(&site_arch);
NPNR_ASSERT(route_site(&site_arch, &ctx->site_routing_cache, &ctx->node_storage, /*explain=*/false, /*cache_disabled=*/true));
NPNR_ASSERT(route_site(&site_arch, &ctx->site_routing_cache, &ctx->node_storage, /*explain=*/false,
/*cache_disabled=*/true));
check_routing(site_arch);
apply_routing(ctx, site_arch, lut_thrus);

View File

@ -1034,7 +1034,11 @@ struct Arch : BaseArch<ArchRanges>
std::vector<BelId> getBelsByTile(int x, int y) const override;
bool getBelGlobalBuf(BelId bel) const override { return false; }
bool getBelGlobalBuf(BelId bel) const override
{
IdString type = getBelType(bel);
return type == id_DCC || type == id_VCC_DRV;
}
IdString getBelType(BelId bel) const override
{