diff options
Diffstat (limited to 'backends/json/json.cc')
-rw-r--r-- | backends/json/json.cc | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/backends/json/json.cc b/backends/json/json.cc index 9bc936a6..4baffa33 100644 --- a/backends/json/json.cc +++ b/backends/json/json.cc @@ -83,12 +83,12 @@ struct JsonWriter return str + " ]"; } - void write_parameters(const dict<IdString, Const> ¶meters) + void write_parameters(const dict<IdString, Const> ¶meters, bool for_module=false) { bool first = true; for (auto ¶m : parameters) { f << stringf("%s\n", first ? "" : ","); - f << stringf(" %s: ", get_name(param.first).c_str()); + f << stringf(" %s%s: ", for_module ? "" : " ", get_name(param.first).c_str()); if ((param.second.flags & RTLIL::ConstFlags::CONST_FLAG_STRING) != 0) f << get_string(param.second.decode_string()); else if (GetSize(param.second.bits) > 32) @@ -111,6 +111,10 @@ struct JsonWriter f << stringf(" %s: {\n", get_name(module->name).c_str()); + f << stringf(" \"attributes\": {"); + write_parameters(module->attributes, /*for_module=*/true); + f << stringf("\n },\n"); + f << stringf(" \"ports\": {"); bool first = true; for (auto n : module->ports) { @@ -411,10 +415,10 @@ struct JsonBackend : public Backend { log(" - the inverted value of the specified input port bit\n"); log("\n"); log(" [ \"and\", <node-index>, <node-index>, <out-list> ]\n"); - log(" - the ANDed value of the speciefied nodes\n"); + log(" - the ANDed value of the specified nodes\n"); log("\n"); log(" [ \"nand\", <node-index>, <node-index>, <out-list> ]\n"); - log(" - the inverted ANDed value of the speciefied nodes\n"); + log(" - the inverted ANDed value of the specified nodes\n"); log("\n"); log(" [ \"true\", <out-list> ]\n"); log(" - the constant value 1\n"); @@ -445,7 +449,7 @@ struct JsonBackend : public Backend { log(" ]\n"); log("\n"); log("Future version of Yosys might add support for additional fields in the JSON\n"); - log("format. A program processing this format must ignore all unkown fields.\n"); + log("format. A program processing this format must ignore all unknown fields.\n"); log("\n"); } virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) @@ -463,7 +467,7 @@ struct JsonBackend : public Backend { } extra_args(f, filename, args, argidx); - log_header("Executing JSON backend.\n"); + log_header(design, "Executing JSON backend.\n"); JsonWriter json_writer(*f, false, aig_mode); json_writer.write_design(design); |