diff options
Diffstat (limited to 'ice40/chip.h')
-rw-r--r-- | ice40/chip.h | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/ice40/chip.h b/ice40/chip.h index 2c95bf4e..5eea1b8e 100644 --- a/ice40/chip.h +++ b/ice40/chip.h @@ -118,6 +118,19 @@ struct WireInfoPOD float x, y; }; +struct PackagePinPOD +{ + const char *name; + int32_t bel_index; +}; + +struct PackageInfoPOD +{ + const char *name; + int num_pins; + PackagePinPOD *pins; +}; + enum TileType { TILE_NONE = 0, @@ -173,12 +186,13 @@ struct ChipInfoPOD { int width, height; int num_bels, num_wires, num_pips; - int num_switches; + int num_switches, num_packages; BelInfoPOD *bel_data; WireInfoPOD *wire_data; PipInfoPOD *pip_data; TileType *tile_grid; BitstreamInfoPOD *bits_info; + PackageInfoPOD *packages_data; }; extern ChipInfoPOD chip_info_384; @@ -417,11 +431,13 @@ struct ChipArgs HX8K, UP5K } type = NONE; + std::string package; }; struct Chip { ChipInfoPOD chip_info; + PackageInfoPOD *package_info; mutable std::unordered_map<IdString, int> bel_by_name; mutable std::unordered_map<IdString, int> wire_by_name; @@ -682,6 +698,8 @@ struct Chip return range; } + BelId getPackagePinBel(const std::string &pin) const; + // ------------------------------------------------- PosInfo getBelPosition(BelId bel) const; |