Merge pull request #1984 from YosysHQ/eddie/getParam_exception
[yosys.git] / kernel / cellaigs.h
1 /*
2 * yosys -- Yosys Open SYnthesis Suite
3 *
4 * Copyright (C) 2012 Clifford Wolf <clifford@clifford.at>
5 *
6 * Permission to use, copy, modify, and/or distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 *
18 */
19
20 #ifndef CELLAIGS_H
21 #define CELLAIGS_H
22
23 #include "kernel/yosys.h"
24
25 YOSYS_NAMESPACE_BEGIN
26
27 struct AigNode
28 {
29 IdString portname;
30 int portbit;
31 bool inverter;
32 int left_parent, right_parent;
33 vector<pair<IdString, int>> outports;
34
35 AigNode();
36 bool operator==(const AigNode &other) const;
37 unsigned int hash() const;
38 };
39
40 struct Aig
41 {
42 string name;
43 vector<AigNode> nodes;
44 Aig(Cell *cell);
45
46 bool operator==(const Aig &other) const;
47 unsigned int hash() const;
48 };
49
50 YOSYS_NAMESPACE_END
51
52 #endif