SDC: Remove Clocks class from get_clocks Signed-off-by: Tomasz Michalak <tmichalak@antmicro.com>
diff --git a/sdc-plugin/sdc.cc b/sdc-plugin/sdc.cc index 00692be..b66a287 100644 --- a/sdc-plugin/sdc.cc +++ b/sdc-plugin/sdc.cc
@@ -184,8 +184,8 @@ }; struct GetClocksCmd : public Pass { - GetClocksCmd(Clocks& clocks) - : Pass("get_clocks", "Create clock object"), clocks_(clocks) {} + GetClocksCmd() + : Pass("get_clocks", "Create clock object") {} void help() override { log("\n"); @@ -195,22 +195,24 @@ log("\n"); } - void execute(__attribute__((unused)) std::vector<std::string> args, - __attribute__((unused)) RTLIL::Design* design) override { - std::vector<std::string> clock_names(clocks_.GetClockNames()); - if (clock_names.size() == 0) { + void execute(std::vector<std::string> args, + RTLIL::Design* design) override { + if (args.size() > 1) { + log_warning("Command doesn't support arguments, so they will be ignored.\n"); + } + std::vector<RTLIL::Wire*> clock_wires(Clocks::GetClocks(design)); + if (clock_wires.size() == 0) { log_warning("No clocks found in design\n"); } Tcl_Interp* interp = yosys_get_tcl_interp(); Tcl_Obj* tcl_list = Tcl_NewListObj(0, NULL); - for (auto name : clock_names) { - Tcl_Obj* name_obj = Tcl_NewStringObj(name.c_str(), name.size()); + for (auto wire : clock_wires) { + const char* name = RTLIL::id2cstr(wire->name); + Tcl_Obj* name_obj = Tcl_NewStringObj(name, -1); Tcl_ListObjAppendElement(interp, tcl_list, name_obj); } Tcl_SetObjResult(interp, tcl_list); } - - Clocks& clocks_; }; struct PropagateClocksCmd : public Pass { @@ -253,7 +255,6 @@ SdcPlugin() : write_sdc_cmd_(clocks_, sdc_writer_), create_clock_cmd_(clocks_), - get_clocks_cmd_(clocks_), propagate_clocks_cmd_(clocks_), set_false_path_cmd_(sdc_writer_), set_max_delay_cmd_(sdc_writer_),