ecp5: DELAYF/G fixes

Signed-off-by: David Shah <dave@ds0.me>
This commit is contained in:
David Shah 2019-02-24 13:47:03 +00:00
parent 15314538f8
commit 64dc453f12

View File

@ -1802,7 +1802,7 @@ class Ecp5Packer
driven_by_iol = true; driven_by_iol = true;
if (driven_by_iol) { if (driven_by_iol) {
disconnect_port(ctx, o_pio, id_I); disconnect_port(ctx, o_pio, id_I);
i_pio->ports.at(id_I).net = nullptr; o_pio->ports.at(id_I).net = nullptr;
disconnect_port(ctx, ci, id_A); disconnect_port(ctx, ci, id_A);
ci->ports.at(id_A).net = nullptr; ci->ports.at(id_A).net = nullptr;
disconnect_port(ctx, ci, id_Z); disconnect_port(ctx, ci, id_Z);
@ -1825,7 +1825,7 @@ class Ecp5Packer
} }
iol->params[ctx->id("DELAY.DEL_VALUE")] = iol->params[ctx->id("DELAY.DEL_VALUE")] =
std::to_string(lookup_delay(str_or_default(ci->params, ctx->id("DEL_MODE"), "USER_DEFINED"))); std::to_string(lookup_delay(str_or_default(ci->params, ctx->id("DEL_MODE"), "USER_DEFINED")));
if (ci->params.count(ctx->id("DEL_VALUE"))) if (ci->params.count(ctx->id("DEL_VALUE")) && ci->params.at(ctx->id("DEL_VALUE")) != "DELAY0")
iol->params[ctx->id("DELAY.DEL_VALUE")] = ci->params.at(ctx->id("DEL_VALUE")); iol->params[ctx->id("DELAY.DEL_VALUE")] = ci->params.at(ctx->id("DEL_VALUE"));
if (ci->ports.count(id_LOADN)) if (ci->ports.count(id_LOADN))
replace_port(ci, id_LOADN, iol, id_LOADN); replace_port(ci, id_LOADN, iol, id_LOADN);