aboutsummaryrefslogtreecommitdiffstats
path: root/ice40/chip.h
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2018-06-13 12:38:28 +0200
committerClifford Wolf <clifford@clifford.at>2018-06-13 12:38:28 +0200
commit145c849596bdcd24f3b4e617eeb4ee06e1b93452 (patch)
tree243d63251d31498f4e92bfdae3ae0d0f087f9957 /ice40/chip.h
parent4d7f18dd98a7ef9540a279a8e27cb9dbef355af7 (diff)
parentde0918c28758b09f638e02ffc04fad989321da1b (diff)
downloadnextpnr-145c849596bdcd24f3b4e617eeb4ee06e1b93452.tar.gz
nextpnr-145c849596bdcd24f3b4e617eeb4ee06e1b93452.tar.bz2
nextpnr-145c849596bdcd24f3b4e617eeb4ee06e1b93452.zip
Merge branch 'master' of gitlab.com:SymbioticEDA/nextpnr
Diffstat (limited to 'ice40/chip.h')
-rw-r--r--ice40/chip.h20
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;