Add stub cluster API impl for remaining arches
Signed-off-by: gatecat <gatecat@ds0.me>
This commit is contained in:
parent
c6fa1a179a
commit
0d6be6f474
@ -23,6 +23,8 @@
|
|||||||
#include "idstring.h"
|
#include "idstring.h"
|
||||||
#include "nextpnr_namespaces.h"
|
#include "nextpnr_namespaces.h"
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
NEXTPNR_NAMESPACE_BEGIN
|
NEXTPNR_NAMESPACE_BEGIN
|
||||||
|
|
||||||
struct CellInfo;
|
struct CellInfo;
|
||||||
|
@ -835,6 +835,19 @@ struct Arch : ArchAPI<ArchRanges>
|
|||||||
return get_site_status(tile_status, bel_data).checkSiteRouting(getCtx(), tile_status);
|
return get_site_status(tile_status, bel_data).checkSiteRouting(getCtx(), tile_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------------
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
CellInfo *getClusterRootCell(ClusterId cluster) const override { NPNR_ASSERT_FALSE("unimplemented"); }
|
||||||
|
ArcBounds getClusterBounds(ClusterId cluster) const override { NPNR_ASSERT_FALSE("unimplemented"); }
|
||||||
|
Loc getClusterOffset(const CellInfo *cell) const override { NPNR_ASSERT_FALSE("unimplemented"); }
|
||||||
|
bool isClusterStrict(const CellInfo *cell) const override { NPNR_ASSERT_FALSE("unimplemented"); }
|
||||||
|
bool getClusterPlacement(ClusterId cluster, BelId root_bel,
|
||||||
|
std::vector<std::pair<CellInfo *, BelId>> &placement) const override
|
||||||
|
{
|
||||||
|
NPNR_ASSERT_FALSE("unimplemented");
|
||||||
|
}
|
||||||
|
|
||||||
IdString get_bel_tiletype(BelId bel) const { return IdString(loc_info(chip_info, bel).name); }
|
IdString get_bel_tiletype(BelId bel) const { return IdString(loc_info(chip_info, bel).name); }
|
||||||
|
|
||||||
std::unordered_map<WireId, Loc> sink_locs, source_locs;
|
std::unordered_map<WireId, Loc> sink_locs, source_locs;
|
||||||
|
@ -98,6 +98,8 @@ struct BelBucketId
|
|||||||
bool operator<(const BelBucketId &other) const { return name < other.name; }
|
bool operator<(const BelBucketId &other) const { return name < other.name; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef IdString ClusterId;
|
||||||
|
|
||||||
struct SiteExpansionLoop;
|
struct SiteExpansionLoop;
|
||||||
|
|
||||||
struct ArchNetInfo
|
struct ArchNetInfo
|
||||||
|
@ -362,6 +362,17 @@ struct Arch : ArchAPI<ArchRanges>
|
|||||||
bool isValidBelForCellType(IdString cell_type, BelId bel) const override { return cell_type == getBelType(bel); }
|
bool isValidBelForCellType(IdString cell_type, BelId bel) const override { return cell_type == getBelType(bel); }
|
||||||
bool isBelLocationValid(BelId bel) const override;
|
bool isBelLocationValid(BelId bel) const override;
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
CellInfo *getClusterRootCell(ClusterId cluster) const override { NPNR_ASSERT_FALSE("unimplemented"); }
|
||||||
|
ArcBounds getClusterBounds(ClusterId cluster) const override { NPNR_ASSERT_FALSE("unimplemented"); }
|
||||||
|
Loc getClusterOffset(const CellInfo *cell) const override { NPNR_ASSERT_FALSE("unimplemented"); }
|
||||||
|
bool isClusterStrict(const CellInfo *cell) const override { NPNR_ASSERT_FALSE("unimplemented"); }
|
||||||
|
bool getClusterPlacement(ClusterId cluster, BelId root_bel,
|
||||||
|
std::vector<std::pair<CellInfo *, BelId>> &placement) const override
|
||||||
|
{
|
||||||
|
NPNR_ASSERT_FALSE("unimplemented");
|
||||||
|
}
|
||||||
|
|
||||||
static const std::string defaultPlacer;
|
static const std::string defaultPlacer;
|
||||||
static const std::vector<std::string> availablePlacers;
|
static const std::vector<std::string> availablePlacers;
|
||||||
static const std::string defaultRouter;
|
static const std::string defaultRouter;
|
||||||
|
@ -34,6 +34,7 @@ typedef IdStringList PipId;
|
|||||||
typedef IdStringList GroupId;
|
typedef IdStringList GroupId;
|
||||||
typedef IdStringList DecalId;
|
typedef IdStringList DecalId;
|
||||||
typedef IdString BelBucketId;
|
typedef IdString BelBucketId;
|
||||||
|
typedef IdString ClusterId;
|
||||||
|
|
||||||
struct ArchNetInfo
|
struct ArchNetInfo
|
||||||
{
|
{
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#ifndef GOWIN_ARCHDEFS_H
|
#ifndef GOWIN_ARCHDEFS_H
|
||||||
#define GOWIN_ARCHDEFS_H
|
#define GOWIN_ARCHDEFS_H
|
||||||
|
|
||||||
|
#include "base_clusterinfo.h"
|
||||||
#include "idstring.h"
|
#include "idstring.h"
|
||||||
#include "nextpnr_namespaces.h"
|
#include "nextpnr_namespaces.h"
|
||||||
|
|
||||||
@ -56,7 +57,7 @@ struct ArchNetInfo
|
|||||||
|
|
||||||
struct NetInfo;
|
struct NetInfo;
|
||||||
|
|
||||||
struct ArchCellInfo
|
struct ArchCellInfo : BaseClusterInfo
|
||||||
{
|
{
|
||||||
// Is the flip-flop of this slice used
|
// Is the flip-flop of this slice used
|
||||||
bool ff_used;
|
bool ff_used;
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#ifndef MACHXO2_ARCHDEFS_H
|
#ifndef MACHXO2_ARCHDEFS_H
|
||||||
#define MACHXO2_ARCHDEFS_H
|
#define MACHXO2_ARCHDEFS_H
|
||||||
|
|
||||||
|
#include "base_clusterinfo.h"
|
||||||
#include "idstring.h"
|
#include "idstring.h"
|
||||||
#include "nextpnr_namespaces.h"
|
#include "nextpnr_namespaces.h"
|
||||||
|
|
||||||
@ -104,6 +105,7 @@ struct PipId
|
|||||||
typedef IdString GroupId;
|
typedef IdString GroupId;
|
||||||
typedef IdString DecalId;
|
typedef IdString DecalId;
|
||||||
typedef IdString BelBucketId;
|
typedef IdString BelBucketId;
|
||||||
|
typedef IdString ClusterId;
|
||||||
|
|
||||||
struct ArchNetInfo
|
struct ArchNetInfo
|
||||||
{
|
{
|
||||||
@ -111,7 +113,7 @@ struct ArchNetInfo
|
|||||||
|
|
||||||
struct NetInfo;
|
struct NetInfo;
|
||||||
|
|
||||||
struct ArchCellInfo
|
struct ArchCellInfo : BaseClusterInfo
|
||||||
{
|
{
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user