diff options
author | David Shah <dave@ds0.me> | 2020-04-10 08:25:16 +0100 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2020-04-10 08:25:16 +0100 |
commit | a8111bba830524fd7d572836d07d72a137cc32f0 (patch) | |
tree | 2afab223eb0aff285249ca0efc67f8b8c0f132c5 | |
parent | ced336492ce3b157cabf265edc5cb79abca4bdf1 (diff) | |
download | nextpnr-a8111bba830524fd7d572836d07d72a137cc32f0.tar.gz nextpnr-a8111bba830524fd7d572836d07d72a137cc32f0.tar.bz2 nextpnr-a8111bba830524fd7d572836d07d72a137cc32f0.zip |
ecp5: Fix routing bitgen for non-SERDES 'VCIB' tiles
Signed-off-by: David Shah <dave@ds0.me>
-rw-r--r-- | ecp5/bitstream.cc | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/ecp5/bitstream.cc b/ecp5/bitstream.cc index d46bbe33..8dfd1f8c 100644 --- a/ecp5/bitstream.cc +++ b/ecp5/bitstream.cc @@ -446,9 +446,10 @@ void fix_tile_names(Context *ctx, ChipConfig &cc) auto cibdcu = tile.first.find("CIB_DCU"); if (cibdcu != std::string::npos) { // Add the V - if (newname.at(cibdcu - 1) != 'V') + if (newname.at(cibdcu - 1) != 'V') { newname.insert(cibdcu, 1, 'V'); - tiletype_xform[tile.first] = newname; + tiletype_xform[tile.first] = newname; + } } else if (boost::ends_with(tile.first, "BMID_0H")) { newname.back() = 'V'; tiletype_xform[tile.first] = newname; @@ -459,7 +460,15 @@ void fix_tile_names(Context *ctx, ChipConfig &cc) } // Apply the name changes for (auto xform : tiletype_xform) { - cc.tiles[xform.second] = cc.tiles.at(xform.first); + auto &existing = cc.tiles.at(xform.first); + for (const auto &carc : existing.carcs) + cc.tiles[xform.second].carcs.push_back(carc); + for (const auto &cenum : existing.cenums) + cc.tiles[xform.second].cenums.push_back(cenum); + for (const auto &cword : existing.cwords) + cc.tiles[xform.second].cwords.push_back(cword); + for (const auto &cunknown : existing.cunknowns) + cc.tiles[xform.second].cunknowns.push_back(cunknown); cc.tiles.erase(xform.first); } } |