diff options
author | Clifford Wolf <clifford@clifford.at> | 2018-06-18 14:18:56 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2018-06-18 14:18:56 +0200 |
commit | ce2a9f2af12bd06b9a50e48b05dad1eadbad149e (patch) | |
tree | 0a78d6cbc9db6964cddcccdfba69c3dcf94ce0fa /common/nextpnr.h | |
parent | f30d477c8129c3c189866a4bc862724d4e8d4398 (diff) | |
download | nextpnr-ce2a9f2af12bd06b9a50e48b05dad1eadbad149e.tar.gz nextpnr-ce2a9f2af12bd06b9a50e48b05dad1eadbad149e.tar.bz2 nextpnr-ce2a9f2af12bd06b9a50e48b05dad1eadbad149e.zip |
Move contents of design.h to nextpnr.h
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'common/nextpnr.h')
-rw-r--r-- | common/nextpnr.h | 60 |
1 files changed, 59 insertions, 1 deletions
diff --git a/common/nextpnr.h b/common/nextpnr.h index 3d505844..8986ba13 100644 --- a/common/nextpnr.h +++ b/common/nextpnr.h @@ -142,6 +142,64 @@ struct GraphicElement NEXTPNR_NAMESPACE_END #include "arch.h" -#include "design.h" + +NEXTPNR_NAMESPACE_BEGIN + +struct CellInfo; + +struct PortRef +{ + CellInfo *cell = nullptr; + IdString port; +}; + +struct NetInfo +{ + IdString name; + PortRef driver; + std::vector<PortRef> users; + std::unordered_map<IdString, std::string> attrs; + + // wire -> uphill_pip + std::unordered_map<WireId, PipId> wires; +}; + +enum PortType +{ + PORT_IN = 0, + PORT_OUT = 1, + PORT_INOUT = 2 +}; + +struct PortInfo +{ + IdString name; + NetInfo *net; + PortType type; +}; + +struct CellInfo +{ + IdString name, type; + std::unordered_map<IdString, PortInfo> ports; + std::unordered_map<IdString, std::string> attrs, params; + + BelId bel; + // cell_port -> bel_pin + std::unordered_map<IdString, IdString> pins; +}; + +struct Context : Arch +{ + std::unordered_map<IdString, NetInfo *> nets; + std::unordered_map<IdString, CellInfo *> cells; + + Context(ArchArgs args) : Arch(args) + { + // ... + } +}; + +NEXTPNR_NAMESPACE_END #endif |