namespace Yosys
authorClifford Wolf <clifford@clifford.at>
Sat, 27 Sep 2014 14:17:53 +0000 (16:17 +0200)
committerClifford Wolf <clifford@clifford.at>
Sat, 27 Sep 2014 14:17:53 +0000 (16:17 +0200)
96 files changed:
Makefile
backends/blif/blif.cc
backends/btor/btor.cc
backends/edif/edif.cc
backends/ilang/ilang_backend.cc
backends/intersynth/intersynth.cc
backends/spice/spice.cc
backends/verilog/verilog_backend.cc
backends/verilog/verilog_backend.h [deleted file]
frontends/ast/dpicall.cc
frontends/ilang/ilang_frontend.cc
frontends/ilang/lexer.l
frontends/liberty/liberty.cc
frontends/verilog/verilog_frontend.cc
kernel/bitpattern.h
kernel/consteval.h
kernel/log.h
kernel/satgen.h
kernel/utils.h
kernel/yosys.h
passes/abc/abc.cc
passes/abc/blifparse.cc
passes/abc/blifparse.h
passes/cmds/add.cc
passes/cmds/connect.cc
passes/cmds/connwrappers.cc
passes/cmds/copy.cc
passes/cmds/cover.cc
passes/cmds/delete.cc
passes/cmds/log.cc
passes/cmds/rename.cc
passes/cmds/scatter.cc
passes/cmds/scc.cc
passes/cmds/select.cc
passes/cmds/setattr.cc
passes/cmds/setundef.cc
passes/cmds/show.cc
passes/cmds/splice.cc
passes/cmds/splitnets.cc
passes/cmds/stat.cc
passes/cmds/tee.cc
passes/cmds/trace.cc
passes/cmds/write_file.cc
passes/fsm/fsm.cc
passes/fsm/fsm_detect.cc
passes/fsm/fsm_expand.cc
passes/fsm/fsm_export.cc
passes/fsm/fsm_extract.cc
passes/fsm/fsm_info.cc
passes/fsm/fsm_map.cc
passes/fsm/fsm_opt.cc
passes/fsm/fsm_recode.cc
passes/fsm/fsmdata.h
passes/hierarchy/hierarchy.cc
passes/hierarchy/submod.cc
passes/memory/memory.cc
passes/memory/memory_collect.cc
passes/memory/memory_dff.cc
passes/memory/memory_map.cc
passes/memory/memory_share.cc
passes/memory/memory_unpack.cc
passes/opt/opt.cc
passes/opt/opt_clean.cc
passes/opt/opt_const.cc
passes/opt/opt_muxtree.cc
passes/opt/opt_reduce.cc
passes/opt/opt_rmdff.cc
passes/opt/opt_share.cc
passes/opt/share.cc
passes/proc/proc.cc
passes/proc/proc_arst.cc
passes/proc/proc_clean.cc
passes/proc/proc_dff.cc
passes/proc/proc_init.cc
passes/proc/proc_mux.cc
passes/proc/proc_rmdead.cc
passes/sat/eval.cc
passes/sat/expose.cc
passes/sat/freduce.cc
passes/sat/miter.cc
passes/sat/sat.cc
passes/techmap/alumacc.cc
passes/techmap/dfflibmap.cc
passes/techmap/extract.cc
passes/techmap/hilomap.cc
passes/techmap/iopadmap.cc
passes/techmap/libparse.cc
passes/techmap/libparse.h
passes/techmap/maccmap.cc
passes/techmap/simplemap.cc
passes/techmap/techmap.cc
passes/tests/test_abcloop.cc
passes/tests/test_autotb.cc
passes/tests/test_cell.cc
techlibs/common/synth.cc
techlibs/xilinx/synth_xilinx.cc

index 5a75320c341a7b76580c4bd4c1e934d6b768215a..00979c4641952b78e01b6791bafccf31cd4ba3a0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -203,8 +203,8 @@ yosys: $(OBJS)
 
 kernel/version_$(GIT_REV).cc: Makefile
        $(P) rm -f kernel/version_*.o kernel/version_*.d kernel/version_*.cc
-       $(Q) echo "extern const char *yosys_version_str; const char *yosys_version_str=\"Yosys $(YOSYS_VER) (git sha1 $(GIT_REV), $(CXX) ` \
-                       $(CXX) --version | tr ' ()' '\n' | grep '^[0-9]' | head -n1` $(filter -f% -m% -O% -DNDEBUG,$(CXXFLAGS)))\";" > kernel/version_$(GIT_REV).cc
+       $(Q) echo "namespace Yosys { extern const char *yosys_version_str; const char *yosys_version_str=\"Yosys $(YOSYS_VER) (git sha1 $(GIT_REV), $(CXX) ` \
+                       $(CXX) --version | tr ' ()' '\n' | grep '^[0-9]' | head -n1` $(filter -f% -m% -O% -DNDEBUG,$(CXXFLAGS)))\"; }" > kernel/version_$(GIT_REV).cc
 
 yosys-config: yosys-config.in
        $(P) $(SED) -e 's,@CXX@,$(CXX),;' -e 's,@CXXFLAGS@,$(CXXFLAGS),;' -e 's,@LDFLAGS@,$(LDFLAGS),;' -e 's,@LDLIBS@,$(LDLIBS),;' \
index ee12546ceb1b95964c975f0b30c2236ee975bc30..216e59fb529d8097227d2c7b6ed83b3265d751dd 100644 (file)
@@ -28,6 +28,9 @@
 #include "kernel/log.h"
 #include <string>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct BlifDumperConfig
 {
        bool icells_mode;
@@ -397,3 +400,4 @@ struct BlifBackend : public Backend {
        }
 } BlifBackend;
 
+PRIVATE_NAMESPACE_END
index 8ce5bb5ed36d2a18c4a3d77b941deda06590675a..5bd71716e6e0075f8ac4ba016c4f3e94d66d08c5 100644 (file)
@@ -30,6 +30,9 @@
 #include <string>
 #include <math.h>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct BtorDumperConfig
 {
        bool subckt_mode;
@@ -1057,3 +1060,4 @@ struct BtorBackend : public Backend {
        }
 } BtorBackend;
 
+PRIVATE_NAMESPACE_END
index ccedd91d2da4a969598fabc44c271d1c60d2e8eb..7f29cd41a664be944b6823f3b457fce947c679d8 100644 (file)
@@ -27,6 +27,9 @@
 #include "kernel/log.h"
 #include <string>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 #define EDIF_DEF(_id) edif_names(RTLIL::unescape_id(_id), true).c_str()
 #define EDIF_REF(_id) edif_names(RTLIL::unescape_id(_id), false).c_str()
 
@@ -345,3 +348,4 @@ struct EdifBackend : public Backend {
        }
 } EdifBackend;
 
+PRIVATE_NAMESPACE_END
index 48d818d7675b527e64b78dc8f129b89bbf6fadb7..19c2805ca622e768b6518e51ef98c7536b31198a 100644 (file)
@@ -26,7 +26,9 @@
 #include "kernel/yosys.h"
 #include <errno.h>
 
+USING_YOSYS_NAMESPACE
 using namespace ILANG_BACKEND;
+YOSYS_NAMESPACE_BEGIN
 
 void ILANG_BACKEND::dump_const(std::ostream &f, const RTLIL::Const &data, int width, int offset, bool autoint)
 {
@@ -391,6 +393,9 @@ void ILANG_BACKEND::dump_design(std::ostream &f, RTLIL::Design *design, bool onl
        log_assert(init_autoidx == autoidx);
 }
 
+YOSYS_NAMESPACE_END
+PRIVATE_NAMESPACE_BEGIN
+
 struct IlangBackend : public Backend {
        IlangBackend() : Backend("ilang", "write design to ilang file") { }
        virtual void help()
@@ -510,3 +515,4 @@ struct DumpPass : public Pass {
        }
 } DumpPass;
  
+PRIVATE_NAMESPACE_END
index 8502d90fc60979983b41d9664de90f623e3d56c0..6d4731e73d7d8b162540e0ae44bb65e87497d86a 100644 (file)
@@ -24,6 +24,8 @@
 #include "kernel/log.h"
 #include <string>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
 
 static std::string netname(std::set<std::string> &conntypes_code, std::set<std::string> &celltypes_code, std::set<std::string> &constcells_code, RTLIL::SigSpec sig)
 {
@@ -215,3 +217,4 @@ struct IntersynthBackend : public Backend {
        }
 } IntersynthBackend;
 
+PRIVATE_NAMESPACE_END
index b057063cd27e3bfc5927376efbdb9f8cc736dafa..2aff94198b7d5e3c461eede7ebd400ac19af9083 100644 (file)
@@ -24,6 +24,9 @@
 #include "kernel/log.h"
 #include <string>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 static void print_spice_net(std::ostream &f, RTLIL::SigBit s, std::string &neg, std::string &pos, std::string &ncpf, int &nc_counter)
 {
        if (s.wire) {
@@ -231,3 +234,4 @@ struct SpiceBackend : public Backend {
        }
 } SpiceBackend;
 
+PRIVATE_NAMESPACE_END
index bbdbbbfafc6bf4327af92d70231abaa87d63d474..99430d04904511ff7d51ee80db47abd56394a750 100644 (file)
@@ -26,7 +26,6 @@
  *
  */
 
-#include "verilog_backend.h"
 #include "kernel/register.h"
 #include "kernel/celltypes.h"
 #include "kernel/log.h"
@@ -35,7 +34,8 @@
 #include <set>
 #include <map>
 
-namespace {
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
 
 bool norename, noattr, attr2comment, noexpr;
 int auto_name_counter, auto_name_offset, auto_name_digits;
@@ -1016,8 +1016,6 @@ void dump_module(std::ostream &f, std::string indent, RTLIL::Module *module)
        active_module = NULL;
 }
 
-} /* namespace */
-
 struct VerilogBackend : public Backend {
        VerilogBackend() : Backend("verilog", "write design to verilog file") { }
        virtual void help()
@@ -1139,3 +1137,4 @@ struct VerilogBackend : public Backend {
        }
 } VerilogBackend;
 
+PRIVATE_NAMESPACE_END
diff --git a/backends/verilog/verilog_backend.h b/backends/verilog/verilog_backend.h
deleted file mode 100644 (file)
index 7e6ef5a..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  yosys -- Yosys Open SYnthesis Suite
- *
- *  Copyright (C) 2012  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.
- *
- *  ---
- *
- *  A simple and straightforward verilog backend.
- *
- *  Note that RTLIL processes can't always be mapped easily to a Verilog
- *  process. Therefore this frontend should only be used to export a
- *  Verilog netlist (i.e. after the "proc" pass has converted all processes
- *  to logic networks and registers).
- *
- */
-
-#ifndef VERILOG_BACKEND_H
-#define VERILOG_BACKEND_H
-
-#include "kernel/yosys.h"
-
-namespace VERILOG_BACKEND {
-       void verilog_backend(std::ostream &f, std::vector<std::string> args, RTLIL::Design *design);
-}
-
-#endif
index 2eb104fa048fc69820471db4fd22bf2bf667fa68..e5b1ff9c03c8f8e7aa8d58a6a9ada3f433349b85 100644 (file)
@@ -24,6 +24,8 @@
 #include <dlfcn.h>
 #include <ffi.h>
 
+YOSYS_NAMESPACE_BEGIN
+
 typedef void (*ffi_fptr) ();
 
 static ffi_fptr resolve_fn (std::string symbol_name)
@@ -129,12 +131,18 @@ AST::AstNode *AST::dpi_call(const std::string &rtype, const std::string &fname,
        return newNode;
 }
 
+YOSYS_NAMESPACE_END
+
 #else /* YOSYS_ENABLE_PLUGINS */
 
+YOSYS_NAMESPACE_BEGIN
+
 AST::AstNode *AST::dpi_call(const std::string&, const std::string &fname, const std::vector<std::string>&, const std::vector<AstNode*>&)
 {
        log_error("Can't call DPI function `%s': this version of yosys is built without plugin support\n", fname.c_str());
 }
 
+YOSYS_NAMESPACE_END
+
 #endif /* YOSYS_ENABLE_PLUGINS */
 
index f6f926db1c4a88ea6490c69b98aaabfb009999a5..7a4687a3cef503ce3d99c4abfaea2176de872140 100644 (file)
 #include "kernel/register.h"
 #include "kernel/log.h"
 
-YOSYS_NAMESPACE_BEGIN
-
 void rtlil_frontend_ilang_yyerror(char const *s)
 {
-       log_error("Parser error in line %d: %s\n", rtlil_frontend_ilang_yyget_lineno(), s);
+       YOSYS_NAMESPACE_PREFIX log_error("Parser error in line %d: %s\n", rtlil_frontend_ilang_yyget_lineno(), s);
 }
 
+YOSYS_NAMESPACE_BEGIN
+
 struct IlangFrontend : public Frontend {
        IlangFrontend() : Frontend("ilang", "read modules from ilang file") { }
        virtual void help()
index 4109cd4bce2e96d13e9eb4bb1a8a12efdb8f49b7..292321e88f6e653ecd8d9de03ffba4118a832c36 100644 (file)
@@ -32,6 +32,8 @@
 #include "ilang_frontend.h"
 #include "parser.tab.h"
 
+USING_YOSYS_NAMESPACE
+
 #define YY_INPUT(buf,result,max_size) \
         result = ILANG_FRONTEND::lexin->readsome(buf, max_size);
 
index a9ab022a47181bccb4248616b5b6e758d29f2b05..464c5c9422830829e76604f96e94b43e58711d51 100644 (file)
@@ -22,7 +22,6 @@
 #include "kernel/log.h"
 
 YOSYS_NAMESPACE_BEGIN
-using namespace PASS_DFFLIBMAP;
 
 struct token_t {
        char type;
index c6d4a0b7907365e2e9b90541d46b93df35fcfc5c..1e1cd852acc584857d88e11eb323d9f272a295e2 100644 (file)
@@ -300,22 +300,6 @@ struct VerilogFrontend : public Frontend {
        }
 } VerilogFrontend;
 
-// the yyerror function used by bison to report parser errors
-void frontend_verilog_yyerror(char const *fmt, ...)
-{
-       va_list ap;
-       char buffer[1024];
-       char *p = buffer;
-       p += snprintf(p, buffer + sizeof(buffer) - p, "Parser error in line %s:%d: ",
-                       AST::current_filename.c_str(), frontend_verilog_yyget_lineno());
-       va_start(ap, fmt);
-       p += vsnprintf(p, buffer + sizeof(buffer) - p, fmt, ap);
-       va_end(ap);
-       p += snprintf(p, buffer + sizeof(buffer) - p, "\n");
-       log_error("%s", buffer);
-       exit(1);
-}
-
 struct VerilogDefaults : public Pass {
        VerilogDefaults() : Pass("verilog_defaults", "set default options for read_verilog") { }
        virtual void help()
@@ -376,3 +360,19 @@ struct VerilogDefaults : public Pass {
 
 YOSYS_NAMESPACE_END
 
+// the yyerror function used by bison to report parser errors
+void frontend_verilog_yyerror(char const *fmt, ...)
+{
+       va_list ap;
+       char buffer[1024];
+       char *p = buffer;
+       p += snprintf(p, buffer + sizeof(buffer) - p, "Parser error in line %s:%d: ",
+                       YOSYS_NAMESPACE_PREFIX AST::current_filename.c_str(), frontend_verilog_yyget_lineno());
+       va_start(ap, fmt);
+       p += vsnprintf(p, buffer + sizeof(buffer) - p, fmt, ap);
+       va_end(ap);
+       p += snprintf(p, buffer + sizeof(buffer) - p, "\n");
+       YOSYS_NAMESPACE_PREFIX log_error("%s", buffer);
+       exit(1);
+}
+
index 91f54593f5f1379494c97bdc55a91e7bda2e873e..4d88c8e347a196cdb60f915451f7cc24280f5b09 100644 (file)
@@ -23,6 +23,8 @@
 #include "kernel/log.h"
 #include "kernel/rtlil.h"
 
+YOSYS_NAMESPACE_BEGIN
+
 struct BitPatternPool
 {
        int width;
@@ -133,4 +135,6 @@ struct BitPatternPool
        }
 }; 
 
+YOSYS_NAMESPACE_END
+
 #endif
index 2d29d3f7e3d2eec1eaad6d0860b1bef43bf9cbcd..12895ec7805eb4fb15035f9c4ab7555933e9dc9e 100644 (file)
@@ -25,6 +25,8 @@
 #include "kernel/celltypes.h"
 #include "kernel/macc.h"
 
+YOSYS_NAMESPACE_BEGIN
+
 struct ConstEval
 {
        RTLIL::Module *module;
@@ -376,4 +378,6 @@ struct ConstEval
        }
 };
 
+YOSYS_NAMESPACE_END
+
 #endif
index e2b4db87b5e668d639d67babc57e7cb50bad4eff..2177db0951bf92a2aa05782ec46da4b0b78a13f6 100644 (file)
@@ -26,6 +26,9 @@
 #include <sys/time.h>
 #include <sys/resource.h>
 
+// from libs/sha1/sha1.h
+class SHA1;
+
 YOSYS_NAMESPACE_BEGIN
 
 #define S__LINE__sub2(x) #x
@@ -37,7 +40,7 @@ struct log_cmd_error_expection { };
 extern std::vector<FILE*> log_files;
 extern std::vector<std::ostream*> log_streams;
 extern FILE *log_errfile;
-extern class SHA1 *log_hasher;
+extern SHA1 *log_hasher;
 
 extern bool log_time;
 extern bool log_cmd_error_throw;
@@ -68,9 +71,9 @@ template<typename T> static inline const char *log_id(T *obj) {
 
 void log_cell(RTLIL::Cell *cell, std::string indent = "");
 
-#define log_abort() log_error("Abort in %s:%d.\n", __FILE__, __LINE__)
-#define log_assert(_assert_expr_) do { if (_assert_expr_) break; log_error("Assert `%s' failed in %s:%d.\n", #_assert_expr_, __FILE__, __LINE__); } while (0)
-#define log_ping() log("-- %s:%d %s --\n", __FILE__, __LINE__, __PRETTY_FUNCTION__)
+#define log_abort() YOSYS_NAMESPACE_PREFIX log_error("Abort in %s:%d.\n", __FILE__, __LINE__)
+#define log_assert(_assert_expr_) do { if (_assert_expr_) break; YOSYS_NAMESPACE_PREFIX log_error("Assert `%s' failed in %s:%d.\n", #_assert_expr_, __FILE__, __LINE__); } while (0)
+#define log_ping() YOSYS_NAMESPACE_PREFIX log("-- %s:%d %s --\n", __FILE__, __LINE__, __PRETTY_FUNCTION__)
 
 
 // ---------------------------------------------------
index 692c6e7fb063ec1eadc668f7b5808584499889b3..84a47c43f0ca5b282f14f83c3a31ce74dbac0658 100644 (file)
@@ -26,6 +26,9 @@
 #include "kernel/macc.h"
 
 #include "libs/ezsat/ezminisat.h"
+
+YOSYS_NAMESPACE_BEGIN
+
 typedef ezMiniSAT ezDefaultSAT;
 
 struct SatGen
@@ -1158,4 +1161,6 @@ struct SatGen
        }
 };
 
+YOSYS_NAMESPACE_END
+
 #endif
index a03caf8042224e05a8ebb714afca8917e61a3e11..264558b83905bd87f612f9e9e2597ed18cb1a152 100644 (file)
@@ -25,6 +25,8 @@
 #ifndef UTILS_H
 #define UTILS_H
 
+YOSYS_NAMESPACE_BEGIN
+
 // ------------------------------------------------
 // A map-like container, but you can save and restore the state
 // ------------------------------------------------
@@ -207,4 +209,6 @@ struct TopoSort
        }
 };
 
