22 return std::make_unique<LogicEvaluatorPlugin>();
27 return std::string(
"waveform_viewer");
32 return std::string(
"0.7");
37 return std::string(
"GUI to control simulation and view resulting waveforms");
42 std::set<std::string> retval;
43 retval.insert(
"netlist_simulator_controller");
44 retval.insert(
"hal_gui");
50 qRegisterMetaType<std::string>();
62 std::vector<PluginParameter> retval;
66 "Press 'Launch' to launch logic evaluator\n"
67 "with the gates that are currently selected.\n\n"
68 "Per default boolean logic gets compiled and\n"
69 "evaluated by compiled binary code. If 'skip' is\n"
70 "checked the compile step gets omitted and the\n"
71 "build-in BooleanFunction class does the evaluation."));
83 if (pp.get_tagname() ==
"skip")
85 mSkipCompile = (pp.get_value() ==
"true");
108 std::vector<ContextMenuContribution>
111 std::vector<ContextMenuContribution> retval;
112 if (nl && (!mods.empty() || !gats.empty()))
114 retval.push_back({
this,
"Logic Evaluator",
"Launch logic evaluator..."});
121 if (nl && (!mods.empty() || !gats.empty()))
123 std::unordered_set<Gate*> gates;
124 for (
u32 gatId : gats)
132 for (
u32 modId : mods)
149 std::vector<Gate*> emptyList;
155 std::vector<Gate*> vgates(gates.begin(), gates.end());
std::vector< AbstractExtensionInterface * > m_extensions
GateType * get_type() const
bool has_property(GateTypeProperty property) const
virtual void execute_function(std::string tag, Netlist *nl, const std::vector< u32 > &mods, const std::vector< u32 > &gats, const std::vector< u32 > &nets) override
virtual std::vector< ContextMenuContribution > get_context_contribution(const Netlist *nl, const std::vector< u32 > &mods, const std::vector< u32 > &gats, const std::vector< u32 > &nets) override
std::vector< PluginParameter > get_parameter() const override
Get a vector of configurable parameters.
static bool acceptGate(const Gate *g)
void set_parameter(const std::vector< PluginParameter > ¶ms) override
Set values for a vector of configurable parameters.
std::shared_ptr< spdlog::logger > add_channel(const std::string &channel_name, const std::vector< std::shared_ptr< log_sink >> &sinks, const std::string &level="info")
static std::shared_ptr< log_sink > create_gui_sink()
static std::shared_ptr< log_sink > create_file_sink(const std::filesystem::path &file_name="", const bool truncate=false)
static std::shared_ptr< log_sink > create_stdout_sink(const bool colored=true)
static LogManager * get_instance(const std::filesystem::path &file_name="")
std::set< std::string > get_dependencies() const override
std::string get_version() const override
std::string get_description() const override
std::string get_name() const override
void on_unload() override
const std::vector< Gate * > & get_gates() const
Gate * get_gate_by_id(const u32 gate_id) const
Module * get_module_by_id(u32 module_id) const
std::unique_ptr< BasePluginInterface > create_plugin_instance()