From 1f33b2a490cf44ec24de5e085ff2957a680519fb Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Tue, 7 Apr 2015 19:21:30 +0200 Subject: [PATCH] Added "chparam -list" --- passes/cmds/setattr.cc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/passes/cmds/setattr.cc b/passes/cmds/setattr.cc index 0a859f6f9..e4ad1f37d 100644 --- a/passes/cmds/setattr.cc +++ b/passes/cmds/setattr.cc @@ -192,11 +192,17 @@ struct ChparamPass : public Pass { log("Re-evaluate the selected modules with new parameters. String values must be\n"); log("passed in double quotes (\").\n"); log("\n"); + log("\n"); + log(" chparam -list [selection]\n"); + log("\n"); + log("List the available parameters of the selected modules.\n"); + log("\n"); } virtual void execute(std::vector args, RTLIL::Design *design) { std::vector setunset_list; dict new_parameters; + bool list_mode = false; size_t argidx; for (argidx = 1; argidx < args.size(); argidx++) @@ -209,10 +215,25 @@ struct ChparamPass : public Pass { argidx--; continue; } + if (arg == "-list") { + list_mode = true; + continue; + } break; } extra_args(args, argidx, design); + if (list_mode) { + if (!new_parameters.empty()) + log_cmd_error("The options -set and -list cannot be used together.\n"); + for (auto module : design->selected_modules()) { + log("%s:\n", log_id(module)); + for (auto param : module->avail_parameters) + log(" %s\n", log_id(param)); + } + return; + } + pool modnames, old_modnames; for (auto module : design->selected_modules()) { if (design->selected_whole_module(module)) -- 2.30.2