nexus: Add global info to BBA
Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
parent
2fc75bae79
commit
3c8a740374
50
nexus/arch.h
50
nexus/arch.h
@ -112,12 +112,15 @@ NPNR_PACKED_STRUCT(struct PipInfoPOD {
|
|||||||
int32_t tile_type;
|
int32_t tile_type;
|
||||||
});
|
});
|
||||||
|
|
||||||
enum RelLocFlags
|
enum RelLocType : uint8_t
|
||||||
{
|
{
|
||||||
REL_GLOBAL = 0x80,
|
REL_LOC_XY = 0,
|
||||||
REL_BRANCH = 0x40,
|
REL_LOC_GLOBAL = 1,
|
||||||
REL_SPINE = 0x20,
|
REL_LOC_BRANCH = 2,
|
||||||
REL_HROW = 0x10
|
REL_LOC_BRANCH_L = 3,
|
||||||
|
REL_LOC_BRANCH_R = 4,
|
||||||
|
REL_LOC_SPINE = 5,
|
||||||
|
REL_LOC_HROW = 6,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ArcFlags
|
enum ArcFlags
|
||||||
@ -129,7 +132,7 @@ enum ArcFlags
|
|||||||
NPNR_PACKED_STRUCT(struct RelWireInfoPOD {
|
NPNR_PACKED_STRUCT(struct RelWireInfoPOD {
|
||||||
int16_t rel_x, rel_y;
|
int16_t rel_x, rel_y;
|
||||||
uint16_t wire_index;
|
uint16_t wire_index;
|
||||||
uint8_t loc_flags;
|
uint8_t loc_type;
|
||||||
uint8_t arc_flags;
|
uint8_t arc_flags;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -180,7 +183,7 @@ NPNR_PACKED_STRUCT(struct GridLocationPOD {
|
|||||||
RelPtr<PhysicalTileInfoPOD> phys_tiles;
|
RelPtr<PhysicalTileInfoPOD> phys_tiles;
|
||||||
});
|
});
|
||||||
|
|
||||||
NPNR_PACKED_STRUCT(struct PinInfo {
|
NPNR_PACKED_STRUCT(struct PinInfoPOD {
|
||||||
RelPtr<char> pin_name;
|
RelPtr<char> pin_name;
|
||||||
int32_t dqs_func; // DQS function IdString
|
int32_t dqs_func; // DQS function IdString
|
||||||
int32_t clk_func; // Clock function IdStrinng
|
int32_t clk_func; // Clock function IdStrinng
|
||||||
@ -190,10 +193,40 @@ NPNR_PACKED_STRUCT(struct PinInfo {
|
|||||||
uint16_t bel_z; // IO bel Z
|
uint16_t bel_z; // IO bel Z
|
||||||
});
|
});
|
||||||
|
|
||||||
|
NPNR_PACKED_STRUCT(struct GlobalBranchInfoPOD {
|
||||||
|
uint16_t branch_col;
|
||||||
|
uint16_t from_col;
|
||||||
|
uint16_t tap_driver_col;
|
||||||
|
uint16_t tap_side;
|
||||||
|
uint16_t to_col;
|
||||||
|
uint16_t padding;
|
||||||
|
});
|
||||||
|
|
||||||
|
NPNR_PACKED_STRUCT(struct GlobalSpineInfoPOD {
|
||||||
|
uint16_t from_row;
|
||||||
|
uint16_t to_row;
|
||||||
|
uint16_t spine_row;
|
||||||
|
uint16_t padding;
|
||||||
|
});
|
||||||
|
|
||||||
|
NPNR_PACKED_STRUCT(struct GlobalHrowInfoPOD {
|
||||||
|
uint16_t hrow_col;
|
||||||
|
uint16_t padding;
|
||||||
|
uint32_t num_spine_cols;
|
||||||
|
RelPtr<uint16_t> spine_cols;
|
||||||
|
});
|
||||||
|
|
||||||
|
NPNR_PACKED_STRUCT(struct GlobalInfoPOD {
|
||||||
|
uint32_t num_branches, num_spines, num_hrows;
|
||||||
|
RelPtr<GlobalBranchInfoPOD> branches;
|
||||||
|
RelPtr<GlobalSpineInfoPOD> spines;
|
||||||
|
RelPtr<GlobalHrowInfoPOD> hrows;
|
||||||
|
});
|
||||||
|
|
||||||
NPNR_PACKED_STRUCT(struct PackageInfoPOD {
|
NPNR_PACKED_STRUCT(struct PackageInfoPOD {
|
||||||
RelPtr<char> package_name;
|
RelPtr<char> package_name;
|
||||||
uint32_t num_pins;
|
uint32_t num_pins;
|
||||||
RelPtr<PinInfo> pins;
|
RelPtr<PinInfoPOD> pins;
|
||||||
});
|
});
|
||||||
|
|
||||||
NPNR_PACKED_STRUCT(struct ChipInfoPOD {
|
NPNR_PACKED_STRUCT(struct ChipInfoPOD {
|
||||||
@ -202,6 +235,7 @@ NPNR_PACKED_STRUCT(struct ChipInfoPOD {
|
|||||||
uint16_t height;
|
uint16_t height;
|
||||||
uint32_t num_tiles;
|
uint32_t num_tiles;
|
||||||
RelPtr<GridLocationPOD> grid;
|
RelPtr<GridLocationPOD> grid;
|
||||||
|
RelPtr<GlobalInfoPOD> globals;
|
||||||
});
|
});
|
||||||
|
|
||||||
NPNR_PACKED_STRUCT(struct IdStringDBPOD {
|
NPNR_PACKED_STRUCT(struct IdStringDBPOD {
|
||||||
|
@ -1 +1 @@
|
|||||||
3
|
4
|
||||||
|
Loading…
Reference in New Issue
Block a user