diff options
| author | Keith Rothman <537074+litghost@users.noreply.github.com> | 2021-02-11 14:10:03 -0800 | 
|---|---|---|
| committer | Keith Rothman <537074+litghost@users.noreply.github.com> | 2021-02-11 14:58:02 -0800 | 
| commit | 99e397000c2bc8a80354c31ef259c6715dd142ff (patch) | |
| tree | 85a04ec931762d61c0ef668bc404d00bd4c699bc /common | |
| parent | e376f950fe683b9a744437301a9e09eae1895efa (diff) | |
| download | nextpnr-99e397000c2bc8a80354c31ef259c6715dd142ff.tar.gz nextpnr-99e397000c2bc8a80354c31ef259c6715dd142ff.tar.bz2 nextpnr-99e397000c2bc8a80354c31ef259c6715dd142ff.zip | |
Add getBelHidden and add some missing "override" statements.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
Diffstat (limited to 'common')
| -rw-r--r-- | common/design_utils.cc | 4 | ||||
| -rw-r--r-- | common/nextpnr.h | 7 | 
2 files changed, 8 insertions, 3 deletions
| diff --git a/common/design_utils.cc b/common/design_utils.cc index 16cc2710..b81449b7 100644 --- a/common/design_utils.cc +++ b/common/design_utils.cc @@ -71,7 +71,9 @@ void print_utilisation(const Context *ctx)      }      std::map<IdString, int> available_types;      for (auto bel : ctx->getBels()) { -        available_types[ctx->getBelType(bel)]++; +        if (!ctx->getBelHidden(bel)) { +            available_types[ctx->getBelType(bel)]++; +        }      }      log_break();      log_info("Device utilisation:\n"); diff --git a/common/nextpnr.h b/common/nextpnr.h index c43b9dc4..ddfcc794 100644 --- a/common/nextpnr.h +++ b/common/nextpnr.h @@ -1089,6 +1089,7 @@ template <typename R> struct ArchAPI : BaseCtx      virtual CellInfo *getBoundBelCell(BelId bel) const = 0;      virtual CellInfo *getConflictingBelCell(BelId bel) const = 0;      virtual IdString getBelType(BelId bel) const = 0; +    virtual bool getBelHidden(BelId bel) const = 0;      virtual typename R::BelAttrsRangeT getBelAttrs(BelId bel) const = 0;      virtual WireId getBelPinWire(BelId bel, IdString pin) const = 0;      virtual PortType getBelPinType(BelId bel, IdString pin) const = 0; @@ -1201,7 +1202,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::ArchArgsT args) const { return IdString(); } +    virtual IdString archArgsToId(typename R::ArchArgsT args) const override { return IdString(); }      virtual int getTilePipDimZ(int x, int y) const override { return 1; }      virtual char getNameDelimiter() const override { return ' '; } @@ -1228,6 +1229,8 @@ template <typename R> struct BaseArch : ArchAPI<R>          this->refreshUiBel(bel);      } +    virtual bool getBelHidden(BelId bel) const override { return false; } +      virtual bool getBelGlobalBuf(BelId bel) const override { return false; }      virtual bool checkBelAvail(BelId bel) const override { return getBoundBelCell(bel) == nullptr; };      virtual CellInfo *getBoundBelCell(BelId bel) const override @@ -1290,7 +1293,7 @@ template <typename R> struct BaseArch : ArchAPI<R>      virtual NetInfo *getConflictingWireNet(WireId wire) const override { return getBoundWireNet(wire); }      // Pip methods -    virtual IdString getPipType(PipId pip) const { return IdString(); } +    virtual IdString getPipType(PipId pip) const override { return IdString(); }      virtual typename R::PipAttrsRangeT getPipAttrs(PipId) const override      {          return empty_if_possible<typename R::PipAttrsRangeT>(); | 
