From c73759f9f10753e383c8ecab5343fe94e03fc74d Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Fri, 29 Jun 2018 20:36:34 +0200 Subject: Split "arch.h" in "arch.h" and "archdefs.h" Signed-off-by: Clifford Wolf --- ice40/arch.h | 142 ----------------------------------------------------------- 1 file changed, 142 deletions(-) (limited to 'ice40/arch.h') diff --git a/ice40/arch.h b/ice40/arch.h index 044a81f1..9ed30f93 100644 --- a/ice40/arch.h +++ b/ice40/arch.h @@ -21,72 +21,8 @@ #error Include "arch.h" via "nextpnr.h" only. #endif -#ifdef NEXTPNR_ARCH_TOP - NEXTPNR_NAMESPACE_BEGIN -typedef int 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; - } -}; - -// ----------------------------------------------------------------------- - -enum BelType : int32_t -{ - TYPE_NONE, - TYPE_ICESTORM_LC, - TYPE_ICESTORM_RAM, - TYPE_SB_IO, - TYPE_SB_GB, - TYPE_ICESTORM_PLL, - TYPE_SB_WARMBOOT, - TYPE_SB_MAC16, - TYPE_ICESTORM_HFOSC, - TYPE_ICESTORM_LFOSC, - TYPE_SB_I2C, - TYPE_SB_SPI, - TYPE_IO_I3C, - TYPE_SB_LEDDA_IP, - TYPE_SB_RGBA_DRV, - TYPE_ICESTORM_SPRAM, -}; - -enum PortPin : int32_t -{ - PIN_NONE, -#define X(t) PIN_##t, -#include "portpins.inc" -#undef X - PIN_MAXIDX -}; - -enum WireType : int8_t -{ - WIRE_TYPE_NONE = 0, - WIRE_TYPE_LOCAL = 1, - WIRE_TYPE_GLOBAL = 2, - WIRE_TYPE_SP4_VERT = 3, - WIRE_TYPE_SP4_HORZ = 4, - WIRE_TYPE_SP12_HORZ = 5, - WIRE_TYPE_SP12_VERT = 6 -}; - -// ----------------------------------------------------------------------- - /**** Everything in this section must be kept in sync with chipdb.py ****/ template struct RelPtr @@ -242,72 +178,6 @@ extern const char chipdb_blob_8k[]; /************************ End of chipdb section. ************************/ -// ----------------------------------------------------------------------- - -struct BelId -{ - int32_t index = -1; - - bool operator==(const BelId &other) const { return index == other.index; } - bool operator!=(const BelId &other) const { return index != other.index; } -}; - -struct WireId -{ - int32_t index = -1; - - bool operator==(const WireId &other) const { return index == other.index; } - bool operator!=(const WireId &other) const { return index != other.index; } -}; - -struct PipId -{ - int32_t index = -1; - - bool operator==(const PipId &other) const { return index == other.index; } - bool operator!=(const PipId &other) const { return index != other.index; } -}; - -struct BelPin -{ - BelId bel; - PortPin pin; -}; - -NEXTPNR_NAMESPACE_END - -namespace std { -template <> struct hash -{ - std::size_t operator()(const NEXTPNR_NAMESPACE_PREFIX BelId &bel) const noexcept { return hash()(bel.index); } -}; - -template <> struct hash -{ - std::size_t operator()(const NEXTPNR_NAMESPACE_PREFIX WireId &wire) const noexcept - { - return hash()(wire.index); - } -}; - -template <> struct hash -{ - std::size_t operator()(const NEXTPNR_NAMESPACE_PREFIX PipId &pip) const noexcept { return hash()(pip.index); } -}; - -template <> struct hash : hash -{ -}; - -template <> struct hash : hash -{ -}; -} // namespace std - -NEXTPNR_NAMESPACE_BEGIN - -// ----------------------------------------------------------------------- - struct BelIterator { int cursor; @@ -440,16 +310,6 @@ struct PipRange PipIterator end() const { return e; } }; -NEXTPNR_NAMESPACE_END - -#endif // NEXTPNR_ARCH_TOP - -// ----------------------------------------------------------------------- - -#ifdef NEXTPNR_ARCH_BOTTOM - -NEXTPNR_NAMESPACE_BEGIN - struct ArchArgs { enum @@ -838,5 +698,3 @@ struct Arch : BaseCtx }; NEXTPNR_NAMESPACE_END - -#endif // NEXTPNR_ARCH_BOTTOM -- cgit v1.2.3