From cbcd2ea3acaf257bf39b25a38d9f591e82a66f37 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Mon, 18 Jun 2018 14:12:39 +0200 Subject: Rename chip.h to arch.h Signed-off-by: Clifford Wolf --- dummy/arch.cc | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ dummy/arch.h | 128 +++++++++++++++++++++++++++++++++++++++++ dummy/chip.cc | 179 ---------------------------------------------------------- dummy/chip.h | 128 ----------------------------------------- 4 files changed, 307 insertions(+), 307 deletions(-) create mode 100644 dummy/arch.cc create mode 100644 dummy/arch.h delete mode 100644 dummy/chip.cc delete mode 100644 dummy/chip.h (limited to 'dummy') diff --git a/dummy/arch.cc b/dummy/arch.cc new file mode 100644 index 00000000..5bbf36e3 --- /dev/null +++ b/dummy/arch.cc @@ -0,0 +1,179 @@ +/* + * nextpnr -- Next Generation Place and Route + * + * Copyright (C) 2018 Clifford Wolf + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include +#include "nextpnr.h" + +NEXTPNR_NAMESPACE_BEGIN + +Arch::Arch(ArchArgs) {} + +std::string Arch::getChipName() { return "Dummy"; } + +void IdString::initialize_chip() {} + +// --------------------------------------------------------------- + +BelId Arch::getBelByName(IdString name) const { return BelId(); } + +IdString Arch::getBelName(BelId bel) const { return IdString(); } + +void Arch::bindBel(BelId bel, IdString cell) {} + +void Arch::unbindBel(BelId bel) {} + +bool Arch::checkBelAvail(BelId bel) const { return false; } + +IdString Arch::getBelCell(BelId bel, bool conflicting) const +{ + return IdString(); +} + +const std::vector &Arch::getBels() const +{ + static std::vector ret; + return ret; +} + +const std::vector &Arch::getBelsByType(BelType type) const +{ + static std::vector ret; + return ret; +} + +BelType Arch::getBelType(BelId bel) const { return BelType(); } + +WireId Arch::getWireBelPin(BelId bel, PortPin pin) const { return WireId(); } + +BelPin Arch::getBelPinUphill(WireId wire) const { return BelPin(); } + +const std::vector &Arch::getBelPinsDownhill(WireId wire) const +{ + static std::vector ret; + return ret; +} + +// --------------------------------------------------------------- + +WireId Arch::getWireByName(IdString name) const { return WireId(); } + +IdString Arch::getWireName(WireId wire) const { return IdString(); } + +void Arch::bindWire(WireId wire, IdString net) {} + +void Arch::unbindWire(WireId wire) {} + +bool Arch::checkWireAvail(WireId wire) const { return false; } + +IdString Arch::getWireNet(WireId wire, bool conflicting) const +{ + return IdString(); +} + +const std::vector &Arch::getWires() const +{ + static std::vector ret; + return ret; +} + +// --------------------------------------------------------------- + +PipId Arch::getPipByName(IdString name) const { return PipId(); } + +IdString Arch::getPipName(PipId pip) const { return IdString(); } + +void Arch::bindPip(PipId pip, IdString net) {} + +void Arch::unbindPip(PipId pip) {} + +bool Arch::checkPipAvail(PipId pip) const { return false; } + +IdString Arch::getPipNet(PipId pip, bool conflicting) const +{ + return IdString(); +} + +const std::vector &Arch::getPips() const +{ + static std::vector ret; + return ret; +} + +WireId Arch::getPipSrcWire(PipId pip) const { return WireId(); } + +WireId Arch::getPipDstWire(PipId pip) const { return WireId(); } + +DelayInfo Arch::getPipDelay(PipId pip) const { return DelayInfo(); } + +const std::vector &Arch::getPipsDownhill(WireId wire) const +{ + static std::vector ret; + return ret; +} + +const std::vector &Arch::getPipsUphill(WireId wire) const +{ + static std::vector ret; + return ret; +} + +const std::vector &Arch::getWireAliases(WireId wire) const +{ + static std::vector ret; + return ret; +} + +// --------------------------------------------------------------- + +bool Arch::estimatePosition(BelId bel, int &x, int &y) const +{ + x = 0.0; + y = 0.0; + return false; +} + +delay_t Arch::estimateDelay(WireId src, WireId dst) const { return 0.0; } + +// --------------------------------------------------------------- + +std::vector Arch::getFrameGraphics() const +{ + static std::vector ret; + return ret; +} + +std::vector Arch::getBelGraphics(BelId bel) const +{ + static std::vector ret; + return ret; +} + +std::vector Arch::getWireGraphics(WireId wire) const +{ + static std::vector ret; + return ret; +} + +std::vector Arch::getPipGraphics(PipId pip) const +{ + static std::vector ret; + return ret; +} + +NEXTPNR_NAMESPACE_END diff --git a/dummy/arch.h b/dummy/arch.h new file mode 100644 index 00000000..40aceff2 --- /dev/null +++ b/dummy/arch.h @@ -0,0 +1,128 @@ +/* + * nextpnr -- Next Generation Place and Route + * + * Copyright (C) 2018 Clifford Wolf + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#ifndef CHIP_H +#define CHIP_H + +#ifndef NEXTPNR_H +#error Include "arch.h" via "nextpnr.h" only. +#endif + +NEXTPNR_NAMESPACE_BEGIN + +typedef float delay_t; + +struct DelayInfo +{ + delay_t delay = 0; + + delay_t raiseDelay() const { return delay; } + delay_t fallDelay() const { return delay; } + delay_t avgDelay() const { return delay; } + + DelayInfo operator+(const DelayInfo &other) const + { + DelayInfo ret; + ret.delay = this->delay + other.delay; + return ret; + } +}; + +typedef IdString BelType; +typedef IdString PortPin; + +static inline IdString belTypeToId(BelType type) { return type; } +static inline IdString portPinToId(PortPin type) { return type; } + +static inline BelType belTypeFromId(IdString id) { return id; } +static inline PortPin portPinFromId(IdString id) { return id; } + +typedef IdString BelId; +typedef IdString WireId; +typedef IdString PipId; + +struct BelPin +{ + BelId bel; + PortPin pin; +}; + +struct ArchArgs +{ +}; + +struct Arch +{ + Arch(ArchArgs args); + + std::string getChipName(); + + BelId getBelByName(IdString name) const; + IdString getBelName(BelId bel) const; + void bindBel(BelId bel, IdString cell); + void unbindBel(BelId bel); + bool checkBelAvail(BelId bel) const; + IdString getBelCell(BelId bel, bool conflicting = false) const; + const std::vector &getBels() const; + const std::vector &getBelsByType(BelType type) const; + BelType getBelType(BelId bel) const; + WireId getWireBelPin(BelId bel, PortPin pin) const; + BelPin getBelPinUphill(WireId wire) const; + const std::vector &getBelPinsDownhill(WireId wire) const; + + WireId getWireByName(IdString name) const; + IdString getWireName(WireId wire) const; + void bindWire(WireId wire, IdString net); + void unbindWire(WireId wire); + bool checkWireAvail(WireId wire) const; + IdString getWireNet(WireId wire, bool conflicting = false) const; + const std::vector &getWires() const; + + PipId getPipByName(IdString name) const; + IdString getPipName(PipId pip) const; + void bindPip(PipId pip, IdString net); + void unbindPip(PipId pip); + bool checkPipAvail(PipId pip) const; + IdString getPipNet(PipId pip, bool conflicting = false) const; + const std::vector &getPips() const; + WireId getPipSrcWire(PipId pip) const; + WireId getPipDstWire(PipId pip) const; + DelayInfo getPipDelay(PipId pip) const; + const std::vector &getPipsDownhill(WireId wire) const; + const std::vector &getPipsUphill(WireId wire) const; + const std::vector &getWireAliases(WireId wire) const; + + bool estimatePosition(BelId bel, int &x, int &y) const; + delay_t estimateDelay(WireId src, WireId dst) const; + + std::vector getFrameGraphics() const; + std::vector getBelGraphics(BelId bel) const; + std::vector getWireGraphics(WireId wire) const; + std::vector getPipGraphics(PipId pip) const; + + bool allGraphicsReload = false; + bool frameGraphicsReload = false; + std::unordered_set belGraphicsReload; + std::unordered_set wireGraphicsReload; + std::unordered_set pipGraphicsReload; +}; + +NEXTPNR_NAMESPACE_END + +#endif diff --git a/dummy/chip.cc b/dummy/chip.cc deleted file mode 100644 index 5bbf36e3..00000000 --- a/dummy/chip.cc +++ /dev/null @@ -1,179 +0,0 @@ -/* - * nextpnr -- Next Generation Place and Route - * - * Copyright (C) 2018 Clifford Wolf - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ - -#include -#include "nextpnr.h" - -NEXTPNR_NAMESPACE_BEGIN - -Arch::Arch(ArchArgs) {} - -std::string Arch::getChipName() { return "Dummy"; } - -void IdString::initialize_chip() {} - -// --------------------------------------------------------------- - -BelId Arch::getBelByName(IdString name) const { return BelId(); } - -IdString Arch::getBelName(BelId bel) const { return IdString(); } - -void Arch::bindBel(BelId bel, IdString cell) {} - -void Arch::unbindBel(BelId bel) {} - -bool Arch::checkBelAvail(BelId bel) const { return false; } - -IdString Arch::getBelCell(BelId bel, bool conflicting) const -{ - return IdString(); -} - -const std::vector &Arch::getBels() const -{ - static std::vector ret; - return ret; -} - -const std::vector &Arch::getBelsByType(BelType type) const -{ - static std::vector ret; - return ret; -} - -BelType Arch::getBelType(BelId bel) const { return BelType(); } - -WireId Arch::getWireBelPin(BelId bel, PortPin pin) const { return WireId(); } - -BelPin Arch::getBelPinUphill(WireId wire) const { return BelPin(); } - -const std::vector &Arch::getBelPinsDownhill(WireId wire) const -{ - static std::vector ret; - return ret; -} - -// --------------------------------------------------------------- - -WireId Arch::getWireByName(IdString name) const { return WireId(); } - -IdString Arch::getWireName(WireId wire) const { return IdString(); } - -void Arch::bindWire(WireId wire, IdString net) {} - -void Arch::unbindWire(WireId wire) {} - -bool Arch::checkWireAvail(WireId wire) const { return false; } - -IdString Arch::getWireNet(WireId wire, bool conflicting) const -{ - return IdString(); -} - -const std::vector &Arch::getWires() const -{ - static std::vector ret; - return ret; -} - -// --------------------------------------------------------------- - -PipId Arch::getPipByName(IdString name) const { return PipId(); } - -IdString Arch::getPipName(PipId pip) const { return IdString(); } - -void Arch::bindPip(PipId pip, IdString net) {} - -void Arch::unbindPip(PipId pip) {} - -bool Arch::checkPipAvail(PipId pip) const { return false; } - -IdString Arch::getPipNet(PipId pip, bool conflicting) const -{ - return IdString(); -} - -const std::vector &Arch::getPips() const -{ - static std::vector ret; - return ret; -} - -WireId Arch::getPipSrcWire(PipId pip) const { return WireId(); } - -WireId Arch::getPipDstWire(PipId pip) const { return WireId(); } - -DelayInfo Arch::getPipDelay(PipId pip) const { return DelayInfo(); } - -const std::vector &Arch::getPipsDownhill(WireId wire) const -{ - static std::vector ret; - return ret; -} - -const std::vector &Arch::getPipsUphill(WireId wire) const -{ - static std::vector ret; - return ret; -} - -const std::vector &Arch::getWireAliases(WireId wire) const -{ - static std::vector ret; - return ret; -} - -// --------------------------------------------------------------- - -bool Arch::estimatePosition(BelId bel, int &x, int &y) const -{ - x = 0.0; - y = 0.0; - return false; -} - -delay_t Arch::estimateDelay(WireId src, WireId dst) const { return 0.0; } - -// --------------------------------------------------------------- - -std::vector Arch::getFrameGraphics() const -{ - static std::vector ret; - return ret; -} - -std::vector Arch::getBelGraphics(BelId bel) const -{ - static std::vector ret; - return ret; -} - -std::vector Arch::getWireGraphics(WireId wire) const -{ - static std::vector ret; - return ret; -} - -std::vector Arch::getPipGraphics(PipId pip) const -{ - static std::vector ret; - return ret; -} - -NEXTPNR_NAMESPACE_END diff --git a/dummy/chip.h b/dummy/chip.h deleted file mode 100644 index c0803510..00000000 --- a/dummy/chip.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - * nextpnr -- Next Generation Place and Route - * - * Copyright (C) 2018 Clifford Wolf - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - * - */ - -#ifndef CHIP_H -#define CHIP_H - -#ifndef NEXTPNR_H -#error Include "chip.h" via "nextpnr.h" only. -#endif - -NEXTPNR_NAMESPACE_BEGIN - -typedef float delay_t; - -struct DelayInfo -{ - delay_t delay = 0; - - delay_t raiseDelay() const { return delay; } - delay_t fallDelay() const { return delay; } - delay_t avgDelay() const { return delay; } - - DelayInfo operator+(const DelayInfo &other) const - { - DelayInfo ret; - ret.delay = this->delay + other.delay; - return ret; - } -}; - -typedef IdString BelType; -typedef IdString PortPin; - -static inline IdString belTypeToId(BelType type) { return type; } -static inline IdString portPinToId(PortPin type) { return type; } - -static inline BelType belTypeFromId(IdString id) { return id; } -static inline PortPin portPinFromId(IdString id) { return id; } - -typedef IdString BelId; -typedef IdString WireId; -typedef IdString PipId; - -struct BelPin -{ - BelId bel; - PortPin pin; -}; - -struct ArchArgs -{ -}; - -struct Arch -{ - Arch(ArchArgs args); - - std::string getChipName(); - - BelId getBelByName(IdString name) const; - IdString getBelName(BelId bel) const; - void bindBel(BelId bel, IdString cell); - void unbindBel(BelId bel); - bool checkBelAvail(BelId bel) const; - IdString getBelCell(BelId bel, bool conflicting = false) const; - const std::vector &getBels() const; - const std::vector &getBelsByType(BelType type) const; - BelType getBelType(BelId bel) const; - WireId getWireBelPin(BelId bel, PortPin pin) const; - BelPin getBelPinUphill(WireId wire) const; - const std::vector &getBelPinsDownhill(WireId wire) const; - - WireId getWireByName(IdString name) const; - IdString getWireName(WireId wire) const; - void bindWire(WireId wire, IdString net); - void unbindWire(WireId wire); - bool checkWireAvail(WireId wire) const; - IdString getWireNet(WireId wire, bool conflicting = false) const; - const std::vector &getWires() const; - - PipId getPipByName(IdString name) const; - IdString getPipName(PipId pip) const; - void bindPip(PipId pip, IdString net); - void unbindPip(PipId pip); - bool checkPipAvail(PipId pip) const; - IdString getPipNet(PipId pip, bool conflicting = false) const; - const std::vector &getPips() const; - WireId getPipSrcWire(PipId pip) const; - WireId getPipDstWire(PipId pip) const; - DelayInfo getPipDelay(PipId pip) const; - const std::vector &getPipsDownhill(WireId wire) const; - const std::vector &getPipsUphill(WireId wire) const; - const std::vector &getWireAliases(WireId wire) const; - - bool estimatePosition(BelId bel, int &x, int &y) const; - delay_t estimateDelay(WireId src, WireId dst) const; - - std::vector getFrameGraphics() const; - std::vector getBelGraphics(BelId bel) const; - std::vector getWireGraphics(WireId wire) const; - std::vector getPipGraphics(PipId pip) const; - - bool allGraphicsReload = false; - bool frameGraphicsReload = false; - std::unordered_set belGraphicsReload; - std::unordered_set wireGraphicsReload; - std::unordered_set pipGraphicsReload; -}; - -NEXTPNR_NAMESPACE_END - -#endif -- cgit v1.2.3