diff options
author | David Shah <dave@ds0.me> | 2020-03-17 10:07:29 +0000 |
---|---|---|
committer | David Shah <dave@ds0.me> | 2020-03-17 10:07:29 +0000 |
commit | d20ce45c1b59ad1485c2299234c4dd8d1dec35f3 (patch) | |
tree | 07b6cecfdbd926beb41292e7bfe0e56615bda471 /ecp5/bitstream.cc | |
parent | 564f40f6dbda8726fe1abd1f5e66fdc6fd74035c (diff) | |
parent | 54b15ed20100523199885685c4557f160fbf56a0 (diff) | |
download | nextpnr-d20ce45c1b59ad1485c2299234c4dd8d1dec35f3.tar.gz nextpnr-d20ce45c1b59ad1485c2299234c4dd8d1dec35f3.tar.bz2 nextpnr-d20ce45c1b59ad1485c2299234c4dd8d1dec35f3.zip |
Merge branch 'master' of ssh.github.com:YosysHQ/nextpnr
Diffstat (limited to 'ecp5/bitstream.cc')
-rw-r--r-- | ecp5/bitstream.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ecp5/bitstream.cc b/ecp5/bitstream.cc index bc8a6c55..1bdb4188 100644 --- a/ecp5/bitstream.cc +++ b/ecp5/bitstream.cc @@ -650,7 +650,7 @@ void write_bitstream(Context *ctx, std::string base_config_file, std::string tex } // Find bank voltages std::unordered_map<int, IOVoltage> bankVcc; - std::unordered_map<int, bool> bankLvds, bankVref; + std::unordered_map<int, bool> bankLvds, bankVref, bankDiff; for (auto &cell : ctx->cells) { CellInfo *ci = cell.second.get(); @@ -675,6 +675,8 @@ void write_bitstream(Context *ctx, std::string base_config_file, std::string tex if (iotype == "LVDS") bankLvds[bank] = true; + if ((dir == "INPUT" || dir == "BIDIR") && is_differential(ioType_from_str(iotype))) + bankDiff[bank] = true; if ((dir == "INPUT" || dir == "BIDIR") && is_referenced(ioType_from_str(iotype))) bankVref[bank] = true; } @@ -698,6 +700,9 @@ void write_bitstream(Context *ctx, std::string base_config_file, std::string tex cc.tiles[tile.first].add_enum("BANK.DIFF_REF", "ON"); cc.tiles[tile.first].add_enum("BANK.LVDSO", "ON"); } + if (bankDiff[bank]) { + cc.tiles[tile.first].add_enum("BANK.DIFF_REF", "ON"); + } if (bankVref[bank]) { cc.tiles[tile.first].add_enum("BANK.DIFF_REF", "ON"); cc.tiles[tile.first].add_enum("BANK.VREF", "ON"); |