diff options
author | Clifford Wolf <clifford@clifford.at> | 2018-08-18 19:22:46 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-18 19:22:46 +0200 |
commit | 1e8e873c9fe4b0fdd69055b0251f9e71db3849c5 (patch) | |
tree | 9d5f37bc5c5f6c9442bbb92948dd1da675890211 /generic/arch.cc | |
parent | 060be78c09fd4416c6778a5828fb573b2a42cb2e (diff) | |
parent | a346793c19f7b14772d6620fa67d8b21cf79ae45 (diff) | |
download | nextpnr-1e8e873c9fe4b0fdd69055b0251f9e71db3849c5.tar.gz nextpnr-1e8e873c9fe4b0fdd69055b0251f9e71db3849c5.tar.bz2 nextpnr-1e8e873c9fe4b0fdd69055b0251f9e71db3849c5.zip |
Merge pull request #53 from YosysHQ/archattr
Add Attributes on arch objects and improve iCE40 gfx (IO tiles, BRAM tiles)
Diffstat (limited to 'generic/arch.cc')
-rw-r--r-- | generic/arch.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/generic/arch.cc b/generic/arch.cc index d306a9ec..7f464206 100644 --- a/generic/arch.cc +++ b/generic/arch.cc @@ -184,6 +184,21 @@ void Arch::setGroupDecal(GroupId group, DecalXY decalxy) refreshUiGroup(group); } +void Arch::setWireAttr(IdString wire, IdString key, const std::string &value) +{ + wires.at(wire).attrs[key] = value; +} + +void Arch::setPipAttr(IdString pip, IdString key, const std::string &value) +{ + pips.at(pip).attrs[key] = value; +} + +void Arch::setBelAttr(IdString bel, IdString key, const std::string &value) +{ + bels.at(bel).attrs[key] = value; +} + // --------------------------------------------------------------- Arch::Arch(ArchArgs args) : chipName("generic"), args(args) {} @@ -251,6 +266,8 @@ const std::vector<BelId> &Arch::getBels() const { return bel_ids; } IdString Arch::getBelType(BelId bel) const { return bels.at(bel).type; } +const std::map<IdString, std::string> &Arch::getBelAttrs(BelId bel) const { return bels.at(bel).attrs; } + WireId Arch::getBelPinWire(BelId bel, IdString pin) const { return bels.at(bel).pins.at(pin).wire; } PortType Arch::getBelPinType(BelId bel, IdString pin) const { return bels.at(bel).pins.at(pin).type; } @@ -276,6 +293,8 @@ IdString Arch::getWireName(WireId wire) const { return wire; } IdString Arch::getWireType(WireId wire) const { return wires.at(wire).type; } +const std::map<IdString, std::string> &Arch::getWireAttrs(WireId wire) const { return wires.at(wire).attrs; } + uint32_t Arch::getWireChecksum(WireId wire) const { // FIXME @@ -328,6 +347,8 @@ IdString Arch::getPipName(PipId pip) const { return pip; } IdString Arch::getPipType(PipId pip) const { return pips.at(pip).type; } +const std::map<IdString, std::string> &Arch::getPipAttrs(PipId pip) const { return pips.at(pip).attrs; } + uint32_t Arch::getPipChecksum(PipId wire) const { // FIXME |