ice40: split out cells_map.v into ff_map.v
[yosys.git] / kernel / register.h
index be836013f9c74b9ac879ecf5a784dcc79ab085f5..3d89386b7a0f7c0f72a71bff63e812ef7f8cad3c 100644 (file)
@@ -36,6 +36,11 @@ struct Pass
 
        int call_counter;
        int64_t runtime_ns;
+       bool experimental_flag = false;
+
+       void experimental() {
+               experimental_flag = true;
+       }
 
        struct pre_post_exec_state_t {
                Pass *parent_pass;
@@ -62,6 +67,9 @@ struct Pass
        virtual void run_register();
        static void init_register();
        static void done_register();
+
+       virtual void on_register();
+       virtual void on_shutdown();
 };
 
 struct ScriptPass : Pass
@@ -76,6 +84,7 @@ struct ScriptPass : Pass
 
        bool check_label(std::string label, std::string info = std::string());
        void run(std::string command, std::string info = std::string());
+       void run_nocheck(std::string command, std::string info = std::string());
        void run_script(RTLIL::Design *design, std::string run_from = std::string(), std::string run_to = std::string());
        void help_script();
 };
@@ -94,7 +103,7 @@ struct Frontend : Pass
        virtual void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) = 0;
 
        static std::vector<std::string> next_args;
-       void extra_args(std::istream *&f, std::string &filename, std::vector<std::string> args, size_t argidx);
+       void extra_args(std::istream *&f, std::string &filename, std::vector<std::string> args, size_t argidx, bool bin_input = false);
 
        static void frontend_call(RTLIL::Design *design, std::istream *f, std::string filename, std::string command);
        static void frontend_call(RTLIL::Design *design, std::istream *f, std::string filename, std::vector<std::string> args);