diff options
author | gatecat <gatecat@ds0.me> | 2022-03-04 18:17:08 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-04 18:17:08 +0000 |
commit | 285325ad5bf60b5230789b9e64b4dc76a406c04d (patch) | |
tree | 4b65cf1e01ca5657bc2625ad252292648d67f64f /fpga_interchange/arch.cc | |
parent | 2c8062bdb396682a558ecbdc574620e4121b7faf (diff) | |
parent | b5d6fc8ed7bc446b1d810c82029e7b327bea5049 (diff) | |
download | nextpnr-285325ad5bf60b5230789b9e64b4dc76a406c04d.tar.gz nextpnr-285325ad5bf60b5230789b9e64b4dc76a406c04d.tar.bz2 nextpnr-285325ad5bf60b5230789b9e64b4dc76a406c04d.zip |
Merge pull request #932 from antmicro/remove-hardcoded-values-from-lut-mapping-cache
interchange: lut map cache: remove hardcoded values
Diffstat (limited to 'fpga_interchange/arch.cc')
-rw-r--r-- | fpga_interchange/arch.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fpga_interchange/arch.cc b/fpga_interchange/arch.cc index a5e802d3..e55c94af 100644 --- a/fpga_interchange/arch.cc +++ b/fpga_interchange/arch.cc @@ -224,10 +224,14 @@ Arch::Arch(ArchArgs args) : args(args), disallow_site_routing(false) // Initially LutElement vectors for each tile type. tile_type_index = 0; + max_lut_cells = 0; + max_lut_pins = 0; lut_elements.resize(chip_info->tile_types.size()); for (const TileTypeInfoPOD &tile_type : chip_info->tile_types) { std::vector<LutElement> &elements = lut_elements[tile_type_index++]; elements.reserve(tile_type.lut_elements.size()); + + int lut_cells_count = 0; for (auto &lut_element : tile_type.lut_elements) { elements.emplace_back(); @@ -252,10 +256,15 @@ Arch::Arch(ArchArgs args) : args(args), disallow_site_routing(false) } lut.output_pin = IdString(lut_bel.out_pin); + lut_cells_count++; + + max_lut_pins = std::max((int)lut_bel.pins.size(), max_lut_pins); } element.compute_pin_order(); } + + max_lut_cells = std::max(lut_cells_count, max_lut_cells); } // Map lut cell types to their LutCellPOD |