aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2020-12-27 20:14:49 +0000
committerDavid Shah <dave@ds0.me>2020-12-27 20:14:49 +0000
commit5e53a182921dad0e128186a1fe8766062c7cae61 (patch)
tree687333feeeab14f4c3bf0a7b3ced0d3685291627 /ecp5
parent74c4fa67510d4438b72b59897b750dd9bbf4ac5a (diff)
downloadnextpnr-5e53a182921dad0e128186a1fe8766062c7cae61.tar.gz
nextpnr-5e53a182921dad0e128186a1fe8766062c7cae61.tar.bz2
nextpnr-5e53a182921dad0e128186a1fe8766062c7cae61.zip
ecp5: Improve pseudo-diff IO error handling
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'ecp5')
-rw-r--r--ecp5/bitstream.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/ecp5/bitstream.cc b/ecp5/bitstream.cc
index 9fb823ab..c6863cd6 100644
--- a/ecp5/bitstream.cc
+++ b/ecp5/bitstream.cc
@@ -867,8 +867,10 @@ void write_bitstream(Context *ctx, std::string base_config_file, std::string tex
if (is_differential(ioType_from_str(iotype))) {
if (bel.location.y == 0) {
// Pseudo differential top IO
- NPNR_ASSERT(dir == "OUTPUT");
- NPNR_ASSERT(pio == "PIOA");
+ if (dir != "OUTPUT")
+ log_error("Pseudo-differential IO '%s' must be output\n", ctx->nameOf(ci));
+ if (pio != "PIOA")
+ log_error("Pseudo-differential IO '%s' must be constrained to 'A' side of pair\n", ctx->nameOf(ci));
std::string cpio_tile = get_comp_pio_tile(ctx, bel);
std::string cpic_tile = get_comp_pic_tile(ctx, bel);
cc.tiles[cpio_tile].add_enum(pio + ".BASE_TYPE", dir + "_" + iotype);