Redesign PosInfo API
Signed-off-by: Clifford Wolf <clifford@clifford.at>
This commit is contained in:
parent
301136db03
commit
4d7f18dd98
@ -17,6 +17,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <math.h>
|
||||||
#include "nextpnr.h"
|
#include "nextpnr.h"
|
||||||
|
|
||||||
NEXTPNR_NAMESPACE_BEGIN
|
NEXTPNR_NAMESPACE_BEGIN
|
||||||
@ -138,6 +139,42 @@ const std::vector<PipId> &Chip::getWireAliases(WireId wire) const
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
|
||||||
|
PosInfo Chip::getBelPosition(BelId bel) const
|
||||||
|
{
|
||||||
|
PosInfo pos;
|
||||||
|
assert(bel != BelId());
|
||||||
|
// pos.x = ...;
|
||||||
|
// pos.y = ...;
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
PosInfo Chip::getWirePosition(WireId wire) const
|
||||||
|
{
|
||||||
|
PosInfo pos;
|
||||||
|
assert(wire != WireId());
|
||||||
|
// pos.x = ...;
|
||||||
|
// pos.y = ...;
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
PosInfo Chip::getPipPosition(PipId pip) const
|
||||||
|
{
|
||||||
|
PosInfo pos;
|
||||||
|
assert(pip != PipId());
|
||||||
|
// pos.x = ...;
|
||||||
|
// pos.y = ...;
|
||||||
|
return pos;
|
||||||
|
}
|
||||||
|
|
||||||
|
float Chip::estimateDelay(PosInfo src, PosInfo dst) const
|
||||||
|
{
|
||||||
|
return fabsf(src.x - dst.x) + fabsf(src.x - dst.x);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
|
||||||
std::vector<GraphicElement> Chip::getBelGraphics(BelId bel) const
|
std::vector<GraphicElement> Chip::getBelGraphics(BelId bel) const
|
||||||
{
|
{
|
||||||
static std::vector<GraphicElement> ret;
|
static std::vector<GraphicElement> ret;
|
||||||
|
12
dummy/chip.h
12
dummy/chip.h
@ -42,6 +42,11 @@ struct DelayInfo
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct PosInfo
|
||||||
|
{
|
||||||
|
float x = 0, y = 0;
|
||||||
|
};
|
||||||
|
|
||||||
typedef IdString BelType;
|
typedef IdString BelType;
|
||||||
typedef IdString PortPin;
|
typedef IdString PortPin;
|
||||||
|
|
||||||
@ -108,9 +113,10 @@ struct Chip
|
|||||||
const std::vector<PipId> &getPipsUphill(WireId wire) const;
|
const std::vector<PipId> &getPipsUphill(WireId wire) const;
|
||||||
const std::vector<PipId> &getWireAliases(WireId wire) const;
|
const std::vector<PipId> &getWireAliases(WireId wire) const;
|
||||||
|
|
||||||
void getBelPosition(BelId bel, float &x, float &y) const;
|
PosInfo getBelPosition(BelId bel) const;
|
||||||
void getWirePosition(WireId wire, float &x, float &y) const;
|
PosInfo getWirePosition(WireId wire) const;
|
||||||
void getPipPosition(PipId pip, float &x, float &y) const;
|
PosInfo getPipPosition(PipId pip) const;
|
||||||
|
float estimateDelay(PosInfo src, PosInfo dst) const;
|
||||||
|
|
||||||
std::vector<GraphicElement> getBelGraphics(BelId bel) const;
|
std::vector<GraphicElement> getBelGraphics(BelId bel) const;
|
||||||
std::vector<GraphicElement> getWireGraphics(WireId wire) const;
|
std::vector<GraphicElement> getWireGraphics(WireId wire) const;
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <math.h>
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "nextpnr.h"
|
#include "nextpnr.h"
|
||||||
|
|
||||||
@ -230,27 +231,40 @@ PipId Chip::getPipByName(IdString name) const
|
|||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
void Chip::getBelPosition(BelId bel, float &x, float &y) const
|
PosInfo Chip::getBelPosition(BelId bel) const
|
||||||
{
|
{
|
||||||
|
PosInfo pos;
|
||||||
assert(bel != BelId());
|
assert(bel != BelId());
|
||||||
x = chip_info.bel_data[bel.index].x;
|
pos.x = chip_info.bel_data[bel.index].x;
|
||||||
y = chip_info.bel_data[bel.index].y;
|
pos.y = chip_info.bel_data[bel.index].y;
|
||||||
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Chip::getWirePosition(WireId wire, float &x, float &y) const
|
PosInfo Chip::getWirePosition(WireId wire) const
|
||||||
{
|
{
|
||||||
|
PosInfo pos;
|
||||||
assert(wire != WireId());
|
assert(wire != WireId());
|
||||||
x = chip_info.wire_data[wire.index].x;
|
pos.x = chip_info.wire_data[wire.index].x;
|
||||||
y = chip_info.wire_data[wire.index].y;
|
pos.y = chip_info.wire_data[wire.index].y;
|
||||||
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Chip::getPipPosition(PipId pip, float &x, float &y) const
|
PosInfo Chip::getPipPosition(PipId pip) const
|
||||||
{
|
{
|
||||||
|
PosInfo pos;
|
||||||
assert(pip != PipId());
|
assert(pip != PipId());
|
||||||
x = chip_info.pip_data[pip.index].x;
|
pos.x = chip_info.pip_data[pip.index].x;
|
||||||
y = chip_info.pip_data[pip.index].y;
|
pos.y = chip_info.pip_data[pip.index].y;
|
||||||
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float Chip::estimateDelay(PosInfo src, PosInfo dst) const
|
||||||
|
{
|
||||||
|
return fabsf(src.x - dst.x) + fabsf(src.x - dst.x);
|
||||||
|
}
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
std::vector<GraphicElement> Chip::getBelGraphics(BelId bel) const
|
std::vector<GraphicElement> Chip::getBelGraphics(BelId bel) const
|
||||||
{
|
{
|
||||||
std::vector<GraphicElement> ret;
|
std::vector<GraphicElement> ret;
|
||||||
|
14
ice40/chip.h
14
ice40/chip.h
@ -42,6 +42,11 @@ struct DelayInfo
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct PosInfo
|
||||||
|
{
|
||||||
|
float x = 0, y = 0;
|
||||||
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
enum BelType
|
enum BelType
|
||||||
@ -679,9 +684,12 @@ struct Chip
|
|||||||
|
|
||||||
// -------------------------------------------------
|
// -------------------------------------------------
|
||||||
|
|
||||||
void getBelPosition(BelId bel, float &x, float &y) const;
|
PosInfo getBelPosition(BelId bel) const;
|
||||||
void getWirePosition(WireId wire, float &x, float &y) const;
|
PosInfo getWirePosition(WireId wire) const;
|
||||||
void getPipPosition(PipId pip, float &x, float &y) const;
|
PosInfo getPipPosition(PipId pip) const;
|
||||||
|
float estimateDelay(PosInfo src, PosInfo dst) const;
|
||||||
|
|
||||||
|
// -------------------------------------------------
|
||||||
|
|
||||||
std::vector<GraphicElement> getBelGraphics(BelId bel) const;
|
std::vector<GraphicElement> getBelGraphics(BelId bel) const;
|
||||||
std::vector<GraphicElement> getWireGraphics(WireId wire) const;
|
std::vector<GraphicElement> getWireGraphics(WireId wire) const;
|
||||||
|
Loading…
Reference in New Issue
Block a user