+YOSYS_NAMESPACE_END
+
 #endif
index b571e177f8870d55153fdb3d5ff410534ddcb693..e796919f2ba706380edb4e36f5c76d53547211f4 100644 (file)
 
 #define PRIVATE_NAMESPACE_BEGIN  namespace {
 #define PRIVATE_NAMESPACE_END    }
-
-#if 0
-#  define YOSYS_NAMESPACE_BEGIN  namespace Yosys {
-#  define YOSYS_NAMESPACE_END    }
-#  define YOSYS_NAMESPACE_PREFIX Yosys::
-#  define USING_YOSYS_NAMESPACE  using namespace Yosys;
-#else
-#  define YOSYS_NAMESPACE_BEGIN
-#  define YOSYS_NAMESPACE_END
-#  define YOSYS_NAMESPACE_PREFIX
-#  define USING_YOSYS_NAMESPACE
-#endif
+#define YOSYS_NAMESPACE_BEGIN    namespace Yosys {
+#define YOSYS_NAMESPACE_END      }
+#define YOSYS_NAMESPACE_PREFIX   Yosys::
+#define USING_YOSYS_NAMESPACE    using namespace Yosys;
 
 #if __cplusplus >= 201103L
 #  define OVERRIDE override
index f1d56b23a830d183c72ee64bccbf5522326adab0..1a7de066384c077290226634e4cafc58e0481820 100644 (file)
@@ -53,6 +53,9 @@
 
 #include "blifparse.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 enum class gate_type_t {
        G_NONE,
        G_FF,
@@ -1207,3 +1210,4 @@ struct AbcPass : public Pass {
        }
 } AbcPass;
  
+ PRIVATE_NAMESPACE_END
index 1fbb5720d2964e3e8b6b298e60c3f69449862fa7..38151985ba9b469ee242e13c13b28c46d5853c51 100644 (file)
@@ -18,9 +18,8 @@
  */
 
 #include "blifparse.h"
-#include "kernel/log.h"
-#include <stdio.h>
-#include <string.h>
+
+YOSYS_NAMESPACE_BEGIN
 
 static bool read_next_line(char *&buffer, size_t &buffer_size, int &line_count, FILE *f)
 {
@@ -240,3 +239,5 @@ error:
        // return NULL;
 }
 
+YOSYS_NAMESPACE_END
+
index 272e4e6459708310ccdec4ed8e583da6b2cd136d..31f5b2e5cfc04a84cc1a4ef0127e08579bc7988e 100644 (file)
 #ifndef ABC_BLIFPARSE
 #define ABC_BLIFPARSE
 
-#include "kernel/rtlil.h"
+#include "kernel/yosys.h"
+
+YOSYS_NAMESPACE_BEGIN
 
 extern RTLIL::Design *abc_parse_blif(FILE *f, std::string dff_name);
 
-#endif
+YOSYS_NAMESPACE_END
 
+#endif
index e3fde85590890782a55c9193f699bab0ccc727d9..054cfc1cb6571ed81f795e2b09e78b238ae91519 100644 (file)
  *
  */
 
-#include "kernel/register.h"
-#include "kernel/rtlil.h"
-#include "kernel/log.h"
+#include "kernel/yosys.h"
+
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
 
 static void add_wire(RTLIL::Design *design, RTLIL::Module *module, std::string name, int width, bool flag_input, bool flag_output, bool flag_global)
 {
@@ -150,3 +151,4 @@ struct AddPass : public Pass {
        }
 } AddPass;
  
+PRIVATE_NAMESPACE_END
index 30c80f7328fcd3c7f6697fcf00938f6d5b25a825..e17c1b1c336bafdaaf2bc996ef407b88a21f3ec5 100644 (file)
@@ -23,6 +23,9 @@
 #include "kernel/celltypes.h"
 #include "kernel/log.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 static void unset_drivers(RTLIL::Design *design, RTLIL::Module *module, SigMap &sigmap, RTLIL::SigSpec &sig)
 {
        CellTypes ct(design);
@@ -183,3 +186,4 @@ struct ConnectPass : public Pass {
        }
 } ConnectPass;
  
+PRIVATE_NAMESPACE_END
index aac117169e711914ca718c3bc4ae6de5e69a24cc..a65a63644d38492f397e25c63c1823b1aed9b680 100644 (file)
@@ -22,6 +22,9 @@
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct ConnwrappersWorker
 {
        struct portdecl_t {
@@ -203,3 +206,4 @@ struct ConnwrappersPass : public Pass {
        }
 } ConnwrappersPass;
  
+PRIVATE_NAMESPACE_END
index be775820072b4814fba2664212ad73a78d701209..459e5b0e7ca48a2dde5c8b491cd2027763028acf 100644 (file)
@@ -21,6 +21,9 @@
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct CopyPass : public Pass {
        CopyPass() : Pass("copy", "copy modules in the design") { }
        virtual void help()
@@ -53,3 +56,4 @@ struct CopyPass : public Pass {
        }
 } CopyPass;
  
+PRIVATE_NAMESPACE_END
index ac72ba53a0494985c5c62bbbc17013c58c0acc36..057f3121741bdc5c2b249e5da7785cf13538af6b 100644 (file)
@@ -25,6 +25,9 @@
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct CoverPass : public Pass {
        CoverPass() : Pass("cover", "print code coverage counters") { }
        virtual void help()
@@ -142,3 +145,4 @@ struct CoverPass : public Pass {
        }
 } CoverPass;
 
+PRIVATE_NAMESPACE_END
index 2a91bc9eaaa53031f19a6e644eee36f017c8ced2..8c3391e521874aeb19aa51455e35c4594995d19a 100644 (file)
  *
  */
 
-#include "kernel/register.h"
-#include "kernel/rtlil.h"
-#include "kernel/log.h"
+#include "kernel/yosys.h"
+
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
 
 struct DeletePass : public Pass {
        DeletePass() : Pass("delete", "delete objects in the design") { }
@@ -140,3 +141,4 @@ struct DeletePass : public Pass {
        }
 } DeletePass;
  
+PRIVATE_NAMESPACE_END
index 34db0eed8c1bd353559b0be2ae7b08c7bd635f55..85386f3d2e0b49f719114757014aa4072e3a6a94 100644 (file)
@@ -22,6 +22,9 @@
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct LogPass : public Pass {
        LogPass() : Pass("log", "print text and log files") { }
        virtual void help()
@@ -76,3 +79,4 @@ struct LogPass : public Pass {
        }
 } LogPass;
 
+PRIVATE_NAMESPACE_END
index 91de364fe038d3de2e93a6de92ae9ef6be195075..1006686efe8bd45ec0b026fa6db18967928b9841 100644 (file)
@@ -21,6 +21,9 @@
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 static void rename_in_module(RTLIL::Module *module, std::string from_name, std::string to_name)
 {
        from_name = RTLIL::escape_id(from_name);
@@ -196,3 +199,4 @@ struct RenamePass : public Pass {
        }
 } RenamePass;
  
+PRIVATE_NAMESPACE_END
index e09c00123e4382acde8dda8963336d5e52bfd054..1cd55ecb0e2ab64c5a13a158ac40290c72a18af3 100644 (file)
@@ -22,6 +22,9 @@
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct ScatterPass : public Pass {
        ScatterPass() : Pass("scatter", "add additional intermediate nets") { }
        virtual void help()
@@ -67,3 +70,4 @@ struct ScatterPass : public Pass {
        }
 } ScatterPass;
  
+PRIVATE_NAMESPACE_END
index 5224f5bc9a4c997302e522e0913a56ddb1751067..f7f50ab2ad3863fb9b1b2fda9184c3d57858664e 100644 (file)
@@ -29,6 +29,9 @@
 #include <stdio.h>
 #include <set>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct SccWorker
 {
        RTLIL::Design *design;
@@ -297,3 +300,4 @@ struct SccPass : public Pass {
        }
 } SccPass;
  
+PRIVATE_NAMESPACE_END
index 4c540ca67948403f24436cfad1c9d2a118a16d78..363687f25ef1e7a3c76a0f9a5df51e540046598f 100644 (file)
@@ -25,6 +25,9 @@
 #include <fnmatch.h>
 #include <errno.h>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 using RTLIL::id2cstr;
 
 static std::vector<RTLIL::Selection> work_stack;
@@ -795,6 +798,9 @@ static void select_stmt(RTLIL::Design *design, std::string arg)
        select_filter_active_mod(design, work_stack.back());
 }
 
+PRIVATE_NAMESPACE_END
+YOSYS_NAMESPACE_BEGIN
+
 // used in kernel/register.cc and maybe other locations, extern decl. in register.h
 void handle_extra_select_args(Pass *pass, std::vector<std::string> args, size_t argidx, size_t args_size, RTLIL::Design *design)
 {
@@ -818,6 +824,9 @@ void handle_extra_select_args(Pass *pass, std::vector<std::string> args, size_t
                design->selection_stack.push_back(RTLIL::Selection(false));
 }
 
+YOSYS_NAMESPACE_END
+PRIVATE_NAMESPACE_BEGIN
+
 struct SelectPass : public Pass {
        SelectPass() : Pass("select", "modify and view the list of selected objects") { }
        virtual void help()
@@ -1384,3 +1393,4 @@ struct LsPass : public Pass {
        }
 } LsPass;
  
+PRIVATE_NAMESPACE_END
index 029c0ec794c3e85ab334c767bd9bf0a9a8ee26e8..39c75c54e872ae418fa87a6b130f3ad08c6124d6 100644 (file)
@@ -21,6 +21,9 @@
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct setunset_t
 {
        RTLIL::IdString name;
@@ -178,3 +181,4 @@ struct SetparamPass : public Pass {
        }
 } SetparamPass;
  
+PRIVATE_NAMESPACE_END
index c72e64b80645b22c38e7f37af1ed438614bd0748..b9a29b7d2a6a3ac120b9a0eefe428d2b955cb65a 100644 (file)
@@ -23,6 +23,9 @@
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct SetundefWorker
 {
        int next_bit_mode;
@@ -153,3 +156,4 @@ struct SetundefPass : public Pass {
        }
 } SetundefPass;
  
+PRIVATE_NAMESPACE_END
index 2218eded29a893a0b4b0b56f5aeb96ef521bd65a..05da4792317819eacd18424bc12f34febfb5dbd4 100644 (file)
@@ -27,6 +27,9 @@
 #  include <readline/readline.h>
 #endif
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 using RTLIL::id2cstr;
 
 #undef CLUSTER_CELLS_AND_PORTBOXES
@@ -795,3 +798,4 @@ struct ShowPass : public Pass {
        }
 } ShowPass;
  
+PRIVATE_NAMESPACE_END
index d03aaf3b5e644c0b32567cf924e4fffbf8514466..d3ef15ab4c9a87846cd5acad8faf4a75b1c77a5f 100644 (file)
@@ -24,6 +24,9 @@
 #include "kernel/log.h"
 #include <tuple>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct SpliceWorker
 {
        RTLIL::Design *design;
@@ -349,3 +352,4 @@ struct SplicePass : public Pass {
        }
 } SplicePass;
  
+PRIVATE_NAMESPACE_END
index 344b03fc202d239baa64d540db3683799a5daa6f..a6c9fe8839fdd82d45d28a3bfbe68f2536959301 100644 (file)
@@ -22,6 +22,9 @@
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct SplitnetsWorker
 {
        std::map<RTLIL::Wire*, std::vector<RTLIL::SigBit>> splitmap;
@@ -183,3 +186,4 @@ struct SplitnetsPass : public Pass {
        }
 } SplitnetsPass;
  
+PRIVATE_NAMESPACE_END
index 19cdaa6213c5fd6d33840b1f26453b783f29abf7..b21ba01bac4c0379b78953a5c8fa3753c85d9cbf 100644 (file)
 #include "kernel/celltypes.h"
 #include "kernel/log.h"
 
