Add archArgs and archArgsToId to Arch API
Signed-off-by: D. Shah <dave@ds0.me>
This commit is contained in:
parent
6575bfac3e
commit
3e631fe2f4
@ -1070,6 +1070,8 @@ template <typename R> struct ArchAPI : BaseCtx
|
||||
// Basic config
|
||||
virtual IdString archId() const = 0;
|
||||
virtual std::string getChipName() const = 0;
|
||||
virtual typename R::ArchArgsType archArgs() const = 0;
|
||||
virtual IdString archArgsToId(typename R::ArchArgsType args) const = 0;
|
||||
virtual int getGridDimX() const = 0;
|
||||
virtual int getGridDimY() const = 0;
|
||||
virtual int getTileBelDimZ(int x, int y) const = 0;
|
||||
@ -1181,6 +1183,7 @@ template <typename R> struct BaseArch : ArchAPI<R>
|
||||
|
||||
// Basic config
|
||||
virtual IdString archId() const override { return this->id(STRINGIFY(ARCHNAME)); }
|
||||
virtual IdString archArgsToId(typename R::ArchArgsType args) const { return IdString(); }
|
||||
virtual int getTilePipDimZ(int x, int y) const override { return 1; }
|
||||
virtual char getNameDelimiter() const override { return ' '; }
|
||||
|
||||
|
@ -74,7 +74,15 @@ Constructor. ArchArgs is a architecture-specific type (usually a struct also def
|
||||
|
||||
### std::string getChipName() const
|
||||
|
||||
Return a string representation of the ArchArgs that was used to construct this object.
|
||||
Return a user-friendly string representation of the ArchArgs that was used to construct this object.
|
||||
|
||||
### ArchArgs archArgs() const
|
||||
|
||||
Return the `ArchArgs` used to construct this object.
|
||||
|
||||
### IdString archArgsToId(ArchArgs args) const
|
||||
|
||||
Return an internal IdString representation of the ArchArgs that was used to construct this object.
|
||||
|
||||
### int getGridDimX() const
|
||||
|
||||
|
@ -437,6 +437,7 @@ NEXTPNR_NAMESPACE_BEGIN
|
||||
|
||||
struct ArchRanges
|
||||
{
|
||||
using ArchArgsType = ArchArgs;
|
||||
// Bels
|
||||
using AllBelsRange = BelRange;
|
||||
using TileBelsRange = BelRange;
|
||||
@ -490,8 +491,8 @@ struct Arch : BaseArch<ArchRanges>
|
||||
std::string getChipName() const override;
|
||||
std::string get_full_chip_name() const;
|
||||
|
||||
ArchArgs archArgs() const { return args; }
|
||||
IdString archArgsToId(ArchArgs args) const;
|
||||
ArchArgs archArgs() const override { return args; }
|
||||
IdString archArgsToId(ArchArgs args) const override;
|
||||
|
||||
// -------------------------------------------------
|
||||
|
||||
|
@ -118,6 +118,7 @@ struct CellTiming
|
||||
|
||||
struct ArchRanges
|
||||
{
|
||||
using ArchArgsType = ArchArgs;
|
||||
// Bels
|
||||
using AllBelsRange = const std::vector<BelId> &;
|
||||
using TileBelsRange = const std::vector<BelId> &;
|
||||
@ -213,8 +214,8 @@ struct Arch : ArchAPI<ArchRanges>
|
||||
std::string getChipName() const override { return chipName; }
|
||||
|
||||
IdString archId() const override { return id("generic"); }
|
||||
ArchArgs archArgs() const { return args; }
|
||||
IdString archArgsToId(ArchArgs args) const { return id("none"); }
|
||||
ArchArgs archArgs() const override { return args; }
|
||||
IdString archArgsToId(ArchArgs args) const override { return id("none"); }
|
||||
|
||||
int getGridDimX() const override { return gridDimX; }
|
||||
int getGridDimY() const override { return gridDimY; }
|
||||
|
@ -245,6 +245,7 @@ struct CellTiming
|
||||
|
||||
struct ArchRanges
|
||||
{
|
||||
using ArchArgsType = ArchArgs;
|
||||
// Bels
|
||||
using AllBelsRange = const std::vector<BelId> &;
|
||||
using TileBelsRange = const std::vector<BelId> &;
|
||||
@ -345,8 +346,8 @@ struct Arch : BaseArch<ArchRanges>
|
||||
|
||||
std::string getChipName() const override { return device; }
|
||||
|
||||
ArchArgs archArgs() const { return args; }
|
||||
IdString archArgsToId(ArchArgs args) const { return id("none"); }
|
||||
ArchArgs archArgs() const override { return args; }
|
||||
IdString archArgsToId(ArchArgs args) const override { return id("none"); }
|
||||
|
||||
int getGridDimX() const override { return gridDimX; }
|
||||
int getGridDimY() const override { return gridDimY; }
|
||||
|
@ -376,6 +376,7 @@ struct ArchArgs
|
||||
|
||||
struct ArchRanges
|
||||
{
|
||||
using ArchArgsType = ArchArgs;
|
||||
// Bels
|
||||
using AllBelsRange = BelRange;
|
||||
using TileBelsRange = BelRange;
|
||||
@ -434,8 +435,8 @@ struct Arch : BaseArch<ArchRanges>
|
||||
|
||||
std::string getChipName() const override;
|
||||
|
||||
ArchArgs archArgs() const { return args; }
|
||||
IdString archArgsToId(ArchArgs args) const;
|
||||
ArchArgs archArgs() const override { return args; }
|
||||
IdString archArgsToId(ArchArgs args) const override;
|
||||
|
||||
// -------------------------------------------------
|
||||
|
||||
|
@ -857,6 +857,7 @@ struct ArchArgs
|
||||
|
||||
struct ArchRanges
|
||||
{
|
||||
using ArchArgsType = ArchArgs;
|
||||
// Bels
|
||||
using AllBelsRange = BelRange;
|
||||
using TileBelsRange = std::vector<BelId>;
|
||||
@ -934,8 +935,8 @@ struct Arch : BaseArch<ArchRanges>
|
||||
|
||||
std::string getChipName() const override;
|
||||
|
||||
ArchArgs archArgs() const { return args; }
|
||||
IdString archArgsToId(ArchArgs args) const;
|
||||
ArchArgs archArgs() const override { return args; }
|
||||
IdString archArgsToId(ArchArgs args) const override;
|
||||
|
||||
int getGridDimX() const override { return chip_info->width; }
|
||||
int getGridDimY() const override { return chip_info->height; }
|
||||
|
Loading…
Reference in New Issue
Block a user