nexus: Update to planned IO fields
Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
parent
75040cdbdf
commit
acb4cf9ead
52
nexus/arch.h
52
nexus/arch.h
@ -183,14 +183,44 @@ NPNR_PACKED_STRUCT(struct GridLocationPOD {
|
||||
RelPtr<PhysicalTileInfoPOD> phys_tiles;
|
||||
});
|
||||
|
||||
NPNR_PACKED_STRUCT(struct PinInfoPOD {
|
||||
RelPtr<char> pin_name;
|
||||
int32_t dqs_func; // DQS function IdString
|
||||
int32_t clk_func; // Clock function IdStrinng
|
||||
enum PioSide : uint8_t
|
||||
{
|
||||
PIO_LEFT = 0,
|
||||
PIO_RIGHT = 1,
|
||||
PIO_TOP = 2,
|
||||
PIO_BOTTOM = 3
|
||||
};
|
||||
|
||||
enum PioDqsFunction : uint8_t
|
||||
{
|
||||
PIO_DQS_DQ = 0,
|
||||
PIO_DQS_DQS = 1,
|
||||
PIO_DQS_DQSN = 2
|
||||
};
|
||||
|
||||
NPNR_PACKED_STRUCT(struct PackageInfoPOD {
|
||||
RelPtr<char> full_name; // full package name, e.g. CABGA400
|
||||
RelPtr<char> short_name; // name used in part number, e.g. BG400
|
||||
});
|
||||
|
||||
NPNR_PACKED_STRUCT(struct PadInfoPOD {
|
||||
int16_t offset; // position offset of tile along side (-1 if not a regular PIO)
|
||||
int8_t side; // PIO side (see PioSide enum)
|
||||
int8_t pio_index; // index within IO tile
|
||||
|
||||
int16_t bank; // IO bank
|
||||
uint16_t tile_x; // IO tile X
|
||||
uint16_t tile_y; // IO tile Y
|
||||
uint16_t bel_z; // IO bel Z
|
||||
|
||||
int16_t dqs_group; // DQS group offset
|
||||
int8_t dqs_func; // DQS function
|
||||
|
||||
int8_t vref_index; // VREF index in bank, or -1 if N/A
|
||||
|
||||
uint16_t num_funcs; // length of special function list
|
||||
uint16_t padding; // padding for alignment
|
||||
|
||||
RelPtr<uint32_t> func_strs; // list of special function IdStrings
|
||||
|
||||
RelPtr<RelPtr<char>> pins; // package index --> package pin name
|
||||
});
|
||||
|
||||
NPNR_PACKED_STRUCT(struct GlobalBranchInfoPOD {
|
||||
@ -223,12 +253,6 @@ NPNR_PACKED_STRUCT(struct GlobalInfoPOD {
|
||||
RelPtr<GlobalHrowInfoPOD> hrows;
|
||||
});
|
||||
|
||||
NPNR_PACKED_STRUCT(struct PackageInfoPOD {
|
||||
RelPtr<char> package_name;
|
||||
uint32_t num_pins;
|
||||
RelPtr<PinInfoPOD> pins;
|
||||
});
|
||||
|
||||
NPNR_PACKED_STRUCT(struct ChipInfoPOD {
|
||||
RelPtr<char> device_name;
|
||||
uint16_t width;
|
||||
@ -1115,7 +1139,7 @@ struct Arch : BaseCtx
|
||||
|
||||
WireId getPipDstWire(PipId pip) const { return canonical_wire(pip.tile, pip_data(pip).to_wire); }
|
||||
|
||||
DelayInfo getPipDelay(PipId pip) const { return getDelayFromNS(0.1 + (pip.index % 30) / 1000.0 ); }
|
||||
DelayInfo getPipDelay(PipId pip) const { return getDelayFromNS(0.1 + (pip.index % 30) / 1000.0); }
|
||||
|
||||
UpDownhillPipRange getPipsDownhill(WireId wire) const
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user