-namespace
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+struct statdata_t
 {
-       struct statdata_t
+       #define STAT_INT_MEMBERS X(num_wires) X(num_wire_bits) X(num_pub_wires) X(num_pub_wire_bits) \
+                       X(num_memories) X(num_memory_bits) X(num_cells) X(num_processes)
+
+       #define X(_name) int _name;
+       STAT_INT_MEMBERS
+       #undef X
+
+       std::map<RTLIL::IdString, int> num_cells_by_type;
+
+       statdata_t operator+(const statdata_t &other) const
        {
-               #define STAT_INT_MEMBERS X(num_wires) X(num_wire_bits) X(num_pub_wires) X(num_pub_wire_bits) \
-                               X(num_memories) X(num_memory_bits) X(num_cells) X(num_processes)
+               statdata_t sum = other;
+       #define X(_name) sum._name += _name;
+               STAT_INT_MEMBERS
+       #undef X
+               for (auto &it : num_cells_by_type)
+                       sum.num_cells_by_type[it.first] += it.second;
+               return sum;
+       }
 
-               #define X(_name) int _name;
+       statdata_t operator*(int other) const
+       {
+               statdata_t sum = *this;
+       #define X(_name) sum._name *= other;
                STAT_INT_MEMBERS
-               #undef X
+       #undef X
+               for (auto &it : sum.num_cells_by_type)
+                       it.second *= other;
+               return sum;
+       }
 
-               std::map<RTLIL::IdString, int> num_cells_by_type;
+       statdata_t()
+       {
+       #define X(_name) _name = 0;
+               STAT_INT_MEMBERS
+       #undef X
+       }
 
-               statdata_t operator+(const statdata_t &other) const
-               {
-                       statdata_t sum = other;
-               #define X(_name) sum._name += _name;
-                       STAT_INT_MEMBERS
-               #undef X
-                       for (auto &it : num_cells_by_type)
-                               sum.num_cells_by_type[it.first] += it.second;
-                       return sum;
-               }
+       statdata_t(RTLIL::Design *design, RTLIL::Module *mod, bool width_mode)
+       {
+       #define X(_name) _name = 0;
+               STAT_INT_MEMBERS
+       #undef X
 
-               statdata_t operator*(int other) const
+               for (auto &it : mod->wires_)
                {
-                       statdata_t sum = *this;
-               #define X(_name) sum._name *= other;
-                       STAT_INT_MEMBERS
-               #undef X
-                       for (auto &it : sum.num_cells_by_type)
-                               it.second *= other;
-                       return sum;
+                       if (!design->selected(mod, it.second))
+                               continue;
+
+                       if (it.first[0] == '\\') {
+                               num_pub_wires++;
+                               num_pub_wire_bits += it.second->width;
+                       }
+
+                       num_wires++;
+                       num_wire_bits += it.second->width;
                }
 
-               statdata_t()
-               {
-               #define X(_name) _name = 0;
-                       STAT_INT_MEMBERS
-               #undef X
+               for (auto &it : mod->memories) {
+                       if (!design->selected(mod, it.second))
+                               continue;
+                       num_memories++;
+                       num_memory_bits += it.second->width * it.second->size;
                }
 
-               statdata_t(RTLIL::Design *design, RTLIL::Module *mod, bool width_mode)
+               for (auto &it : mod->cells_)
                {
-               #define X(_name) _name = 0;
-                       STAT_INT_MEMBERS
-               #undef X
-
-                       for (auto &it : mod->wires_)
-                       {
-                               if (!design->selected(mod, it.second))
-                                       continue;
-
-                               if (it.first[0] == '\\') {
-                                       num_pub_wires++;
-                                       num_pub_wire_bits += it.second->width;
-                               }
-
-                               num_wires++;
-                               num_wire_bits += it.second->width;
-                       }
+                       if (!design->selected(mod, it.second))
+                               continue;
 
-                       for (auto &it : mod->memories) {
-                               if (!design->selected(mod, it.second))
-                                       continue;
-                               num_memories++;
-                               num_memory_bits += it.second->width * it.second->size;
-                       }
+                       RTLIL::IdString cell_type = it.second->type;
 
-                       for (auto &it : mod->cells_)
+                       if (width_mode)
                        {
-                               if (!design->selected(mod, it.second))
-                                       continue;
-
-                               RTLIL::IdString cell_type = it.second->type;
-
-                               if (width_mode)
-                               {
-                                       if (cell_type.in("$not", "$pos", "$neg",
-                                                       "$logic_not", "$logic_and", "$logic_or",
-                                                       "$reduce_and", "$reduce_or", "$reduce_xor", "$reduce_xnor", "$reduce_bool",
-                                                       "$lut", "$and", "$or", "$xor", "$xnor",
-                                                       "$shl", "$shr", "$sshl", "$sshr", "$shift", "$shiftx",
-                                                       "$lt", "$le", "$eq", "$ne", "$eqx", "$nex", "$ge", "$gt",
-                                                       "$add", "$sub", "$mul", "$div", "$mod", "$pow")) {
-                                               int width_a = it.second->hasPort("\\A") ? SIZE(it.second->getPort("\\A")) : 0;
-                                               int width_b = it.second->hasPort("\\B") ? SIZE(it.second->getPort("\\B")) : 0;
-                                               int width_y = it.second->hasPort("\\Y") ? SIZE(it.second->getPort("\\Y")) : 0;
-                                               cell_type = stringf("%s_%d", cell_type.c_str(), std::max<int>({width_a, width_b, width_y}));
-                                       }
-                                       else if (cell_type.in("$mux", "$pmux"))
-                                               cell_type = stringf("%s_%d", cell_type.c_str(), SIZE(it.second->getPort("\\Y")));
-                                       else if (cell_type.in("$sr", "$dff", "$dffsr", "$adff", "$dlatch", "$dlatchsr"))
-                                               cell_type = stringf("%s_%d", cell_type.c_str(), SIZE(it.second->getPort("\\Q")));
+                               if (cell_type.in("$not", "$pos", "$neg",
+                                               "$logic_not", "$logic_and", "$logic_or",
+                                               "$reduce_and", "$reduce_or", "$reduce_xor", "$reduce_xnor", "$reduce_bool",
+                                               "$lut", "$and", "$or", "$xor", "$xnor",
+                                               "$shl", "$shr", "$sshl", "$sshr", "$shift", "$shiftx",
+                                               "$lt", "$le", "$eq", "$ne", "$eqx", "$nex", "$ge", "$gt",
+                                               "$add", "$sub", "$mul", "$div", "$mod", "$pow")) {
+                                       int width_a = it.second->hasPort("\\A") ? SIZE(it.second->getPort("\\A")) : 0;
+                                       int width_b = it.second->hasPort("\\B") ? SIZE(it.second->getPort("\\B")) : 0;
+                                       int width_y = it.second->hasPort("\\Y") ? SIZE(it.second->getPort("\\Y")) : 0;
+                                       cell_type = stringf("%s_%d", cell_type.c_str(), std::max<int>({width_a, width_b, width_y}));
                                }
-
-                               num_cells++;
-                               num_cells_by_type[cell_type]++;
+                               else if (cell_type.in("$mux", "$pmux"))
+                                       cell_type = stringf("%s_%d", cell_type.c_str(), SIZE(it.second->getPort("\\Y")));
+                               else if (cell_type.in("$sr", "$dff", "$dffsr", "$adff", "$dlatch", "$dlatchsr"))
+                                       cell_type = stringf("%s_%d", cell_type.c_str(), SIZE(it.second->getPort("\\Q")));
                        }
 
-                       for (auto &it : mod->processes) {
-                               if (!design->selected(mod, it.second))
-                                       continue;
-                               num_processes++;
-                       }
+                       num_cells++;
+                       num_cells_by_type[cell_type]++;
                }
 
-               void log_data()
-               {
-                       log("   Number of wires:             %6d\n", num_wires);
-                       log("   Number of wire bits:         %6d\n", num_wire_bits);
-                       log("   Number of public wires:      %6d\n", num_pub_wires);
-                       log("   Number of public wire bits:  %6d\n", num_pub_wire_bits);
-                       log("   Number of memories:          %6d\n", num_memories);
-                       log("   Number of memory bits:       %6d\n", num_memory_bits);
-                       log("   Number of processes:         %6d\n", num_processes);
-                       log("   Number of cells:             %6d\n", num_cells);
-                       for (auto &it : num_cells_by_type)
-                               log("     %-26s %6d\n", RTLIL::id2cstr(it.first), it.second);
+               for (auto &it : mod->processes) {
+                       if (!design->selected(mod, it.second))
+                               continue;
+                       num_processes++;
                }
-       };
+       }
 
-       statdata_t hierarchy_worker(std::map<RTLIL::IdString, statdata_t> &mod_stat, RTLIL::IdString mod, int level)
+       void log_data()
        {
-               statdata_t mod_data = mod_stat.at(mod);
-               std::map<RTLIL::IdString, int> num_cells_by_type;
-               num_cells_by_type.swap(mod_data.num_cells_by_type);
-
+               log("   Number of wires:             %6d\n", num_wires);
+               log("   Number of wire bits:         %6d\n", num_wire_bits);
+               log("   Number of public wires:      %6d\n", num_pub_wires);
+               log("   Number of public wire bits:  %6d\n", num_pub_wire_bits);
+               log("   Number of memories:          %6d\n", num_memories);
+               log("   Number of memory bits:       %6d\n", num_memory_bits);
+               log("   Number of processes:         %6d\n", num_processes);
+               log("   Number of cells:             %6d\n", num_cells);
                for (auto &it : num_cells_by_type)
-                       if (mod_stat.count(it.first) > 0) {
-                               log("     %*s%-*s %6d\n", 2*level, "", 26-2*level, RTLIL::id2cstr(it.first), it.second);
-                               mod_data = mod_data + hierarchy_worker(mod_stat, it.first, level+1) * it.second;
-                               mod_data.num_cells -= it.second;
-                       } else {
-                               mod_data.num_cells_by_type[it.first] += it.second;
-                       }
-
-               return mod_data;
+                       log("     %-26s %6d\n", RTLIL::id2cstr(it.first), it.second);
        }
+};
+
+statdata_t hierarchy_worker(std::map<RTLIL::IdString, statdata_t> &mod_stat, RTLIL::IdString mod, int level)
+{
+       statdata_t mod_data = mod_stat.at(mod);
+       std::map<RTLIL::IdString, int> num_cells_by_type;
+       num_cells_by_type.swap(mod_data.num_cells_by_type);
+
+       for (auto &it : num_cells_by_type)
+               if (mod_stat.count(it.first) > 0) {
+                       log("     %*s%-*s %6d\n", 2*level, "", 26-2*level, RTLIL::id2cstr(it.first), it.second);
+                       mod_data = mod_data + hierarchy_worker(mod_stat, it.first, level+1) * it.second;
+                       mod_data.num_cells -= it.second;
+               } else {
+                       mod_data.num_cells_by_type[it.first] += it.second;
+               }
+
+       return mod_data;
 }
 
 struct StatPass : public Pass {
@@ -243,3 +243,4 @@ struct StatPass : public Pass {
        }
 } StatPass;
  
+PRIVATE_NAMESPACE_END
index 6f80ef72c035ed3147cc55a0e23dd4c33e6fea41..8ef4c89e7b82ae3a8cff126d77f33032bc8df056 100644 (file)
@@ -22,6 +22,9 @@
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct TeePass : public Pass {
        TeePass() : Pass("tee", "redirect command output to file") { }
        virtual void help()
@@ -86,3 +89,4 @@ struct TeePass : public Pass {
        }
 } TeePass;
 
+PRIVATE_NAMESPACE_END
index 09293a86bf229a93a35b53039ac5db030112962c..ac61be081223ee03732ba2afef84ceab7f911a42 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "kernel/yosys.h"
 
+USING_YOSYS_NAMESPACE
 PRIVATE_NAMESPACE_BEGIN
 
 struct TraceMonitor : public RTLIL::Monitor
index 813e215ba04fe5ad2ea0b46e19f247e5d3a63244..9f22861a5055df54a0398fd8c49d671690651216 100644 (file)
@@ -20,6 +20,9 @@
 
 #include "kernel/yosys.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct WriteFileFrontend : public Frontend {
        WriteFileFrontend() : Frontend("=write_file", "write a text to a file") { }
        virtual void help()
@@ -74,3 +77,4 @@ struct WriteFileFrontend : public Frontend {
        }
 } WriteFileFrontend;
 
+PRIVATE_NAMESPACE_END
index 2fae760915ee78d83b25e9d674177e88eccb2f7a..1e7c77727a8fb230d7c82f457f5b6d7db1c3fee7 100644 (file)
@@ -22,6 +22,9 @@
 #include <stdlib.h>
 #include <stdio.h>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct FsmPass : public Pass {
        FsmPass() : Pass("fsm", "extract and optimize finite state machines") { }
        virtual void help()
@@ -137,3 +140,4 @@ struct FsmPass : public Pass {
        }
 } FsmPass;
  
+PRIVATE_NAMESPACE_END
index 2c846a4cfb248df738a9f1d84ca07dbd4a37d0fa..84932e963a9d8e5ac4ef80b43ec3ce3f408e404b 100644 (file)
@@ -24,6 +24,9 @@
 #include "kernel/celltypes.h"
 #include "fsmdata.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 static RTLIL::Module *module;
 static SigMap assign_map;
 typedef std::pair<RTLIL::Cell*, RTLIL::IdString> sig2driver_entry_t;
@@ -189,3 +192,4 @@ struct FsmDetectPass : public Pass {
        }
 } FsmDetectPass;
  
+PRIVATE_NAMESPACE_END
index d13643911b9b41629f05b55cc5bd328767f3a61d..ecd4bf762d15da5412dd7176e994c1d5d534422d 100644 (file)
@@ -25,6 +25,9 @@
 #include "fsmdata.h"
 #include <string.h>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct FsmExpand
 {
        RTLIL::Module *module;
@@ -273,3 +276,4 @@ struct FsmExpandPass : public Pass {
        }
 } FsmExpandPass;
  
+PRIVATE_NAMESPACE_END
index b4a6b3f7b25e1ca3d79aff272ce71f9443194cb7..668fe8d1dd5805a001f561967bce17bbca7c9494 100644 (file)
@@ -28,6 +28,9 @@
 #include <iostream>
 #include <fstream>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 /**
  * Convert a signal into a KISS-compatible textual representation.
  */
@@ -182,3 +185,5 @@ struct FsmExportPass : public Pass {
                                        }
        }
 } FsmExportPass;
+
+PRIVATE_NAMESPACE_END
index 451f00fcb2a680b57a0a787625f72fb4cca036d1..f3369758e6479176303d279da3954217c04e6123 100644 (file)
@@ -29,6 +29,9 @@
 #include "kernel/celltypes.h"
 #include "fsmdata.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 static RTLIL::Module *module;
 static SigMap assign_map;
 typedef std::pair<RTLIL::IdString, RTLIL::IdString> sig2driver_entry_t;
@@ -456,3 +459,4 @@ struct FsmExtractPass : public Pass {
        }
 } FsmExtractPass;
  
+PRIVATE_NAMESPACE_END
index 45d68a9062558ca6b93f4f37de7990ead386f20a..4a1f1d9a2da03dd8deb06b187bd347713c4bc09b 100644 (file)
@@ -25,6 +25,9 @@
 #include "fsmdata.h"
 #include <string.h>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct FsmInfoPass : public Pass {
        FsmInfoPass() : Pass("fsm_info", "print information on finite state machines") { }
        virtual void help()
@@ -56,3 +59,4 @@ struct FsmInfoPass : public Pass {
        }
 } FsmInfoPass;
  
+PRIVATE_NAMESPACE_END
index ab6d5671dd7aac1fe924376a5ad63462fa361230..2f6ac8543406646e25702e3678171b67e28ff20a 100644 (file)
@@ -25,6 +25,9 @@
 #include "fsmdata.h"
 #include <string.h>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 static bool pattern_is_subset(const RTLIL::Const &super_pattern, const RTLIL::Const &sub_pattern)
 {
        log_assert(SIZE(super_pattern.bits) == SIZE(sub_pattern.bits));
@@ -345,3 +348,4 @@ struct FsmMapPass : public Pass {
        }
 } FsmMapPass;
  
+PRIVATE_NAMESPACE_END
index a0e1885ecef06a5a9a2b42f50d247c4140ebfd8e..805e3925b8528744f77a539d43d557cf878c262f 100644 (file)
@@ -25,6 +25,9 @@
 #include "fsmdata.h"
 #include <string.h>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct FsmOpt
 {
        FsmData fsm_data;
@@ -309,11 +312,15 @@ struct FsmOpt
        }
 };
 
