diff options
author | gatecat <gatecat@ds0.me> | 2021-05-05 10:36:32 +0100 |
---|---|---|
committer | gatecat <gatecat@ds0.me> | 2021-05-07 10:28:59 +0100 |
commit | 9a1cad85fe66138c6be2da0ad0a5349240f5a546 (patch) | |
tree | 7916c09f6b579d8d011672796f68996d5ebf7f37 /fpga_interchange/arch.cc | |
parent | 9b3fb00908739ebd8a6684e68110a35e888b62ef (diff) | |
download | nextpnr-9a1cad85fe66138c6be2da0ad0a5349240f5a546.tar.gz nextpnr-9a1cad85fe66138c6be2da0ad0a5349240f5a546.tar.bz2 nextpnr-9a1cad85fe66138c6be2da0ad0a5349240f5a546.zip |
interchange: Adding a basic global buffer placer
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'fpga_interchange/arch.cc')
-rw-r--r-- | fpga_interchange/arch.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fpga_interchange/arch.cc b/fpga_interchange/arch.cc index ee462848..938c4f2c 100644 --- a/fpga_interchange/arch.cc +++ b/fpga_interchange/arch.cc @@ -479,6 +479,14 @@ IdString Arch::getWireType(WireId wire) const return IdString(chip_info->wire_types[wire_type].name); } +bool Arch::is_site_wire(WireId wire) const +{ + if (wire.tile == -1) + return false; + const auto &tile_type = loc_info(chip_info, wire); + return tile_type.wire_data[wire.index].site != -1; +} + WireCategory Arch::get_wire_category(WireId wire) const { int tile = wire.tile, index = wire.index; @@ -791,6 +799,8 @@ bool Arch::place() getCtx()->check(); #endif + place_globals(); + std::string placer = str_or_default(settings, id("placer"), defaultPlacer); if (placer == "heap") { PlacerHeapCfg cfg(getCtx()); |