diff options
Diffstat (limited to 'fpga_interchange/pseudo_pip_model.h')
-rw-r--r-- | fpga_interchange/pseudo_pip_model.h | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/fpga_interchange/pseudo_pip_model.h b/fpga_interchange/pseudo_pip_model.h index f0d93909..53e2b3a3 100644 --- a/fpga_interchange/pseudo_pip_model.h +++ b/fpga_interchange/pseudo_pip_model.h @@ -23,15 +23,16 @@ #include <tuple> +#include "dynamic_bitarray.h" +#include "hash_table.h" #include "nextpnr_namespaces.h" #include "nextpnr_types.h" #include "site_router.h" -#include "dynamic_bitarray.h" -#include "hash_table.h" NEXTPNR_NAMESPACE_BEGIN -struct PseudoPipBel { +struct PseudoPipBel +{ // Which BEL in the tile does the pseudo pip use? int32_t bel_index; @@ -46,22 +47,17 @@ struct PseudoPipBel { int32_t output_bel_pin; }; -struct LogicBelKey { +struct LogicBelKey +{ int32_t tile_type; int32_t pip_index; int32_t site; - std::tuple<int32_t, int32_t, int32_t> make_tuple() const { - return std::make_tuple(tile_type, pip_index, site); - } + std::tuple<int32_t, int32_t, int32_t> make_tuple() const { return std::make_tuple(tile_type, pip_index, site); } - bool operator == (const LogicBelKey & other) const { - return make_tuple() == other.make_tuple(); - } + bool operator==(const LogicBelKey &other) const { return make_tuple() == other.make_tuple(); } - bool operator < (const LogicBelKey & other) const { - return make_tuple() < other.make_tuple(); - } + bool operator<(const LogicBelKey &other) const { return make_tuple() < other.make_tuple(); } }; NEXTPNR_NAMESPACE_END @@ -80,13 +76,13 @@ template <> struct hash<NEXTPNR_NAMESPACE_PREFIX LogicBelKey> } }; -}; - +}; // namespace std NEXTPNR_NAMESPACE_BEGIN // Storage for tile type generic pseudo pip data and lookup. -struct PseudoPipData { +struct PseudoPipData +{ // Initial data for specified tile type, if not already initialized. void init_tile_type(const Context *ctx, int32_t tile_type); @@ -107,7 +103,8 @@ struct PseudoPipData { }; // Tile instance fast pseudo pip lookup. -struct PseudoPipModel { +struct PseudoPipModel +{ int32_t tile; DynamicBitarray<> allowed_pseudo_pips; HashTables::HashMap<int32_t, size_t> pseudo_pip_sites; @@ -124,7 +121,7 @@ struct PseudoPipModel { // // If the tile has no placed elements, then prepare_for_routing does not // need to be called after init. - void prepare_for_routing(const Context *ctx, const std::vector<SiteRouter> & sites); + void prepare_for_routing(const Context *ctx, const std::vector<SiteRouter> &sites); // Returns true if the pseudo pip is allowed given current site placements // and other pseudo pips. |