aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2019-02-16 10:06:07 +0000
committerDavid Shah <davey1576@gmail.com>2019-02-24 10:28:25 +0100
commitfd52db813f2e4c3dd3c6a73a84be56ad9f9a11ea (patch)
tree93c3d3d5135c52f48c0cc6c8e127de5bfd2227f7 /ecp5
parent491d64293dc3b96e2428515b51c408c817c9b803 (diff)
downloadnextpnr-fd52db813f2e4c3dd3c6a73a84be56ad9f9a11ea.tar.gz
nextpnr-fd52db813f2e4c3dd3c6a73a84be56ad9f9a11ea.tar.bz2
nextpnr-fd52db813f2e4c3dd3c6a73a84be56ad9f9a11ea.zip
ecp5: Add TERMINATION support
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'ecp5')
-rw-r--r--ecp5/bitstream.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/ecp5/bitstream.cc b/ecp5/bitstream.cc
index 170eaefd..d425914e 100644
--- a/ecp5/bitstream.cc
+++ b/ecp5/bitstream.cc
@@ -788,6 +788,22 @@ void write_bitstream(Context *ctx, std::string base_config_file, std::string tex
cc.tiles[pio_tile].add_enum(pio + ".SLEWRATE", str_or_default(ci->attrs, ctx->id("SLEWRATE"), "SLOW"));
if (ci->attrs.count(ctx->id("PULLMODE")))
cc.tiles[pio_tile].add_enum(pio + ".PULLMODE", str_or_default(ci->attrs, ctx->id("PULLMODE"), "NONE"));
+ if (ci->attrs.count(ctx->id("TERMINATION"))) {
+ auto vccio = get_vccio(ioType_from_str(iotype));
+ switch(vccio) {
+ case IOVoltage::VCC_1V8:
+ cc.tiles[pio_tile].add_enum(pio + ".TERMINATION_1V8", str_or_default(ci->attrs, ctx->id("TERMINATION"), "OFF"));
+ break;
+ case IOVoltage::VCC_1V5:
+ cc.tiles[pio_tile].add_enum(pio + ".TERMINATION_1V5", str_or_default(ci->attrs, ctx->id("TERMINATION"), "OFF"));
+ break;
+ case IOVoltage::VCC_1V35:
+ cc.tiles[pio_tile].add_enum(pio + ".TERMINATION_1V35", str_or_default(ci->attrs, ctx->id("TERMINATION"), "OFF"));
+ break;
+ default:
+ log_error("TERMINATION is not supported with Vcc = %s (on PIO %s)\n", iovoltage_to_str(vccio).c_str(), ci->name.c_str(ctx));
+ }
+ }
std::string datamux_oddr = str_or_default(ci->params, ctx->id("DATAMUX_ODDR"), "PADDO");
if (datamux_oddr != "PADDO")
cc.tiles[pic_tile].add_enum(pio + ".DATAMUX_ODDR", datamux_oddr);