aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/arch.h
diff options
context:
space:
mode:
Diffstat (limited to 'ecp5/arch.h')
-rw-r--r--ecp5/arch.h25
1 files changed, 23 insertions, 2 deletions
diff --git a/ecp5/arch.h b/ecp5/arch.h
index 7a8f5b36..22016fae 100644
--- a/ecp5/arch.h
+++ b/ecp5/arch.h
@@ -98,7 +98,7 @@ NPNR_PACKED_STRUCT(struct LocationTypePOD {
});
NPNR_PACKED_STRUCT(struct PIOInfoPOD {
- Location abs_loc;
+ LocationPOD abs_loc;
int32_t bel_index;
RelPtr<char> function_name;
int16_t bank;
@@ -107,7 +107,7 @@ NPNR_PACKED_STRUCT(struct PIOInfoPOD {
NPNR_PACKED_STRUCT(struct PackagePinPOD {
RelPtr<char> name;
- Location abs_loc;
+ LocationPOD abs_loc;
int32_t bel_index;
});
@@ -117,6 +117,26 @@ NPNR_PACKED_STRUCT(struct PackageInfoPOD {
RelPtr<PackagePinPOD> pin_data;
});
+enum TapDirection : int8_t
+{
+ TAP_DIR_LEFT = 0,
+ TAP_DIR_RIGHT = 1
+};
+
+enum GlobalQuadrant : int8_t
+{
+ QUAD_UL = 0,
+ QUAD_UR = 1,
+ QUAD_LL = 2,
+ QUAD_LR = 3,
+};
+
+NPNR_PACKED_STRUCT(struct GlobalInfoPOD {
+ int16_t tap_col;
+ TapDirection tap_dir;
+ GlobalQuadrant quad;
+});
+
NPNR_PACKED_STRUCT(struct ChipInfoPOD {
int32_t width, height;
int32_t num_tiles;
@@ -124,6 +144,7 @@ NPNR_PACKED_STRUCT(struct ChipInfoPOD {
int32_t num_packages, num_pios;
RelPtr<LocationTypePOD> locations;
RelPtr<int32_t> location_type;
+ RelPtr<GlobalInfoPOD> location_glbinfo;
RelPtr<RelPtr<char>> tiletype_names;
RelPtr<PackageInfoPOD> package_info;
RelPtr<PIOInfoPOD> pio_info;