diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2019-06-03 21:01:05 +0200 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2019-06-03 21:01:05 +0200 |
commit | 44d6f16b66e5f7b89e8cf5711744d6e5f6a40b4a (patch) | |
tree | 1cf8d31f6e9b59a2535e1bae8d1d5f45996b9572 /json | |
parent | 82ed1803c726e912730c3053179f179b90c9b694 (diff) | |
download | nextpnr-44d6f16b66e5f7b89e8cf5711744d6e5f6a40b4a.tar.gz nextpnr-44d6f16b66e5f7b89e8cf5711744d6e5f6a40b4a.tar.bz2 nextpnr-44d6f16b66e5f7b89e8cf5711744d6e5f6a40b4a.zip |
Support ecp5 read write additional cell info
Diffstat (limited to 'json')
-rw-r--r-- | json/jsonwrite.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/json/jsonwrite.cc b/json/jsonwrite.cc index e62a7d2a..9f29d510 100644 --- a/json/jsonwrite.cc +++ b/json/jsonwrite.cc @@ -89,6 +89,19 @@ void write_constraints(std::ostream &f, Context *ctx, CellInfo *cell, bool first constr += std::to_string(cell->constr_z) + ";"; constr += std::to_string(cell->constr_abs_z ? 1:0) + ";"; constr += cell->constr_parent!=nullptr ? cell->constr_parent->name.c_str(ctx) : ""; +#ifdef ARCH_ECP5 + constr += ";"; + constr += std::to_string(cell->sliceInfo.using_dff ? 1:0) + ";"; + constr += std::to_string(cell->sliceInfo.has_l6mux ? 1:0) + ";"; + constr += std::to_string(cell->sliceInfo.is_carry ? 1:0) + ";"; + constr += std::string(cell->sliceInfo.clk_sig.c_str(ctx)) + ";"; + constr += std::string(cell->sliceInfo.lsr_sig.c_str(ctx)) + ";"; + constr += std::string(cell->sliceInfo.clkmux.c_str(ctx)) + ";"; + constr += std::string(cell->sliceInfo.lsrmux.c_str(ctx)) + ";"; + constr += std::string(cell->sliceInfo.srmode.c_str(ctx)) + ";"; + constr += std::to_string(cell->sliceInfo.sd0) + ";"; + constr += std::to_string(cell->sliceInfo.sd1) + ";"; +#endif f << stringf("%s\n", first ? "" : ","); f << stringf(" \"NEXTPNR_CONSTRAINT\": "); f << get_string(constr); |