diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/design.cc | 20 | ||||
-rw-r--r-- | common/design.h | 86 | ||||
-rw-r--r-- | common/nextpnr.h | 60 |
3 files changed, 59 insertions, 107 deletions
diff --git a/common/design.cc b/common/design.cc deleted file mode 100644 index 8fc3a781..00000000 --- a/common/design.cc +++ /dev/null @@ -1,20 +0,0 @@ -/* - * nextpnr -- Next Generation Place and Route - * - * Copyright (C) 2018 Clifford Wolf <clifford@clifford.at> - * - * 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 "nextpnr.h" diff --git a/common/design.h b/common/design.h deleted file mode 100644 index cae50904..00000000 --- a/common/design.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * nextpnr -- Next Generation Place and Route - * - * Copyright (C) 2018 Clifford Wolf <clifford@clifford.at> - * - * 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 DESIGN_H -#define DESIGN_H - -#ifndef NEXTPNR_H -#error Include "design.h" via "nextpnr.h" only. -#endif - -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 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 |