[arch] Add Arch::isGlobalNet() API too
This commit is contained in:
parent
f1a735cf3e
commit
b01f012e86
@ -433,7 +433,7 @@ Run the placer.
|
|||||||
|
|
||||||
### bool route()
|
### bool route()
|
||||||
|
|
||||||
run the router.
|
Run the router.
|
||||||
|
|
||||||
Graphics Methods
|
Graphics Methods
|
||||||
----------------
|
----------------
|
||||||
@ -481,6 +481,13 @@ Return the _clocking info_ (including port name of clock, clock polarity and set
|
|||||||
port. Where ports have more than one clock edge associated with them (such as DDR outputs), `index` can be used to obtain
|
port. Where ports have more than one clock edge associated with them (such as DDR outputs), `index` can be used to obtain
|
||||||
information for all edges. `index` must be in [0, clockInfoCount), behaviour is undefined otherwise.
|
information for all edges. `index` must be in [0, clockInfoCount), behaviour is undefined otherwise.
|
||||||
|
|
||||||
|
Net Methods
|
||||||
|
------------------
|
||||||
|
|
||||||
|
### bool isGlobalNet(const NetInfo *net) const
|
||||||
|
|
||||||
|
Returns true if the given net is driven by a global buffer.
|
||||||
|
|
||||||
Placer Methods
|
Placer Methods
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
@ -492,5 +499,5 @@ a certain number of different clock signals allowed for a group of bels.
|
|||||||
|
|
||||||
### bool isBelLocationValid(BelId bel) const
|
### bool isBelLocationValid(BelId bel) const
|
||||||
|
|
||||||
Returns true if a bell in the current configuration is valid, i.e. if
|
Returns true if a bel in the current configuration is valid, i.e. if
|
||||||
`isValidBelForCell()` would return true for the current mapping.
|
`isValidBelForCell()` would return true for the current mapping.
|
||||||
|
@ -768,6 +768,13 @@ TimingClockingInfo Arch::getPortClockingInfo(const CellInfo *cell, IdString port
|
|||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Arch::isGlobalNet(const NetInfo *net) const
|
||||||
|
{
|
||||||
|
if (net == nullptr)
|
||||||
|
return false;
|
||||||
|
return net->driver.cell != nullptr && net->driver.port == id_CLKO;
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<std::pair<std::string, std::string>> Arch::getTilesAtLocation(int row, int col)
|
std::vector<std::pair<std::string, std::string>> Arch::getTilesAtLocation(int row, int col)
|
||||||
{
|
{
|
||||||
std::vector<std::pair<std::string, std::string>> ret;
|
std::vector<std::pair<std::string, std::string>> ret;
|
||||||
|
@ -955,7 +955,7 @@ struct Arch : BaseCtx
|
|||||||
TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const;
|
TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const;
|
||||||
// Get the TimingClockingInfo of a port
|
// Get the TimingClockingInfo of a port
|
||||||
TimingClockingInfo getPortClockingInfo(const CellInfo *cell, IdString port, int index) const;
|
TimingClockingInfo getPortClockingInfo(const CellInfo *cell, IdString port, int index) const;
|
||||||
// Return true if a port is a net
|
// Return true if net is driven from global buffer
|
||||||
bool isGlobalNet(const NetInfo *net) const;
|
bool isGlobalNet(const NetInfo *net) const;
|
||||||
|
|
||||||
bool getDelayFromTimingDatabase(IdString tctype, IdString from, IdString to, DelayInfo &delay) const;
|
bool getDelayFromTimingDatabase(IdString tctype, IdString from, IdString to, DelayInfo &delay) const;
|
||||||
|
@ -474,6 +474,11 @@ TimingClockingInfo Arch::getPortClockingInfo(const CellInfo *cell, IdString port
|
|||||||
NPNR_ASSERT_FALSE("no clocking info for generic");
|
NPNR_ASSERT_FALSE("no clocking info for generic");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Arch::isGlobalNet(const NetInfo *net) const
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool Arch::isValidBelForCell(CellInfo *cell, BelId bel) const { return true; }
|
bool Arch::isValidBelForCell(CellInfo *cell, BelId bel) const { return true; }
|
||||||
bool Arch::isBelLocationValid(BelId bel) const { return true; }
|
bool Arch::isBelLocationValid(BelId bel) const { return true; }
|
||||||
|
|
||||||
|
@ -238,6 +238,8 @@ struct Arch : BaseCtx
|
|||||||
TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const;
|
TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const;
|
||||||
// Get the TimingClockingInfo of a port
|
// Get the TimingClockingInfo of a port
|
||||||
TimingClockingInfo getPortClockingInfo(const CellInfo *cell, IdString port, int index) const;
|
TimingClockingInfo getPortClockingInfo(const CellInfo *cell, IdString port, int index) const;
|
||||||
|
// Return true if net is driven from global buffer
|
||||||
|
bool isGlobalNet(const NetInfo *net) const;
|
||||||
|
|
||||||
bool isValidBelForCell(CellInfo *cell, BelId bel) const;
|
bool isValidBelForCell(CellInfo *cell, BelId bel) const;
|
||||||
bool isBelLocationValid(BelId bel) const;
|
bool isBelLocationValid(BelId bel) const;
|
||||||
|
@ -851,7 +851,7 @@ struct Arch : BaseCtx
|
|||||||
TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const;
|
TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port, int &clockInfoCount) const;
|
||||||
// Get the TimingClockingInfo of a port
|
// Get the TimingClockingInfo of a port
|
||||||
TimingClockingInfo getPortClockingInfo(const CellInfo *cell, IdString port, int index) const;
|
TimingClockingInfo getPortClockingInfo(const CellInfo *cell, IdString port, int index) const;
|
||||||
// Return true if a port is a net
|
// Return true if net is driven from global buffer
|
||||||
bool isGlobalNet(const NetInfo *net) const;
|
bool isGlobalNet(const NetInfo *net) const;
|
||||||
|
|
||||||
// -------------------------------------------------
|
// -------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user