aboutsummaryrefslogtreecommitdiffstats
path: root/frontends/aiger/aigerparse.h
diff options
context:
space:
mode:
authorJim Lawson <ucbjrl@berkeley.edu>2019-04-01 11:09:12 -0700
committerJim Lawson <ucbjrl@berkeley.edu>2019-04-01 11:09:12 -0700
commitb8dfda876795dbf08bec49ab06ac8603025d2114 (patch)
tree35cd5485c70c17e93426d54a104018bae90ed924 /frontends/aiger/aigerparse.h
parent6d2ea6fe5563205c0f565810d615c4900d4508d8 (diff)
parent22035c20ff071ec5c30990258850ecf97de5d5b3 (diff)
downloadyosys-b8dfda876795dbf08bec49ab06ac8603025d2114.tar.gz
yosys-b8dfda876795dbf08bec49ab06ac8603025d2114.tar.bz2
yosys-b8dfda876795dbf08bec49ab06ac8603025d2114.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'frontends/aiger/aigerparse.h')
-rw-r--r--frontends/aiger/aigerparse.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/frontends/aiger/aigerparse.h b/frontends/aiger/aigerparse.h
new file mode 100644
index 000000000..c49cd152d
--- /dev/null
+++ b/frontends/aiger/aigerparse.h
@@ -0,0 +1,51 @@
+/*
+ * yosys -- Yosys Open SYnthesis Suite
+ *
+ * Copyright (C) 2012 Clifford Wolf <clifford@clifford.at>
+ * Eddie Hung <eddie@fpgeh.com>
+ *
+ * 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 ABC_AIGERPARSE
+#define ABC_AIGERPARSE
+
+#include "kernel/yosys.h"
+
+YOSYS_NAMESPACE_BEGIN
+
+struct AigerReader
+{
+ RTLIL::Design *design;
+ std::istream &f;
+ RTLIL::IdString clk_name;
+ RTLIL::Module *module;
+
+ unsigned M, I, L, O, A;
+ unsigned B, C, J, F; // Optional in AIGER 1.9
+ unsigned line_count;
+
+ std::vector<RTLIL::Wire*> inputs;
+ std::vector<RTLIL::Wire*> latches;
+ std::vector<RTLIL::Wire*> outputs;
+
+ AigerReader(RTLIL::Design *design, std::istream &f, RTLIL::IdString module_name, RTLIL::IdString clk_name);
+ void parse_aiger();
+ void parse_aiger_ascii();
+ void parse_aiger_binary();
+};
+
+YOSYS_NAMESPACE_END
+
+#endif