Merge pull request #191 from whitequark/json-module-attributes

write_json: also write module attributes
This commit is contained in:
Clifford Wolf 2016-07-13 09:39:27 +02:00 committed by GitHub
commit 2afc72cae3
1 changed files with 6 additions and 2 deletions

View File

@ -83,12 +83,12 @@ struct JsonWriter
return str + " ]";
}
void write_parameters(const dict<IdString, Const> &parameters)
void write_parameters(const dict<IdString, Const> &parameters, bool for_module=false)
{
bool first = true;
for (auto &param : 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) {