-void FsmData::optimize_fsm(RTLIL::Cell *cell, RTLIL::Module *module)
+PRIVATE_NAMESPACE_END
+
+void YOSYS_NAMESPACE_PREFIX FsmData::optimize_fsm(RTLIL::Cell *cell, RTLIL::Module *module)
 {
        FsmOpt fsmopt(cell, module);
 }
 
+PRIVATE_NAMESPACE_BEGIN
+
 struct FsmOptPass : public Pass {
        FsmOptPass() : Pass("fsm_opt", "optimize finite state machines") { }
        virtual void help()
@@ -341,3 +348,4 @@ struct FsmOptPass : public Pass {
        }
 } FsmOptPass;
  
+PRIVATE_NAMESPACE_END
index 873ee7a16b3efbde279a6b5dd43425aed4412519..640bed1e59d12e2a138a55d546fa0bf70409cd66 100644 (file)
@@ -27,6 +27,9 @@
 #include <string.h>
 #include <errno.h>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 static void fm_set_fsm_print(RTLIL::Cell *cell, RTLIL::Module *module, FsmData &fsm_data, const char *prefix, FILE *f)
 {
        std::string name = cell->parameters["\\NAME"].decode_string();
@@ -168,3 +171,4 @@ struct FsmRecodePass : public Pass {
        }
 } FsmRecodePass;
  
+PRIVATE_NAMESPACE_END
index 7a44dd4522875d53b8bf8bc24af112de383157e9..17d22c86ef7e3753a7ed05f10cb74906a9e04727 100644 (file)
@@ -20,8 +20,9 @@
 #ifndef FSMDATA_H
 #define FSMDATA_H
 
-#include "kernel/rtlil.h"
-#include "kernel/log.h"
+#include "kernel/yosys.h"
+
+YOSYS_NAMESPACE_BEGIN
 
 struct FsmData
 {
@@ -172,4 +173,6 @@ struct FsmData
        static void optimize_fsm(RTLIL::Cell *cell, RTLIL::Module *module);
 };
 
+YOSYS_NAMESPACE_END
+
 #endif
index 14bf8d1bd58b5978c249ba8519040e4fb6c702c8..2c77a892ae5cdeedd88423c1112a029f1d8b3732 100644 (file)
 #include <set>
 #include <unistd.h>
 
-namespace {
-       struct generate_port_decl_t {
-               bool input, output;
-               RTLIL::IdString portname;
-               int index;
-       };
-}
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+struct generate_port_decl_t {
+       bool input, output;
+       RTLIL::IdString portname;
+       int index;
+};
 
-static void generate(RTLIL::Design *design, const std::vector<std::string> &celltypes, const std::vector<generate_port_decl_t> &portdecls)
+void generate(RTLIL::Design *design, const std::vector<std::string> &celltypes, const std::vector<generate_port_decl_t> &portdecls)
 {
        std::set<RTLIL::IdString> found_celltypes;
 
@@ -135,7 +136,7 @@ static void generate(RTLIL::Design *design, const std::vector<std::string> &cell
        }
 }
 
-static bool expand_module(RTLIL::Design *design, RTLIL::Module *module, bool flag_check, std::vector<std::string> &libdirs)
+bool expand_module(RTLIL::Design *design, RTLIL::Module *module, bool flag_check, std::vector<std::string> &libdirs)
 {
        bool did_something = false;
        std::map<RTLIL::Cell*, std::pair<int, int>> array_cells;
@@ -245,7 +246,7 @@ static bool expand_module(RTLIL::Design *design, RTLIL::Module *module, bool fla
        return did_something;
 }
 
-static void hierarchy_worker(RTLIL::Design *design, std::set<RTLIL::Module*> &used, RTLIL::Module *mod, int indent)
+void hierarchy_worker(RTLIL::Design *design, std::set<RTLIL::Module*> &used, RTLIL::Module *mod, int indent)
 {
        if (used.count(mod) > 0)
                return;
@@ -262,7 +263,7 @@ static void hierarchy_worker(RTLIL::Design *design, std::set<RTLIL::Module*> &us
        }
 }
 
-static void hierarchy(RTLIL::Design *design, RTLIL::Module *top, bool purge_lib, bool first_pass)
+void hierarchy(RTLIL::Design *design, RTLIL::Module *top, bool purge_lib, bool first_pass)
 {
        std::set<RTLIL::Module*> used;
        hierarchy_worker(design, used, top, 0);
@@ -528,3 +529,4 @@ struct HierarchyPass : public Pass {
        }
 } HierarchyPass;
  
+PRIVATE_NAMESPACE_END
index 1b03ab5553cbba296658997adce0d152715bf2ee..68a441f405f5eea6636daef14d1cc735fcc9e221 100644 (file)
@@ -24,6 +24,9 @@
 #include <stdio.h>
 #include <set>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct SubmodWorker
 {
        CellTypes ct;
@@ -347,3 +350,4 @@ struct SubmodPass : public Pass {
        }
 } SubmodPass;
  
+PRIVATE_NAMESPACE_END
index fc30955358ef1aa69ea5da9d8cd9b207672673d7..502e210227db8ecd5a11d6144f5d4440a94b7ad3 100644 (file)
@@ -22,6 +22,9 @@
 #include <stdlib.h>
 #include <stdio.h>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct MemoryPass : public Pass {
        MemoryPass() : Pass("memory", "translate memories to basic cells") { }
        virtual void help()
@@ -73,3 +76,4 @@ struct MemoryPass : public Pass {
        }
 } MemoryPass;
  
+PRIVATE_NAMESPACE_END
index 9c670f00ff68d0569335dfac26e5fa59264ffed0..54630682256ed3e93f72051642ab06349f33a243 100644 (file)
 #include <algorithm>
 #include <stdlib.h>
 
-static bool memcells_cmp(RTLIL::Cell *a, RTLIL::Cell *b)
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+bool memcells_cmp(RTLIL::Cell *a, RTLIL::Cell *b)
 {
        if (a->type == "$memrd" && b->type == "$memrd")
                return a->name < b->name;
@@ -32,7 +35,7 @@ static bool memcells_cmp(RTLIL::Cell *a, RTLIL::Cell *b)
        return a->parameters.at("\\PRIORITY").as_int() < b->parameters.at("\\PRIORITY").as_int();
 }
 
-static void handle_memory(RTLIL::Module *module, RTLIL::Memory *memory)
+void handle_memory(RTLIL::Module *module, RTLIL::Memory *memory)
 {
        log("Collecting $memrd and $memwr for memory `%s' in module `%s':\n",
                        memory->name.c_str(), module->name.c_str());
@@ -205,3 +208,4 @@ struct MemoryCollectPass : public Pass {
        }
 } MemoryCollectPass;
  
+PRIVATE_NAMESPACE_END
index 302ab3abf752ce25f5cf80eeea9b6eae5c00ecae..d3cc681a28dfb87aa66d29e507a80721e2f1b044 100644 (file)
 #include <stdlib.h>
 #include <sstream>
 
-static void normalize_sig(RTLIL::Module *module, RTLIL::SigSpec &sig)
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+void normalize_sig(RTLIL::Module *module, RTLIL::SigSpec &sig)
 {
        for (auto &conn : module->connections())
                sig.replace(conn.first, conn.second);
 }
 
-static bool find_sig_before_dff(RTLIL::Module *module, std::vector<RTLIL::Cell*> &dff_cells, RTLIL::SigSpec &sig, RTLIL::SigSpec &clk, bool &clk_polarity, bool after = false)
+bool find_sig_before_dff(RTLIL::Module *module, std::vector<RTLIL::Cell*> &dff_cells, RTLIL::SigSpec &sig, RTLIL::SigSpec &clk, bool &clk_polarity, bool after = false)
 {
        normalize_sig(module, sig);
 
@@ -66,7 +69,7 @@ static bool find_sig_before_dff(RTLIL::Module *module, std::vector<RTLIL::Cell*>
        return true;
 }
 
-static void handle_wr_cell(RTLIL::Module *module, std::vector<RTLIL::Cell*> &dff_cells, RTLIL::Cell *cell)
+void handle_wr_cell(RTLIL::Module *module, std::vector<RTLIL::Cell*> &dff_cells, RTLIL::Cell *cell)
 {
        log("Checking cell `%s' in module `%s': ", cell->name.c_str(), module->name.c_str());
 
@@ -105,7 +108,7 @@ static void handle_wr_cell(RTLIL::Module *module, std::vector<RTLIL::Cell*> &dff
        log("no (compatible) $dff found.\n");
 }
 
-static void disconnect_dff(RTLIL::Module *module, RTLIL::SigSpec sig)
+void disconnect_dff(RTLIL::Module *module, RTLIL::SigSpec sig)
 {
        normalize_sig(module, sig);
        sig.sort_and_unify();
@@ -123,7 +126,7 @@ static void disconnect_dff(RTLIL::Module *module, RTLIL::SigSpec sig)
                }
 }
 
-static void handle_rd_cell(RTLIL::Module *module, std::vector<RTLIL::Cell*> &dff_cells, RTLIL::Cell *cell)
+void handle_rd_cell(RTLIL::Module *module, std::vector<RTLIL::Cell*> &dff_cells, RTLIL::Cell *cell)
 {
        log("Checking cell `%s' in module `%s': ", cell->name.c_str(), module->name.c_str());
 
@@ -161,7 +164,7 @@ static void handle_rd_cell(RTLIL::Module *module, std::vector<RTLIL::Cell*> &dff
        log("no (compatible) $dff found.\n");
 }
 
-static void handle_module(RTLIL::Module *module, bool flag_wr_only)
+void handle_module(RTLIL::Module *module, bool flag_wr_only)
 {
        std::vector<RTLIL::Cell*> dff_cells;
 
@@ -216,3 +219,4 @@ struct MemoryDffPass : public Pass {
        }
 } MemoryDffPass;
  
+PRIVATE_NAMESPACE_END
index eecb6f35d8c9c72a4aabbdd8f7dd68114e9c2e7c..449604c1a0dbe4126e24f42aa10eba84bd0f32fe 100644 (file)
@@ -23,6 +23,9 @@
 #include <set>
 #include <stdlib.h>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct MemoryMapWorker
 {
        RTLIL::Design *design;
@@ -339,3 +342,4 @@ struct MemoryMapPass : public Pass {
        }
 } MemoryMapPass;
  
+PRIVATE_NAMESPACE_END
index 3ae0cd2c7af24ab4af5c9b03e3b38bdf07d65ef3..f77b304b4fdfcdb441f2da452cbb254f71831f79 100644 (file)
 #include "kernel/sigtools.h"
 #include "kernel/modtools.h"
 
+USING_YOSYS_NAMESPACE
 PRIVATE_NAMESPACE_BEGIN
 
-static bool memcells_cmp(RTLIL::Cell *a, RTLIL::Cell *b)
+bool memcells_cmp(RTLIL::Cell *a, RTLIL::Cell *b)
 {
        if (a->type == "$memrd" && b->type == "$memrd")
                return a->name < b->name;
@@ -741,4 +742,3 @@ struct MemorySharePass : public Pass {
 } MemorySharePass;
 
 PRIVATE_NAMESPACE_END
-
index 5a4c4eac966e48043064ca46a643d9d4cd3ca034..e650facb48df8bb9c8b4af5ba65a376e4836d6f8 100644 (file)
 #include <algorithm>
 #include <stdlib.h>
 
-static void handle_memory(RTLIL::Module *module, RTLIL::Cell *memory)
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+void handle_memory(RTLIL::Module *module, RTLIL::Cell *memory)
 {
        log("Creating $memrd and $memwr for memory `%s' in module `%s':\n",
                        memory->name.c_str(), module->name.c_str());
@@ -76,7 +79,7 @@ static void handle_memory(RTLIL::Module *module, RTLIL::Cell *memory)
        module->remove(memory);
 }
 
-static void handle_module(RTLIL::Design *design, RTLIL::Module *module)
+void handle_module(RTLIL::Design *design, RTLIL::Module *module)
 {
        std::vector<RTLIL::IdString> memcells;
        for (auto &cell_it : module->cells_)
@@ -107,3 +110,4 @@ struct MemoryUnpackPass : public Pass {
        }
 } MemoryUnpackPass;
  
+PRIVATE_NAMESPACE_END
index b20521d1ee650b8e3952971d30171d58165c16df..ea454b333ab93ab5b6374e6ef355944e2f09cefa 100644 (file)
@@ -22,6 +22,9 @@
 #include <stdlib.h>
 #include <stdio.h>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct OptPass : public Pass {
        OptPass() : Pass("opt", "perform simple optimizations") { }
        virtual void help()
@@ -142,3 +145,4 @@ struct OptPass : public Pass {
        }
 } OptPass;
  
+PRIVATE_NAMESPACE_END
index 5046752f9ced09a3ff14f08dae299e3f19d12947..d589518aad9bea27f98cca89b861cca7a03277e4 100644 (file)
 #include <stdio.h>
 #include <set>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 using RTLIL::id2cstr;
 
-static CellTypes ct, ct_reg, ct_all;
-static int count_rm_cells, count_rm_wires;
+CellTypes ct, ct_reg, ct_all;
+int count_rm_cells, count_rm_wires;
 
-static void rmunused_module_cells(RTLIL::Module *module, bool verbose)
+void rmunused_module_cells(RTLIL::Module *module, bool verbose)
 {
        SigMap assign_map(module);
        std::set<RTLIL::Cell*, RTLIL::sort_by_name_id<RTLIL::Cell>> queue, unused;
@@ -93,7 +96,7 @@ static void rmunused_module_cells(RTLIL::Module *module, bool verbose)
        }
 }
 
-static int count_nontrivial_wire_attrs(RTLIL::Wire *w)
+int count_nontrivial_wire_attrs(RTLIL::Wire *w)
 {
        int count = w->attributes.size();
        count -= w->attributes.count("\\src");
@@ -101,7 +104,7 @@ static int count_nontrivial_wire_attrs(RTLIL::Wire *w)
        return count;
 }
 
-static bool compare_signals(RTLIL::SigBit &s1, RTLIL::SigBit &s2, SigPool &regs, SigPool &conns, std::set<RTLIL::Wire*> &direct_wires)
+bool compare_signals(RTLIL::SigBit &s1, RTLIL::SigBit &s2, SigPool &regs, SigPool &conns, std::set<RTLIL::Wire*> &direct_wires)
 {
        RTLIL::Wire *w1 = s1.wire;
        RTLIL::Wire *w2 = s2.wire;
@@ -136,7 +139,7 @@ static bool compare_signals(RTLIL::SigBit &s1, RTLIL::SigBit &s2, SigPool &regs,
        return w2->name < w1->name;
 }
 
-static bool check_public_name(RTLIL::IdString id)
+bool check_public_name(RTLIL::IdString id)
 {
        const std::string &id_str = id.str();
        if (id_str[0] == '$')
@@ -148,7 +151,7 @@ static bool check_public_name(RTLIL::IdString id)
        return true;
 }
 
-static void rmunused_module_signals(RTLIL::Module *module, bool purge_mode, bool verbose)
+void rmunused_module_signals(RTLIL::Module *module, bool purge_mode, bool verbose)
 {
        SigPool register_signals;
        SigPool connected_signals;
@@ -285,7 +288,7 @@ static void rmunused_module_signals(RTLIL::Module *module, bool purge_mode, bool
                log("  removed %d unused temporary wires.\n", del_wires_count);
 }
 
-static void rmunused_module(RTLIL::Module *module, bool purge_mode, bool verbose)
+void rmunused_module(RTLIL::Module *module, bool purge_mode, bool verbose)
 {
        if (verbose)
                log("Finding unused cells or wires in module %s..\n", module->name.c_str());
@@ -419,3 +422,4 @@ struct CleanPass : public Pass {
        }
 } CleanPass;
  
+PRIVATE_NAMESPACE_END
index f9b78c053ae952fc00b3a9bedc4c82e6847d7e0e..7c9fca961bf4567e9962e8a0de864a2ea2b631b0 100644 (file)
 #include <stdio.h>
 #include <algorithm>
 
-static bool did_something;
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
 
-static void replace_undriven(RTLIL::Design *design, RTLIL::Module *module)
+bool did_something;
+
+void replace_undriven(RTLIL::Design *design, RTLIL::Module *module)
 {
        CellTypes ct(design);
        SigMap sigmap(module);
@@ -70,7 +73,7 @@ static void replace_undriven(RTLIL::Design *design, RTLIL::Module *module)
        }
 }
 
-static void replace_cell(SigMap &assign_map, RTLIL::Module *module, RTLIL::Cell *cell, std::string info, std::string out_port, RTLIL::SigSpec out_val)
+void replace_cell(SigMap &assign_map, RTLIL::Module *module, RTLIL::Cell *cell, std::string info, std::string out_port, RTLIL::SigSpec out_val)
 {
        RTLIL::SigSpec Y = cell->getPort(out_port);
        out_val.extend_u0(Y.size(), false);
@@ -85,7 +88,7 @@ static void replace_cell(SigMap &assign_map, RTLIL::Module *module, RTLIL::Cell
        did_something = true;
 }
 
-static bool group_cell_inputs(RTLIL::Module *module, RTLIL::Cell *cell, bool commutative, SigMap &sigmap)
+bool group_cell_inputs(RTLIL::Module *module, RTLIL::Cell *cell, bool commutative, SigMap &sigmap)
 {
        std::string b_name = cell->hasPort("\\B") ? "\\B" : "\\A";
 
@@ -183,7 +186,7 @@ static bool group_cell_inputs(RTLIL::Module *module, RTLIL::Cell *cell, bool com
        return true;
 }
 
-static void replace_const_cells(RTLIL::Design *design, RTLIL::Module *module, bool consume_x, bool mux_undef, bool mux_bool, bool do_fine, bool keepdc)
+void replace_const_cells(RTLIL::Design *design, RTLIL::Module *module, bool consume_x, bool mux_undef, bool mux_bool, bool do_fine, bool keepdc)
 {
        if (!design->selected(module))
                return;
@@ -1006,3 +1009,4 @@ struct OptConstPass : public Pass {
        }
 } OptConstPass;
 
+PRIVATE_NAMESPACE_END
index 2c5dcf668611e633e13586cd760761807452f890..88ae43f0e606ff3bb1ec4cabda5bb733e2c0eae2 100644 (file)
@@ -25,6 +25,9 @@
 #include <stdio.h>
 #include <set>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 using RTLIL::id2cstr;
 
 struct OptMuxtreeWorker
@@ -438,3 +441,4 @@ struct OptMuxtreePass : public Pass {
        }
 } OptMuxtreePass;
  
+PRIVATE_NAMESPACE_END
index e9e2bb39919edf1a570df1b05af6adc66a54b504..302deb9bd4ffd503da8d94ec29fa96de1f5024f1 100644 (file)
@@ -25,6 +25,9 @@
 #include <stdio.h>
 #include <set>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct OptReduceWorker
 {
        RTLIL::Design *design;
@@ -378,3 +381,4 @@ struct OptReducePass : public Pass {
        }
 } OptReducePass;
  
+PRIVATE_NAMESPACE_END
index 48f406f65c8d3be49b87f1f27c1384d6175a56df..c7e92ddc15e53259aef2a3d1b765711c75aa84d2 100644 (file)
 #include <stdlib.h>
 #include <stdio.h>
 
-static SigMap assign_map, dff_init_map;
-static SigSet<RTLIL::Cell*> mux_drivers;
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
 
-static bool handle_dff(RTLIL::Module *mod, RTLIL::Cell *dff)
+SigMap assign_map, dff_init_map;
+SigSet<RTLIL::Cell*> mux_drivers;
+
+bool handle_dff(RTLIL::Module *mod, RTLIL::Cell *dff)
 {
        RTLIL::SigSpec sig_d, sig_q, sig_c, sig_r;
        RTLIL::Const val_cp, val_rp, val_rv;
@@ -215,3 +218,4 @@ struct OptRmdffPass : public Pass {
        }
 } OptRmdffPass;
  
+PRIVATE_NAMESPACE_END
index 4b76a5a2d483a5ce098f4e0abbaf69b2a31ef455..33115349ce6bab350c1ece1523cad9ef4d7099ec 100644 (file)
@@ -28,6 +28,9 @@
 
 #define USE_CELL_HASH_CACHE
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct OptShareWorker
 {
        RTLIL::Design *design;
@@ -319,3 +322,4 @@ struct OptSharePass : public Pass {
        }
 } OptSharePass;
  
+PRIVATE_NAMESPACE_END
index 74b049bb6648c9160d8223edd0467194c413a283..03f6527c027edc278539bffca1b623e6572f573d 100644 (file)
@@ -23,6 +23,7 @@
 #include "kernel/modtools.h"
 #include "kernel/utils.h"
 
+USING_YOSYS_NAMESPACE
 PRIVATE_NAMESPACE_BEGIN
 
 struct ShareWorkerConfig
@@ -1168,4 +1169,3 @@ struct SharePass : public Pass {
 } SharePass;
 
 PRIVATE_NAMESPACE_END
-
index 36d4141bb5037d5997053846d66fcbba3ae6b4d0..30efbab4b378b273f3d502a0c40e146420f08757 100644 (file)
@@ -22,6 +22,9 @@
 #include <stdlib.h>
 #include <stdio.h>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct ProcPass : public Pass {
        ProcPass() : Pass("proc", "translate processes to netlists") { }
        virtual void help()
@@ -81,3 +84,4 @@ struct ProcPass : public Pass {
        }
 } ProcPass;
  
+PRIVATE_NAMESPACE_END
index f11b328f091c9f0e98d1427cbc86ca5478b41bad..d7cb38bcd2840a3ac8ce6024e7a550d3fa347e01 100644 (file)
 #include <stdlib.h>
 #include <stdio.h>
 
-// defined in proc_clean.cc
+YOSYS_NAMESPACE_BEGIN
 extern void proc_clean_case(RTLIL::CaseRule *cs, bool &did_something, int &count, int max_depth);
+YOSYS_NAMESPACE_END
 
-static bool check_signal(RTLIL::Module *mod, RTLIL::SigSpec signal, RTLIL::SigSpec ref, bool &polarity)
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+bool check_signal(RTLIL::Module *mod, RTLIL::SigSpec signal, RTLIL::SigSpec ref, bool &polarity)
 {
        if (signal.size() != 1)
                return false;
@@ -81,7 +85,7 @@ static bool check_signal(RTLIL::Module *mod, RTLIL::SigSpec signal, RTLIL::SigSp
        return false;
 }
 
-static void apply_const(RTLIL::Module *mod, const RTLIL::SigSpec rspec, RTLIL::SigSpec &rval, RTLIL::CaseRule *cs, RTLIL::SigSpec const_sig, bool polarity, bool unknown)
+void apply_const(RTLIL::Module *mod, const RTLIL::SigSpec rspec, RTLIL::SigSpec &rval, RTLIL::CaseRule *cs, RTLIL::SigSpec const_sig, bool polarity, bool unknown)
 {
        for (auto &action : cs->actions) {
                if (unknown)
@@ -114,7 +118,7 @@ static void apply_const(RTLIL::Module *mod, const RTLIL::SigSpec rspec, RTLIL::S
        }
 }
 
-static void eliminate_const(RTLIL::Module *mod, RTLIL::CaseRule *cs, RTLIL::SigSpec const_sig, bool polarity)
+void eliminate_const(RTLIL::Module *mod, RTLIL::CaseRule *cs, RTLIL::SigSpec const_sig, bool polarity)
 {
        for (auto sw : cs->switches) {
                bool this_polarity = polarity;
@@ -149,7 +153,7 @@ static void eliminate_const(RTLIL::Module *mod, RTLIL::CaseRule *cs, RTLIL::SigS
        }
 }
 
-static void proc_arst(RTLIL::Module *mod, RTLIL::Process *proc, SigMap &assign_map)
+void proc_arst(RTLIL::Module *mod, RTLIL::Process *proc, SigMap &assign_map)
 {
 restart_proc_arst:
        if (proc->root_case.switches.size() != 1)
@@ -280,3 +284,4 @@ struct ProcArstPass : public Pass {
        }
 } ProcArstPass;
  
+PRIVATE_NAMESPACE_END
index 1e3dd9ce7c5ffee221311a16ad91c06644ed4d71..82716cd06cfb2c5ad0ef9de910f24383840215bb 100644 (file)
 #include <stdlib.h>
 #include <stdio.h>
 
-extern void proc_clean_switch(RTLIL::SwitchRule *sw, RTLIL::CaseRule *parent, bool &did_something, int &count, int max_depth);
+YOSYS_NAMESPACE_BEGIN
 extern void proc_clean_case(RTLIL::CaseRule *cs, bool &did_something, int &count, int max_depth);
+YOSYS_NAMESPACE_END
+
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
 
 void proc_clean_switch(RTLIL::SwitchRule *sw, RTLIL::CaseRule *parent, bool &did_something, int &count, int max_depth)
 {
@@ -89,6 +93,9 @@ void proc_clean_switch(RTLIL::SwitchRule *sw, RTLIL::CaseRule *parent, bool &did
        }
 }
 
+PRIVATE_NAMESPACE_END
+YOSYS_NAMESPACE_BEGIN
+
 void proc_clean_case(RTLIL::CaseRule *cs, bool &did_something, int &count, int max_depth)
 {
        for (size_t i = 0; i < cs->actions.size(); i++) {
@@ -109,7 +116,10 @@ void proc_clean_case(RTLIL::CaseRule *cs, bool &did_something, int &count, int m
        }
 }
 
-static void proc_clean(RTLIL::Module *mod, RTLIL::Process *proc, int &total_count)
+YOSYS_NAMESPACE_END
+PRIVATE_NAMESPACE_BEGIN
+
+void proc_clean(RTLIL::Module *mod, RTLIL::Process *proc, int &total_count)
 {
        int count = 0;
        bool did_something = true;
@@ -174,3 +184,4 @@ struct ProcCleanPass : public Pass {
        }
 } ProcCleanPass;
  
+PRIVATE_NAMESPACE_END
index e69e8023d08ea805834487fb3ebcabc85af4f3a2..b632cdabbb6ea589273eb410026716d0a0838e73 100644 (file)
 #include <stdlib.h>
 #include <stdio.h>
 
-static RTLIL::SigSpec find_any_lvalue(const RTLIL::Process *proc)
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+RTLIL::SigSpec find_any_lvalue(const RTLIL::Process *proc)
 {
        RTLIL::SigSpec lvalue;
 
@@ -50,7 +53,7 @@ static RTLIL::SigSpec find_any_lvalue(const RTLIL::Process *proc)
        return lvalue;
 }
 
-static void gen_dffsr_complex(RTLIL::Module *mod, RTLIL::SigSpec sig_d, RTLIL::SigSpec sig_q, RTLIL::SigSpec clk, bool clk_polarity,
+void gen_dffsr_complex(RTLIL::Module *mod, RTLIL::SigSpec sig_d, RTLIL::SigSpec sig_q, RTLIL::SigSpec clk, bool clk_polarity,
                std::map<RTLIL::SigSpec, std::set<RTLIL::SyncRule*>> &async_rules, RTLIL::Process *proc)
 {
        RTLIL::SigSpec sig_sr_set = RTLIL::SigSpec(0, sig_d.size());
@@ -140,7 +143,7 @@ static void gen_dffsr_complex(RTLIL::Module *mod, RTLIL::SigSpec sig_d, RTLIL::S
                        cell->type.c_str(), cell->name.c_str(), clk_polarity ? "positive" : "negative");
 }
 
-static void gen_dffsr(RTLIL::Module *mod, RTLIL::SigSpec sig_in, RTLIL::SigSpec sig_set, RTLIL::SigSpec sig_out,
+void gen_dffsr(RTLIL::Module *mod, RTLIL::SigSpec sig_in, RTLIL::SigSpec sig_set, RTLIL::SigSpec sig_out,
                bool clk_polarity, bool set_polarity, RTLIL::SigSpec clk, RTLIL::SigSpec set, RTLIL::Process *proc)
 {
        std::stringstream sstr;
@@ -187,7 +190,7 @@ static void gen_dffsr(RTLIL::Module *mod, RTLIL::SigSpec sig_in, RTLIL::SigSpec
                        clk_polarity ? "positive" : "negative", set_polarity ? "positive" : "negative");
 }
 
-static void gen_dff(RTLIL::Module *mod, RTLIL::SigSpec sig_in, RTLIL::Const val_rst, RTLIL::SigSpec sig_out,
+void gen_dff(RTLIL::Module *mod, RTLIL::SigSpec sig_in, RTLIL::Const val_rst, RTLIL::SigSpec sig_out,
                bool clk_polarity, bool arst_polarity, RTLIL::SigSpec clk, RTLIL::SigSpec *arst, RTLIL::Process *proc)
 {
        std::stringstream sstr;
@@ -215,7 +218,7 @@ static void gen_dff(RTLIL::Module *mod, RTLIL::SigSpec sig_in, RTLIL::Const val_
        log(".\n");
 }
 
-static void proc_dff(RTLIL::Module *mod, RTLIL::Process *proc, ConstEval &ce)
+void proc_dff(RTLIL::Module *mod, RTLIL::Process *proc, ConstEval &ce)
 {
        while (1)
        {
@@ -380,3 +383,4 @@ struct ProcDffPass : public Pass {
        }
 } ProcDffPass;
  
+PRIVATE_NAMESPACE_END
index c72840c02c3771d51f2b722e2a92c3c49e8da063..dff68159ffb7698c5f2c0c89503fb1b2ced1230a 100644 (file)
 #include <stdlib.h>
 #include <stdio.h>
 
-static void proc_get_const(RTLIL::SigSpec &sig, RTLIL::CaseRule &rule)
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+void proc_get_const(RTLIL::SigSpec &sig, RTLIL::CaseRule &rule)
 {
        log_assert(rule.compare.size() == 0);
 
@@ -37,7 +40,7 @@ static void proc_get_const(RTLIL::SigSpec &sig, RTLIL::CaseRule &rule)
        }
 }
 
-static void proc_init(RTLIL::Module *mod, RTLIL::Process *proc)
+void proc_init(RTLIL::Module *mod, RTLIL::Process *proc)
 {
        bool found_init = false;
 
@@ -109,3 +112,4 @@ struct ProcInitPass : public Pass {
        }
 } ProcInitPass;
  
+PRIVATE_NAMESPACE_END
index c00b00a2ad29c66baab40a3cb26084f9ff305578..4aa1aab54573282c7c9fa9faeda2359bf7abc0bb 100644 (file)
 #include <stdlib.h>
 #include <stdio.h>
 
-static RTLIL::SigSpec find_any_lvalue(const RTLIL::CaseRule *cs)
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+RTLIL::SigSpec find_any_lvalue(const RTLIL::CaseRule *cs)
 {
        for (auto &action : cs->actions) {
                if (action.first.size())
@@ -41,7 +44,7 @@ static RTLIL::SigSpec find_any_lvalue(const RTLIL::CaseRule *cs)
        return RTLIL::SigSpec();
 }
 
-static void extract_core_signal(const RTLIL::CaseRule *cs, RTLIL::SigSpec &sig)
+void extract_core_signal(const RTLIL::CaseRule *cs, RTLIL::SigSpec &sig)
 {
        for (auto &action : cs->actions) {
                RTLIL::SigSpec lvalue = action.first.extract(sig);
@@ -54,7 +57,7 @@ static void extract_core_signal(const RTLIL::CaseRule *cs, RTLIL::SigSpec &sig)
                extract_core_signal(cs2, sig);
 }
 
-static RTLIL::SigSpec gen_cmp(RTLIL::Module *mod, const RTLIL::SigSpec &signal, const std::vector<RTLIL::SigSpec> &compare, RTLIL::SwitchRule *sw)
+RTLIL::SigSpec gen_cmp(RTLIL::Module *mod, const RTLIL::SigSpec &signal, const std::vector<RTLIL::SigSpec> &compare, RTLIL::SwitchRule *sw)
 {
        std::stringstream sstr;
        sstr << "$procmux$" << (autoidx++);
@@ -122,7 +125,7 @@ static RTLIL::SigSpec gen_cmp(RTLIL::Module *mod, const RTLIL::SigSpec &signal,
        return RTLIL::SigSpec(ctrl_wire);
 }
 
-static RTLIL::SigSpec gen_mux(RTLIL::Module *mod, const RTLIL::SigSpec &signal, const std::vector<RTLIL::SigSpec> &compare, RTLIL::SigSpec when_signal, RTLIL::SigSpec else_signal, RTLIL::Cell *&last_mux_cell, RTLIL::SwitchRule *sw)
+RTLIL::SigSpec gen_mux(RTLIL::Module *mod, const RTLIL::SigSpec &signal, const std::vector<RTLIL::SigSpec> &compare, RTLIL::SigSpec when_signal, RTLIL::SigSpec else_signal, RTLIL::Cell *&last_mux_cell, RTLIL::SwitchRule *sw)
 {
        log_assert(when_signal.size() == else_signal.size());
 
@@ -156,7 +159,7 @@ static RTLIL::SigSpec gen_mux(RTLIL::Module *mod, const RTLIL::SigSpec &signal,
        return RTLIL::SigSpec(result_wire);
 }
 
-static void append_pmux(RTLIL::Module *mod, const RTLIL::SigSpec &signal, const std::vector<RTLIL::SigSpec> &compare, RTLIL::SigSpec when_signal, RTLIL::Cell *last_mux_cell, RTLIL::SwitchRule *sw)
+void append_pmux(RTLIL::Module *mod, const RTLIL::SigSpec &signal, const std::vector<RTLIL::SigSpec> &compare, RTLIL::SigSpec when_signal, RTLIL::Cell *last_mux_cell, RTLIL::SwitchRule *sw)
 {
        log_assert(last_mux_cell != NULL);
        log_assert(when_signal.size() == last_mux_cell->getPort("\\A").size());
@@ -176,7 +179,7 @@ static void append_pmux(RTLIL::Module *mod, const RTLIL::SigSpec &signal, const
        last_mux_cell->parameters["\\S_WIDTH"] = last_mux_cell->getPort("\\S").size();
 }
 
-static RTLIL::SigSpec signal_to_mux_tree(RTLIL::Module *mod, RTLIL::CaseRule *cs, const RTLIL::SigSpec &sig, const RTLIL::SigSpec &defval)
+RTLIL::SigSpec signal_to_mux_tree(RTLIL::Module *mod, RTLIL::CaseRule *cs, const RTLIL::SigSpec &sig, const RTLIL::SigSpec &defval)
 {
        RTLIL::SigSpec result = defval;
 
@@ -233,7 +236,7 @@ static RTLIL::SigSpec signal_to_mux_tree(RTLIL::Module *mod, RTLIL::CaseRule *cs
        return result;
 }
 
-static void proc_mux(RTLIL::Module *mod, RTLIL::Process *proc)
+void proc_mux(RTLIL::Module *mod, RTLIL::Process *proc)
 {
        bool first = true;
        while (1)
@@ -283,3 +286,4 @@ struct ProcMuxPass : public Pass {
        }
 } ProcMuxPass;
  
+PRIVATE_NAMESPACE_END
index fe3532da8eca4614529043258d678597e39156b7..d701f00a582fd87435c686a444e66bec43865e5a 100644 (file)
 #include <stdio.h>
 #include <set>
 
-static void proc_rmdead(RTLIL::SwitchRule *sw, int &counter)
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+void proc_rmdead(RTLIL::SwitchRule *sw, int &counter)
 {
        BitPatternPool pool(sw->signal);
 
@@ -98,3 +101,4 @@ struct ProcRmdeadPass : public Pass {
        }
 } ProcRmdeadPass;
  
+PRIVATE_NAMESPACE_END
index f07ad943ca5ec2a34d00e83fa3e6b4ed0e0f48ce..e58a194ec1b4e81a3d9ae1a646d1ff3cac36447d 100644 (file)
@@ -31,7 +31,8 @@
 #include <string.h>
 #include <algorithm>
 
-namespace {
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
 
 /* this should only be used for regression testing of ConstEval -- see vloghammer */
 struct BruteForceEquivChecker
@@ -357,8 +358,6 @@ struct VlogHammerReporter
        }
 };
 
-} /* namespace */
-
 struct EvalPass : public Pass {
        EvalPass() : Pass("eval", "evaluate the circuit given an input") { }
        virtual void help()
@@ -601,3 +600,4 @@ struct EvalPass : public Pass {
        }
 } EvalPass;
  
+PRIVATE_NAMESPACE_END
index e856fdf76d5bd85dbc760f1e5dc76ea592797241..46ebdb8460087e07d45d70f3396aea0a99d505a4 100644 (file)
@@ -23,6 +23,9 @@
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct dff_map_info_t {
        RTLIL::SigSpec sig_d, sig_clk, sig_arst;
        bool clk_polarity, arst_polarity;
@@ -37,7 +40,7 @@ struct dff_map_bit_info_t {
        RTLIL::Cell *cell;
 };
 
-static bool consider_wire(RTLIL::Wire *wire, std::map<RTLIL::IdString, dff_map_info_t> &dff_dq_map)
+bool consider_wire(RTLIL::Wire *wire, std::map<RTLIL::IdString, dff_map_info_t> &dff_dq_map)
 {
        if (wire->name[0] == '$' || dff_dq_map.count(wire->name))
                return false;
@@ -46,7 +49,7 @@ static bool consider_wire(RTLIL::Wire *wire, std::map<RTLIL::IdString, dff_map_i
        return true;
 }
 
-static bool consider_cell(RTLIL::Design *design, std::set<RTLIL::IdString> &dff_cells, RTLIL::Cell *cell)
+bool consider_cell(RTLIL::Design *design, std::set<RTLIL::IdString> &dff_cells, RTLIL::Cell *cell)
 {
        if (cell->name[0] == '$' || dff_cells.count(cell->name))
                return false;
@@ -55,7 +58,7 @@ static bool consider_cell(RTLIL::Design *design, std::set<RTLIL::IdString> &dff_
        return true;
 }
 
-static bool compare_wires(RTLIL::Wire *wire1, RTLIL::Wire *wire2)
+bool compare_wires(RTLIL::Wire *wire1, RTLIL::Wire *wire2)
 {
        log_assert(wire1->name == wire2->name);
        if (wire1->width != wire2->width)
@@ -63,7 +66,7 @@ static bool compare_wires(RTLIL::Wire *wire1, RTLIL::Wire *wire2)
        return true;
 }
 
-static bool compare_cells(RTLIL::Cell *cell1, RTLIL::Cell *cell2)
+bool compare_cells(RTLIL::Cell *cell1, RTLIL::Cell *cell2)
 {
        log_assert(cell1->name == cell2->name);
        if (cell1->type != cell2->type)
@@ -73,7 +76,7 @@ static bool compare_cells(RTLIL::Cell *cell1, RTLIL::Cell *cell2)
        return true;
 }
 
-static void find_dff_wires(std::set<RTLIL::IdString> &dff_wires, RTLIL::Module *module)
+void find_dff_wires(std::set<RTLIL::IdString> &dff_wires, RTLIL::Module *module)
 {
        CellTypes ct;
        ct.setup_internals_mem();
@@ -93,7 +96,7 @@ static void find_dff_wires(std::set<RTLIL::IdString> &dff_wires, RTLIL::Module *
        }
 }
 
-static void create_dff_dq_map(std::map<RTLIL::IdString, dff_map_info_t> &map, RTLIL::Design *design, RTLIL::Module *module)
+void create_dff_dq_map(std::map<RTLIL::IdString, dff_map_info_t> &map, RTLIL::Design *design, RTLIL::Module *module)
 {
        std::map<RTLIL::SigBit, dff_map_bit_info_t> bit_info;
        SigMap sigmap(module);
@@ -208,7 +211,7 @@ static void create_dff_dq_map(std::map<RTLIL::IdString, dff_map_info_t> &map, RT
        }
 }
 
-static RTLIL::Wire *add_new_wire(RTLIL::Module *module, RTLIL::IdString name, int width = 1)
+RTLIL::Wire *add_new_wire(RTLIL::Module *module, RTLIL::IdString name, int width = 1)
 {
        if (module->count_id(name))
                log_error("Attempting to create wire %s, but a wire of this name exists already! Hint: Try another value for -sep.\n", log_id(name));
@@ -644,3 +647,4 @@ struct ExposePass : public Pass {
        }
 } ExposePass;
  
+PRIVATE_NAMESPACE_END
index bfed0005dc834a506bb51c6eb108319995db01ab..fbca35861f46401f383991cec9fe9c2d47af26ff 100644 (file)
@@ -28,7 +28,8 @@
 #include <string.h>
 #include <algorithm>
 
-namespace {
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
 
 bool inv_mode;
 int verbose_level, reduce_counter, reduce_stop_at;
@@ -745,8 +746,6 @@ struct FreduceWorker
        }
 };
 
-} /* namespace */
-
 struct FreducePass : public Pass {
        FreducePass() : Pass("freduce", "perform functional reduction") { }
        virtual void help()
@@ -827,3 +826,4 @@ struct FreducePass : public Pass {
        }
 } FreducePass;
  
+PRIVATE_NAMESPACE_END
index b3adefb92129fcfca270291ba5c61f22ee08aa06..9853cd0c6d68c8d828da2183788e496d7f9f8eea 100644 (file)
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
-static void create_miter_equiv(struct Pass *that, std::vector<std::string> args, RTLIL::Design *design)
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+void create_miter_equiv(struct Pass *that, std::vector<std::string> args, RTLIL::Design *design)
 {
        bool flag_ignore_gold_x = false;
        bool flag_make_outputs = false;
@@ -299,3 +302,4 @@ struct MiterPass : public Pass {
        }
 } MiterPass;
  
+PRIVATE_NAMESPACE_END
index fd0abf4a5d8ac1d76a7757a4cdfd6a3216bac34a..f0c88e52b80469b421d7a2bd68cf3388aac2425d 100644 (file)
@@ -33,7 +33,8 @@
 #include <errno.h>
 #include <string.h>
 
-namespace {
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
 
 struct SatHelper
 {
@@ -766,9 +767,7 @@ struct SatHelper
        }
 };
 
-} /* namespace */
-
-static void print_proof_failed()
+void print_proof_failed()
 {
        log("\n");
        log("   ______                   ___       ___       _ _            _ _ \n");
@@ -780,7 +779,7 @@ static void print_proof_failed()
        log("\n");
 }
 
-static void print_timeout()
+void print_timeout()
 {
        log("\n");
        log("        _____  _  _      _____ ____  _     _____\n");
@@ -791,7 +790,7 @@ static void print_timeout()
        log("\n");
 }
 
-static void print_qed()
+void print_qed()
 {
        log("\n");
        log("                  /$$$$$$      /$$$$$$$$     /$$$$$$$    \n");
@@ -1484,3 +1483,4 @@ struct SatPass : public Pass {
        }
 } SatPass;
  
+PRIVATE_NAMESPACE_END
index 1115eead5d18614d157ec1871627d4cfbdf5974a..f8a08841ad7376a805f6822ddc74c45f880b9c75 100644 (file)
@@ -21,6 +21,9 @@
 #include "kernel/sigtools.h"
 #include "kernel/macc.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 struct AlumaccWorker
 {
        RTLIL::Module *module;
@@ -561,3 +564,4 @@ struct AlumaccPass : public Pass {
        }
 } AlumaccPass;
  
+PRIVATE_NAMESPACE_END
index 07993b868c2e925e09b8a4948fde5071d6cd2751..2a68133514b7c04650399a068ee996b6c1a9b094 100644 (file)
@@ -23,7 +23,8 @@
 #include <string.h>
 #include <errno.h>
 
-using namespace PASS_DFFLIBMAP;
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
 
 struct cell_mapping {
        std::string cell_name;
@@ -538,3 +539,4 @@ struct DfflibmapPass : public Pass {
        }
 } DfflibmapPass;
  
+PRIVATE_NAMESPACE_END
index 221e9e49d5195f72b68834d26ef9b3dd2f7be463..e0b1d360ad5fcd4a6034b6dc58f02d1ba846de7a 100644 (file)
 #include <stdio.h>
 #include <string.h>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 using RTLIL::id2cstr;
 
-namespace
+class SubCircuitSolver : public SubCircuit::Solver
 {
-       class SubCircuitSolver : public SubCircuit::Solver
-       {
-       public:
-               bool ignore_parameters;
-               std::set<std::pair<RTLIL::IdString, RTLIL::IdString>> ignored_parameters;
-               std::set<RTLIL::IdString> cell_attr, wire_attr;
+public:
+       bool ignore_parameters;
+       std::set<std::pair<RTLIL::IdString, RTLIL::IdString>> ignored_parameters;
+       std::set<RTLIL::IdString> cell_attr, wire_attr;
 
-               SubCircuitSolver() : ignore_parameters(false)
-               {
-               }
+       SubCircuitSolver() : ignore_parameters(false)
+       {
+       }
 
-               bool compareAttributes(const std::set<RTLIL::IdString> &attr, const std::map<RTLIL::IdString, RTLIL::Const> &needleAttr, const std::map<RTLIL::IdString, RTLIL::Const> &haystackAttr)
-               {
-                       for (auto &it : attr) {
-                               size_t nc = needleAttr.count(it), hc = haystackAttr.count(it);
-                               if (nc != hc || (nc > 0 && needleAttr.at(it) != haystackAttr.at(it)))
-                                       return false;
-                       }
-                       return true;
+       bool compareAttributes(const std::set<RTLIL::IdString> &attr, const std::map<RTLIL::IdString, RTLIL::Const> &needleAttr, const std::map<RTLIL::IdString, RTLIL::Const> &haystackAttr)
+       {
+               for (auto &it : attr) {
+                       size_t nc = needleAttr.count(it), hc = haystackAttr.count(it);
+                       if (nc != hc || (nc > 0 && needleAttr.at(it) != haystackAttr.at(it)))
+                               return false;
                }
+               return true;
+       }
 
-               RTLIL::Const unified_param(RTLIL::IdString cell_type, RTLIL::IdString param, RTLIL::Const value)
-               {
-                       if (cell_type.substr(0, 1) != "$" || cell_type.substr(0, 2) == "$_")
-                               return value;
-
-               #define param_bool(_n) if (param == _n) return value.as_bool();
-                       param_bool("\\ARST_POLARITY");
-                       param_bool("\\A_SIGNED");
-                       param_bool("\\B_SIGNED");
-                       param_bool("\\CLK_ENABLE");
-                       param_bool("\\CLK_POLARITY");
-                       param_bool("\\CLR_POLARITY");
-                       param_bool("\\EN_POLARITY");
-                       param_bool("\\SET_POLARITY");
-                       param_bool("\\TRANSPARENT");
-               #undef param_bool
-
-               #define param_int(_n) if (param == _n) return value.as_int();
-                       param_int("\\ABITS")
-                       param_int("\\A_WIDTH")
-                       param_int("\\B_WIDTH")
-                       param_int("\\CTRL_IN_WIDTH")
-                       param_int("\\CTRL_OUT_WIDTH")
-                       param_int("\\OFFSET")
-                       param_int("\\PRIORITY")
-                       param_int("\\RD_PORTS")
-                       param_int("\\SIZE")
-                       param_int("\\STATE_BITS")
-                       param_int("\\STATE_NUM")
-                       param_int("\\STATE_NUM_LOG2")
-                       param_int("\\STATE_RST")
-                       param_int("\\S_WIDTH")
-                       param_int("\\TRANS_NUM")
-                       param_int("\\WIDTH")
-                       param_int("\\WR_PORTS")
-                       param_int("\\Y_WIDTH")
-               #undef param_int
-
+       RTLIL::Const unified_param(RTLIL::IdString cell_type, RTLIL::IdString param, RTLIL::Const value)
+       {
+               if (cell_type.substr(0, 1) != "$" || cell_type.substr(0, 2) == "$_")
                        return value;
-               }
 
-               virtual bool userCompareNodes(const std::string &, const std::string &, void *needleUserData,
-                               const std::string &, const std::string &, void *haystackUserData, const std::map<std::string, std::string> &portMapping)
-               {
-                       RTLIL::Cell *needleCell = (RTLIL::Cell*) needleUserData;
-                       RTLIL::Cell *haystackCell = (RTLIL::Cell*) haystackUserData;
+       #define param_bool(_n) if (param == _n) return value.as_bool();
+               param_bool("\\ARST_POLARITY");
+               param_bool("\\A_SIGNED");
+               param_bool("\\B_SIGNED");
+               param_bool("\\CLK_ENABLE");
+               param_bool("\\CLK_POLARITY");
+               param_bool("\\CLR_POLARITY");
+               param_bool("\\EN_POLARITY");
+               param_bool("\\SET_POLARITY");
+               param_bool("\\TRANSPARENT");
+       #undef param_bool
+
+       #define param_int(_n) if (param == _n) return value.as_int();
+               param_int("\\ABITS")
+               param_int("\\A_WIDTH")
+               param_int("\\B_WIDTH")
+               param_int("\\CTRL_IN_WIDTH")
+               param_int("\\CTRL_OUT_WIDTH")
+               param_int("\\OFFSET")
+               param_int("\\PRIORITY")
+               param_int("\\RD_PORTS")
+               param_int("\\SIZE")
+               param_int("\\STATE_BITS")
+               param_int("\\STATE_NUM")
+               param_int("\\STATE_NUM_LOG2")
+               param_int("\\STATE_RST")
+               param_int("\\S_WIDTH")
+               param_int("\\TRANS_NUM")
+               param_int("\\WIDTH")
+               param_int("\\WR_PORTS")
+               param_int("\\Y_WIDTH")
+       #undef param_int
+
+               return value;
+       }
 
-                       if (!needleCell || !haystackCell) {
-                               log_assert(!needleCell && !haystackCell);
-                               return true;
-                       }
+       virtual bool userCompareNodes(const std::string &, const std::string &, void *needleUserData,
+                       const std::string &, const std::string &, void *haystackUserData, const std::map<std::string, std::string> &portMapping)
+       {
+               RTLIL::Cell *needleCell = (RTLIL::Cell*) needleUserData;
+               RTLIL::Cell *haystackCell = (RTLIL::Cell*) haystackUserData;
 
-                       if (!ignore_parameters) {
-                               std::map<RTLIL::IdString, RTLIL::Const> needle_param, haystack_param;
-                               for (auto &it : needleCell->parameters)
-                                       if (!ignored_parameters.count(std::pair<RTLIL::IdString, RTLIL::IdString>(needleCell->type, it.first)))
-                                               needle_param[it.first] = unified_param(needleCell->type, it.first, it.second);
-                               for (auto &it : haystackCell->parameters)
-                                       if (!ignored_parameters.count(std::pair<RTLIL::IdString, RTLIL::IdString>(haystackCell->type, it.first)))
-                                               haystack_param[it.first] = unified_param(haystackCell->type, it.first, it.second);
-                               if (needle_param != haystack_param)
-                                       return false;
-                       }
+               if (!needleCell || !haystackCell) {
+                       log_assert(!needleCell && !haystackCell);
+                       return true;
+               }
 
-                       if (cell_attr.size() > 0 && !compareAttributes(cell_attr, needleCell->attributes, haystackCell->attributes))
+               if (!ignore_parameters) {
+                       std::map<RTLIL::IdString, RTLIL::Const> needle_param, haystack_param;
+                       for (auto &it : needleCell->parameters)
+                               if (!ignored_parameters.count(std::pair<RTLIL::IdString, RTLIL::IdString>(needleCell->type, it.first)))
+                                       needle_param[it.first] = unified_param(needleCell->type, it.first, it.second);
+                       for (auto &it : haystackCell->parameters)
+                               if (!ignored_parameters.count(std::pair<RTLIL::IdString, RTLIL::IdString>(haystackCell->type, it.first)))
+                                       haystack_param[it.first] = unified_param(haystackCell->type, it.first, it.second);
+                       if (needle_param != haystack_param)
                                return false;
+               }
 
-                       if (wire_attr.size() > 0)
-                       {
-                               RTLIL::Wire *lastNeedleWire = NULL;
-                               RTLIL::Wire *lastHaystackWire = NULL;
-                               std::map<RTLIL::IdString, RTLIL::Const> emptyAttr;
+               if (cell_attr.size() > 0 && !compareAttributes(cell_attr, needleCell->attributes, haystackCell->attributes))
+                       return false;
 
-                               for (auto &conn : needleCell->connections())
-                               {
-                                       RTLIL::SigSpec needleSig = conn.second;
-                                       RTLIL::SigSpec haystackSig = haystackCell->getPort(portMapping.at(conn.first.str()));
-
-                                       for (int i = 0; i < std::min(needleSig.size(), haystackSig.size()); i++) {
-                                               RTLIL::Wire *needleWire = needleSig[i].wire, *haystackWire = haystackSig[i].wire;
-                                               if (needleWire != lastNeedleWire || haystackWire != lastHaystackWire)
-                                                       if (!compareAttributes(wire_attr, needleWire ? needleWire->attributes : emptyAttr, haystackWire ? haystackWire->attributes : emptyAttr))
-                                                               return false;
-                                               lastNeedleWire = needleWire, lastHaystackWire = haystackWire;
-                                       }
+               if (wire_attr.size() > 0)
+               {
+                       RTLIL::Wire *lastNeedleWire = NULL;
+                       RTLIL::Wire *lastHaystackWire = NULL;
+                       std::map<RTLIL::IdString, RTLIL::Const> emptyAttr;
+
+                       for (auto &conn : needleCell->connections())
+                       {
+                               RTLIL::SigSpec needleSig = conn.second;
+                               RTLIL::SigSpec haystackSig = haystackCell->getPort(portMapping.at(conn.first.str()));
+
+                               for (int i = 0; i < std::min(needleSig.size(), haystackSig.size()); i++) {
+                                       RTLIL::Wire *needleWire = needleSig[i].wire, *haystackWire = haystackSig[i].wire;
+                                       if (needleWire != lastNeedleWire || haystackWire != lastHaystackWire)
+                                               if (!compareAttributes(wire_attr, needleWire ? needleWire->attributes : emptyAttr, haystackWire ? haystackWire->attributes : emptyAttr))
+                                                       return false;
+                                       lastNeedleWire = needleWire, lastHaystackWire = haystackWire;
                                }
                        }
-
-                       return true;
                }
-       };
 
-       struct bit_ref_t {
-               std::string cell, port;
-               int bit;
-       };
+               return true;
+       }
+};
 
-       bool module2graph(SubCircuit::Graph &graph, RTLIL::Module *mod, bool constports, RTLIL::Design *sel = NULL,
-                       int max_fanout = -1, std::set<std::pair<RTLIL::IdString, RTLIL::IdString>> *split = NULL)
-       {
-               SigMap sigmap(mod);
-               std::map<RTLIL::SigBit, bit_ref_t> sig_bit_ref;
+struct bit_ref_t {
+       std::string cell, port;
+       int bit;
+};
 
-               if (sel && !sel->selected(mod)) {
-                       log("  Skipping module %s as it is not selected.\n", id2cstr(mod->name));
-                       return false;
-               }
+bool module2graph(SubCircuit::Graph &graph, RTLIL::Module *mod, bool constports, RTLIL::Design *sel = NULL,
+               int max_fanout = -1, std::set<std::pair<RTLIL::IdString, RTLIL::IdString>> *split = NULL)
+{
+       SigMap sigmap(mod);
+       std::map<RTLIL::SigBit, bit_ref_t> sig_bit_ref;
 
-               if (mod->processes.size() > 0) {
-                       log("  Skipping module %s as it contains unprocessed processes.\n", id2cstr(mod->name));
-                       return false;
-               }
+       if (sel && !sel->selected(mod)) {
+               log("  Skipping module %s as it is not selected.\n", id2cstr(mod->name));
+               return false;
+       }
 
-               if (constports) {
-                       graph.createNode("$const$0", "$const$0", NULL, true);
-                       graph.createNode("$const$1", "$const$1", NULL, true);
-                       graph.createNode("$const$x", "$const$x", NULL, true);
-                       graph.createNode("$const$z", "$const$z", NULL, true);
-                       graph.createPort("$const$0", "\\Y", 1);
-                       graph.createPort("$const$1", "\\Y", 1);
-                       graph.createPort("$const$x", "\\Y", 1);
-                       graph.createPort("$const$z", "\\Y", 1);
-                       graph.markExtern("$const$0", "\\Y", 0);
-                       graph.markExtern("$const$1", "\\Y", 0);
-                       graph.markExtern("$const$x", "\\Y", 0);
-                       graph.markExtern("$const$z", "\\Y", 0);
-               }
+       if (mod->processes.size() > 0) {
+               log("  Skipping module %s as it contains unprocessed processes.\n", id2cstr(mod->name));
+               return false;
+       }
 
-               std::map<std::pair<RTLIL::Wire*, int>, int> sig_use_count;
-               if (max_fanout > 0)
-                       for (auto &cell_it : mod->cells_)
-                       {
-                               RTLIL::Cell *cell = cell_it.second;
-                               if (!sel || sel->selected(mod, cell))
-                                       for (auto &conn : cell->connections()) {
-                                               RTLIL::SigSpec conn_sig = conn.second;
-                                               sigmap.apply(conn_sig);
-                                               for (auto &bit : conn_sig)
-                                                       if (bit.wire != NULL)
-                                                               sig_use_count[std::pair<RTLIL::Wire*, int>(bit.wire, bit.offset)]++;
-                                       }
-                       }
+       if (constports) {
+               graph.createNode("$const$0", "$const$0", NULL, true);
+               graph.createNode("$const$1", "$const$1", NULL, true);
+               graph.createNode("$const$x", "$const$x", NULL, true);
+               graph.createNode("$const$z", "$const$z", NULL, true);
+               graph.createPort("$const$0", "\\Y", 1);
+               graph.createPort("$const$1", "\\Y", 1);
+               graph.createPort("$const$x", "\\Y", 1);
+               graph.createPort("$const$z", "\\Y", 1);
+               graph.markExtern("$const$0", "\\Y", 0);
+               graph.markExtern("$const$1", "\\Y", 0);
+               graph.markExtern("$const$x", "\\Y", 0);
+               graph.markExtern("$const$z", "\\Y", 0);
+       }
 
-               // create graph nodes from cells
+       std::map<std::pair<RTLIL::Wire*, int>, int> sig_use_count;
+       if (max_fanout > 0)
                for (auto &cell_it : mod->cells_)
                {
                        RTLIL::Cell *cell = cell_it.second;
-                       if (sel && !sel->selected(mod, cell))
-                               continue;
+                       if (!sel || sel->selected(mod, cell))
+                               for (auto &conn : cell->connections()) {
+                                       RTLIL::SigSpec conn_sig = conn.second;
+                                       sigmap.apply(conn_sig);
+                                       for (auto &bit : conn_sig)
+                                               if (bit.wire != NULL)
+                                                       sig_use_count[std::pair<RTLIL::Wire*, int>(bit.wire, bit.offset)]++;
+                               }
+               }
 
-                       std::string type = cell->type.str();
-                       if (sel == NULL && type.substr(0, 2) == "\\$")
-                               type = type.substr(1);
-                       graph.createNode(cell->name.str(), type, (void*)cell);
+       // create graph nodes from cells
+       for (auto &cell_it : mod->cells_)
+       {
+               RTLIL::Cell *cell = cell_it.second;
+               if (sel && !sel->selected(mod, cell))
+                       continue;
 
-                       for (auto &conn : cell->connections())
-                       {
-                               graph.createPort(cell->name.str(), conn.first.str(), conn.second.size());
+               std::string type = cell->type.str();
+               if (sel == NULL && type.substr(0, 2) == "\\$")
+                       type = type.substr(1);
+               graph.createNode(cell->name.str(), type, (void*)cell);
 
-                               if (split && split->count(std::pair<RTLIL::IdString, RTLIL::IdString>(cell->type, conn.first)) > 0)
-                                       continue;
+               for (auto &conn : cell->connections())
+               {
+                       graph.createPort(cell->name.str(), conn.first.str(), conn.second.size());
 
-                               RTLIL::SigSpec conn_sig = conn.second;
-                               sigmap.apply(conn_sig);
+                       if (split && split->count(std::pair<RTLIL::IdString, RTLIL::IdString>(cell->type, conn.first)) > 0)
+                               continue;
 
-                               for (int i = 0; i < conn_sig.size(); i++)
-                               {
-                                       auto &bit = conn_sig[i];
-
-                                       if (bit.wire == NULL) {
-                                               if (constports) {
-                                                       std::string node = "$const$x";
-                                                       if (bit == RTLIL::State::S0) node = "$const$0";
-                                                       if (bit == RTLIL::State::S1) node = "$const$1";
-                                                       if (bit == RTLIL::State::Sz) node = "$const$z";
-                                                       graph.createConnection(cell->name.str(), conn.first.str(), i, node, "\\Y", 0);
-                                               } else
-                                                       graph.createConstant(cell->name.str(), conn.first.str(), i, int(bit.data));
-                                               continue;
-                                       }
+                       RTLIL::SigSpec conn_sig = conn.second;
+                       sigmap.apply(conn_sig);
 
-                                       if (max_fanout > 0 && sig_use_count[std::pair<RTLIL::Wire*, int>(bit.wire, bit.offset)] > max_fanout)
-                                               continue;
+                       for (int i = 0; i < conn_sig.size(); i++)
+                       {
+                               auto &bit = conn_sig[i];
+
+                               if (bit.wire == NULL) {
+                                       if (constports) {
+                                               std::string node = "$const$x";
+                                               if (bit == RTLIL::State::S0) node = "$const$0";
+                                               if (bit == RTLIL::State::S1) node = "$const$1";
+                                               if (bit == RTLIL::State::Sz) node = "$const$z";
+                                               graph.createConnection(cell->name.str(), conn.first.str(), i, node, "\\Y", 0);
+                                       } else
+                                               graph.createConstant(cell->name.str(), conn.first.str(), i, int(bit.data));
+                                       continue;
+                               }
 
-                                       if (sel && !sel->selected(mod, bit.wire))
-                                               continue;
+                               if (max_fanout > 0 && sig_use_count[std::pair<RTLIL::Wire*, int>(bit.wire, bit.offset)] > max_fanout)
+                                       continue;
 
-                                       if (sig_bit_ref.count(bit) == 0) {
-                                               bit_ref_t &bit_ref = sig_bit_ref[bit];
-                                               bit_ref.cell = cell->name.str();
-                                               bit_ref.port = conn.first.str();
-                                               bit_ref.bit = i;
-                                       }
+                               if (sel && !sel->selected(mod, bit.wire))
+                                       continue;
 
+                               if (sig_bit_ref.count(bit) == 0) {
                                        bit_ref_t &bit_ref = sig_bit_ref[bit];
-                                       graph.createConnection(bit_ref.cell, bit_ref.port, bit_ref.bit, cell->name.str(), conn.first.str(), i);
+                                       bit_ref.cell = cell->name.str();
+                                       bit_ref.port = conn.first.str();
+                                       bit_ref.bit = i;
                                }
-                       }
-               }
-
-               // mark external signals (used in non-selected cells)
-               for (auto &cell_it : mod->cells_)
-               {
-                       RTLIL::Cell *cell = cell_it.second;
-                       if (sel && !sel->selected(mod, cell))
-                               for (auto &conn : cell->connections())
-                               {
-                                       RTLIL::SigSpec conn_sig = conn.second;
-                                       sigmap.apply(conn_sig);
 
-                                       for (auto &bit : conn_sig)
-                                               if (sig_bit_ref.count(bit) != 0) {
-                                                       bit_ref_t &bit_ref = sig_bit_ref[bit];
-                                                       graph.markExtern(bit_ref.cell, bit_ref.port, bit_ref.bit);
-                                               }
-                               }
+                               bit_ref_t &bit_ref = sig_bit_ref[bit];
+                               graph.createConnection(bit_ref.cell, bit_ref.port, bit_ref.bit, cell->name.str(), conn.first.str(), i);
+                       }
                }
+       }
 
-               // mark external signals (used in module ports)
-               for (auto &wire_it : mod->wires_)
-               {
-                       RTLIL::Wire *wire = wire_it.second;
-                       if (wire->port_id > 0)
+       // mark external signals (used in non-selected cells)
+       for (auto &cell_it : mod->cells_)
+       {
+               RTLIL::Cell *cell = cell_it.second;
+               if (sel && !sel->selected(mod, cell))
+                       for (auto &conn : cell->connections())
                        {
-                               RTLIL::SigSpec conn_sig(wire);
+                               RTLIL::SigSpec conn_sig = conn.second;
                                sigmap.apply(conn_sig);
 
                                for (auto &bit : conn_sig)
@@ -284,70 +268,86 @@ namespace
                                                graph.markExtern(bit_ref.cell, bit_ref.port, bit_ref.bit);
                                        }
                        }
-               }
-
-               // graph.print();
-               return true;
        }
 
-       RTLIL::Cell *replace(RTLIL::Module *needle, RTLIL::Module *haystack, SubCircuit::Solver::Result &match)
+       // mark external signals (used in module ports)
+       for (auto &wire_it : mod->wires_)
        {
-               SigMap sigmap(needle);
-               SigSet<std::pair<RTLIL::IdString, int>> sig2port;
-
-               // create new cell
-               RTLIL::Cell *cell = haystack->addCell(stringf("$extract$%s$%d", needle->name.c_str(), autoidx++), needle->name);
-
-               // create cell ports
-               for (auto &it : needle->wires_) {
-                       RTLIL::Wire *wire = it.second;
-                       if (wire->port_id > 0) {
-                               for (int i = 0; i < wire->width; i++)
-                                       sig2port.insert(sigmap(RTLIL::SigSpec(wire, i)), std::pair<RTLIL::IdString, int>(wire->name, i));
-                               cell->setPort(wire->name, RTLIL::SigSpec(RTLIL::State::Sz, wire->width));
-                       }
+               RTLIL::Wire *wire = wire_it.second;
+               if (wire->port_id > 0)
+               {
+                       RTLIL::SigSpec conn_sig(wire);
+                       sigmap.apply(conn_sig);
+
+                       for (auto &bit : conn_sig)
+                               if (sig_bit_ref.count(bit) != 0) {
+                                       bit_ref_t &bit_ref = sig_bit_ref[bit];
+                                       graph.markExtern(bit_ref.cell, bit_ref.port, bit_ref.bit);
+                               }
                }
+       }
 
-               // delete replaced cells and connect new ports
-               for (auto &it : match.mappings)
-               {
-                       auto &mapping = it.second;
-                       RTLIL::Cell *needle_cell = (RTLIL::Cell*)mapping.needleUserData;
-                       RTLIL::Cell *haystack_cell = (RTLIL::Cell*)mapping.haystackUserData;
+       // graph.print();
+       return true;
+}
 
-                       if (needle_cell == NULL)
-                               continue;
+RTLIL::Cell *replace(RTLIL::Module *needle, RTLIL::Module *haystack, SubCircuit::Solver::Result &match)
+{
+       SigMap sigmap(needle);
+       SigSet<std::pair<RTLIL::IdString, int>> sig2port;
+
+       // create new cell
+       RTLIL::Cell *cell = haystack->addCell(stringf("$extract$%s$%d", needle->name.c_str(), autoidx++), needle->name);
+
+       // create cell ports
+       for (auto &it : needle->wires_) {
+               RTLIL::Wire *wire = it.second;
+               if (wire->port_id > 0) {
+                       for (int i = 0; i < wire->width; i++)
+                               sig2port.insert(sigmap(RTLIL::SigSpec(wire, i)), std::pair<RTLIL::IdString, int>(wire->name, i));
+                       cell->setPort(wire->name, RTLIL::SigSpec(RTLIL::State::Sz, wire->width));
+               }
+       }
 
-                       for (auto &conn : needle_cell->connections()) {
-                               RTLIL::SigSpec sig = sigmap(conn.second);
-                               if (mapping.portMapping.count(conn.first.str()) > 0 && sig2port.has(sigmap(sig))) {
-                                       for (int i = 0; i < sig.size(); i++)
-                                       for (auto &port : sig2port.find(sig[i])) {
-                                               RTLIL::SigSpec bitsig = haystack_cell->getPort(mapping.portMapping[conn.first.str()]).extract(i, 1);
-                                               RTLIL::SigSpec new_sig = cell->getPort(port.first);
-                                               new_sig.replace(port.second, bitsig);
-                                               cell->setPort(port.first, new_sig);
-                                       }
+       // delete replaced cells and connect new ports
+       for (auto &it : match.mappings)
+       {
+               auto &mapping = it.second;
+               RTLIL::Cell *needle_cell = (RTLIL::Cell*)mapping.needleUserData;
+               RTLIL::Cell *haystack_cell = (RTLIL::Cell*)mapping.haystackUserData;
+
+               if (needle_cell == NULL)
+                       continue;
+
+               for (auto &conn : needle_cell->connections()) {
+                       RTLIL::SigSpec sig = sigmap(conn.second);
+                       if (mapping.portMapping.count(conn.first.str()) > 0 && sig2port.has(sigmap(sig))) {
+                               for (int i = 0; i < sig.size(); i++)
+                               for (auto &port : sig2port.find(sig[i])) {
+                                       RTLIL::SigSpec bitsig = haystack_cell->getPort(mapping.portMapping[conn.first.str()]).extract(i, 1);
+                                       RTLIL::SigSpec new_sig = cell->getPort(port.first);
+                                       new_sig.replace(port.second, bitsig);
+                                       cell->setPort(port.first, new_sig);
                                }
                        }
-
-                       haystack->remove(haystack_cell);
                }
 
-               return cell;
+               haystack->remove(haystack_cell);
        }
 
-       bool compareSortNeedleList(RTLIL::Module *left, RTLIL::Module *right)
-       {
-               int left_idx = 0, right_idx = 0;
-               if (left->attributes.count("\\extract_order") > 0)
-                       left_idx = left->attributes.at("\\extract_order").as_int();
-               if (right->attributes.count("\\extract_order") > 0)
-                       right_idx = right->attributes.at("\\extract_order").as_int();
-               if (left_idx != right_idx)
-                       return left_idx < right_idx;
-               return left->name < right->name;
-       }
+       return cell;
+}
+
+bool compareSortNeedleList(RTLIL::Module *left, RTLIL::Module *right)
+{
+       int left_idx = 0, right_idx = 0;
+       if (left->attributes.count("\\extract_order") > 0)
+               left_idx = left->attributes.at("\\extract_order").as_int();
+       if (right->attributes.count("\\extract_order") > 0)
+               right_idx = right->attributes.at("\\extract_order").as_int();
+       if (left_idx != right_idx)
+               return left_idx < right_idx;
+       return left->name < right->name;
 }
 
 struct ExtractPass : public Pass {
@@ -761,3 +761,4 @@ struct ExtractPass : public Pass {
        }
 } ExtractPass;
  
+PRIVATE_NAMESPACE_END
index 784c4cf314e01426142e5cfc88a18e0ec5eb872f..f598ddc6a2cadd7f77aa62b6fbe0956497a96087 100644 (file)
@@ -21,6 +21,9 @@
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 static std::string hicell_celltype, hicell_portname;
 static std::string locell_celltype, locell_portname;
 static bool singleton_mode;
@@ -119,3 +122,4 @@ struct HilomapPass : public Pass {
        }
 } HilomapPass;
  
+PRIVATE_NAMESPACE_END
index 9cd23ce6f1823b2feecf6ddbd2e0ae175c0ec36e..76d6115ae13c216cad6edd61a349e8a1771a3a75 100644 (file)
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
-static void split_portname_pair(std::string &port1, std::string &port2)
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+void split_portname_pair(std::string &port1, std::string &port2)
 {
        size_t pos = port1.find_first_of(':');
        if (pos != std::string::npos) {
@@ -207,3 +210,4 @@ struct IopadmapPass : public Pass {
        }
 } IopadmapPass;
  
+PRIVATE_NAMESPACE_END
index 612fa11173fc00e1575665913c27b94009358a7c..bf170d74c87e7c049ea7e6521fd2c598ac013f97 100644 (file)
@@ -29,7 +29,7 @@
 #include "kernel/log.h"
 #endif
 
-using namespace PASS_DFFLIBMAP;
+using namespace Yosys;
 
 std::set<std::string> LibertyAst::blacklist;
 std::set<std::string> LibertyAst::whitelist;
index 24748742466d4842608b2046f07e5df6bdb19ca4..e947bd8cd9fa3872cc6d808d11ce979f7b8494aa 100644 (file)
@@ -25,7 +25,7 @@
 #include <vector>
 #include <set>
 
-namespace PASS_DFFLIBMAP
+namespace Yosys
 {
        struct LibertyAst
        {
index 2d625eefe85846785d9427eced740487306dd3fb..1da97072a59cdc9afd6f358ff8e0f10aada11fa5 100644 (file)
@@ -20,7 +20,8 @@
 #include "kernel/yosys.h"
 #include "kernel/macc.h"
 
-extern void maccmap(RTLIL::Module *module, RTLIL::Cell *cell, bool unmap = false);
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
 
 struct MaccmapWorker
 {
@@ -256,6 +257,11 @@ struct MaccmapWorker
        }
 };
 
+PRIVATE_NAMESPACE_END
+YOSYS_NAMESPACE_BEGIN
+
+extern void maccmap(RTLIL::Module *module, RTLIL::Cell *cell, bool unmap = false);
+
 void maccmap(RTLIL::Module *module, RTLIL::Cell *cell, bool unmap)
 {
        int width = SIZE(cell->getPort("\\Y"));
@@ -354,6 +360,9 @@ void maccmap(RTLIL::Module *module, RTLIL::Cell *cell, bool unmap)
        }
 }
 
+YOSYS_NAMESPACE_END
+PRIVATE_NAMESPACE_BEGIN
+
 struct MaccmapPass : public Pass {
        MaccmapPass() : Pass("maccmap", "mapping macc cells") { }
        virtual void help()
@@ -392,3 +401,4 @@ struct MaccmapPass : public Pass {
        }
 } MaccmapPass;
  
+PRIVATE_NAMESPACE_END
index f8d5d45848b6d6594e348b11342c78082fcc537e..1cba343368afa7147f688a44f70fa5f17fa21d61 100644 (file)
@@ -24,7 +24,8 @@
 #include <stdio.h>
 #include <string.h>
 
-extern void simplemap_get_mappers(std::map<RTLIL::IdString, void(*)(RTLIL::Module*, RTLIL::Cell*)> &mappers);
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
 
 static void simplemap_not(RTLIL::Module *module, RTLIL::Cell *cell)
 {
@@ -372,6 +373,11 @@ static void simplemap_dlatch(RTLIL::Module *module, RTLIL::Cell *cell)
        }
 }
 
+PRIVATE_NAMESPACE_END
+YOSYS_NAMESPACE_BEGIN
+
+extern void simplemap_get_mappers(std::map<RTLIL::IdString, void(*)(RTLIL::Module*, RTLIL::Cell*)> &mappers);
+
 void simplemap_get_mappers(std::map<RTLIL::IdString, void(*)(RTLIL::Module*, RTLIL::Cell*)> &mappers)
 {
        mappers["$not"]         = simplemap_not;
@@ -398,6 +404,9 @@ void simplemap_get_mappers(std::map<RTLIL::IdString, void(*)(RTLIL::Module*, RTL
        mappers["$dlatch"]      = simplemap_dlatch;
 }
 
+YOSYS_NAMESPACE_END
+PRIVATE_NAMESPACE_BEGIN
+
 struct SimplemapPass : public Pass {
        SimplemapPass() : Pass("simplemap", "mapping simple coarse-grain cells") { }
        virtual void help()
@@ -440,3 +449,4 @@ struct SimplemapPass : public Pass {
        }
 } SimplemapPass;
  
+PRIVATE_NAMESPACE_END
index ed466faa1701b5b8ff779078fb5963ca0613b033..dc45dacdaeda0d5ad25231eeb26cd15bdcab65d5 100644 (file)
 
 #include "passes/techmap/techmap.inc"
 
+YOSYS_NAMESPACE_BEGIN
+
 // see simplemap.cc
 extern void simplemap_get_mappers(std::map<RTLIL::IdString, void(*)(RTLIL::Module*, RTLIL::Cell*)> &mappers);
 
 // see maccmap.cc
 extern void maccmap(RTLIL::Module *module, RTLIL::Cell *cell, bool unmap = false);
 
-static void apply_prefix(std::string prefix, std::string &id)
+YOSYS_NAMESPACE_END
+
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+void apply_prefix(std::string prefix, std::string &id)
 {
        if (id[0] == '\\')
                id = prefix + "." + id.substr(1);
@@ -42,7 +49,7 @@ static void apply_prefix(std::string prefix, std::string &id)
                id = "$techmap" + prefix + "." + id;
 }
 
-static void apply_prefix(std::string prefix, RTLIL::SigSpec &sig, RTLIL::Module *module)
+void apply_prefix(std::string prefix, RTLIL::SigSpec &sig, RTLIL::Module *module)
 {
        std::vector<RTLIL::SigChunk> chunks = sig;
        for (auto &chunk : chunks)
@@ -1080,3 +1087,4 @@ struct FlattenPass : public Pass {
        }
 } FlattenPass;
 
+PRIVATE_NAMESPACE_END
index 0a0ceb1d1458c52a3fc09a74e74606eb8d47e891..1ede137ee30e6f3350634f3c30630ae195b867da 100644 (file)
@@ -21,6 +21,9 @@
 #include "kernel/yosys.h"
 #include "kernel/satgen.h"
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 static uint32_t xorshift32_state = 123456789;
 
 static uint32_t xorshift32(uint32_t limit) {
@@ -283,3 +286,4 @@ struct TestAbcloopPass : public Pass {
        }
 } TestAbcloopPass;
 
+PRIVATE_NAMESPACE_END
index eed0f75f9ca088130159b5fa83bc4c083b5d5c1a..05caf6b2132af4f36540581a17738acf1893b6dd 100644 (file)
@@ -22,6 +22,7 @@
 #include <stdio.h>
 #include <time.h>
 
+USING_YOSYS_NAMESPACE
 PRIVATE_NAMESPACE_BEGIN
 
 static std::string id(std::string internal_id)
index 1fa90b540075d956810720f3da734504ed1b8598..d611d56c398fa2a4f68df64b1c747fc0dcb6007a 100644 (file)
@@ -24,6 +24,9 @@
 #include "kernel/macc.h"
 #include <algorithm>
 
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
 static uint32_t xorshift32_state = 123456789;
 
 static uint32_t xorshift32(uint32_t limit) {
@@ -743,3 +746,4 @@ struct TestCellPass : public Pass {
        }
 } TestCellPass;
 
+PRIVATE_NAMESPACE_END
index 4ccacd30b37e7e3756d3436f763ab6b605cdc196..8b41a003d8c2e6edc264c2e35091090196e5c32d 100644 (file)
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
-static bool check_label(bool &active, std::string run_from, std::string run_to, std::string label)
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+bool check_label(bool &active, std::string run_from, std::string run_to, std::string label)
 {
        if (!run_from.empty() && run_from == run_to) {
                active = (label == run_from);
@@ -154,3 +157,4 @@ struct SynthPass : public Pass {
        }
 } SynthPass;
  
+PRIVATE_NAMESPACE_END
index ff906db8fca3830c99599d027da4f1fb4dc8f090..8df5c4e42c137b9f84a7a89cc148a881326f9424 100644 (file)
 #include "kernel/rtlil.h"
 #include "kernel/log.h"
 
-static bool check_label(bool &active, std::string run_from, std::string run_to, std::string label)
+USING_YOSYS_NAMESPACE
+PRIVATE_NAMESPACE_BEGIN
+
+bool check_label(bool &active, std::string run_from, std::string run_to, std::string label)
 {
        if (label == run_from)
                active = true;
@@ -208,3 +211,4 @@ struct SynthXilinxPass : public Pass {
        }
 } SynthXilinxPass;
  
+PRIVATE_NAMESPACE_END