mirror of https://github.com/YosysHQ/nextpnr.git
wip
This commit is contained in:
parent
683c94cd28
commit
5a77d7ca25
|
|
@ -534,12 +534,53 @@ void GateMateImpl::postRoute()
|
||||||
l10 = swap_lut2_inputs(l10);
|
l10 = swap_lut2_inputs(l10);
|
||||||
if (cfg.count(ctx->id("CPE.D0_02"))) { // 1st LUT2
|
if (cfg.count(ctx->id("CPE.D0_02"))) { // 1st LUT2
|
||||||
l00 = 0b1010; // LUT_D0 - we propagate only
|
l00 = 0b1010; // LUT_D0 - we propagate only
|
||||||
if (cfg.at(ctx->id("CPE.D0_02"))==1)
|
if (cfg.at(ctx->id("CPE.D0_02"))==1) {
|
||||||
l00 = swap_lut2_inputs(l00);
|
l00 = swap_lut2_inputs(l00);
|
||||||
|
if (cfg.count(ctx->id("CPE.C_I3"))) {
|
||||||
|
printf("D0_10 -> PINY1\n");
|
||||||
|
cell.second->renamePort(id_D0_10, id_PINY1);
|
||||||
|
} else {
|
||||||
|
printf("D0_10 -> IN2\n");
|
||||||
|
cell.second->renamePort(id_D0_10, id_IN2);
|
||||||
|
}
|
||||||
|
printf("D1_10 -> IN1\n");
|
||||||
|
cell.second->renamePort(id_D1_10, id_IN1);
|
||||||
|
} else {
|
||||||
|
printf("D0_10 -> IN1\n");
|
||||||
|
cell.second->renamePort(id_D0_10, id_IN1);
|
||||||
|
if (cfg.count(ctx->id("CPE.C_I3"))) {
|
||||||
|
printf("D1_10 -> PINY1\n");
|
||||||
|
cell.second->renamePort(id_D1_10, id_PINY1);
|
||||||
|
} else {
|
||||||
|
printf("D1_10 -> IN2\n");
|
||||||
|
cell.second->renamePort(id_D1_10, id_IN2);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else { //second LUT2
|
} else { //second LUT2
|
||||||
l01 = 0b1010; // LUT_D0 - we propagate only
|
l01 = 0b1010; // LUT_D0 - we propagate only
|
||||||
if (cfg.at(ctx->id("CPE.D0_03"))==1)
|
if (cfg.at(ctx->id("CPE.D0_03"))==1) {
|
||||||
l01 = swap_lut2_inputs(l01);
|
l01 = swap_lut2_inputs(l01);
|
||||||
|
if (cfg.count(ctx->id("CPE.C_I4"))) {
|
||||||
|
printf("D0_10 -> PINX\n");
|
||||||
|
cell.second->renamePort(id_D0_10, id_PINX);
|
||||||
|
} else {
|
||||||
|
printf("D0_10 -> IN4\n");
|
||||||
|
cell.second->renamePort(id_D0_10, id_IN4);
|
||||||
|
}
|
||||||
|
printf("D1_10 -> IN3\n");
|
||||||
|
cell.second->renamePort(id_D1_10, id_IN3);
|
||||||
|
} else {
|
||||||
|
printf("D0_10 -> IN3\n");
|
||||||
|
cell.second->renamePort(id_D0_10, id_IN3);
|
||||||
|
if (cfg.count(ctx->id("CPE.C_I4"))) {
|
||||||
|
printf("D1_10 -> PINX\n");
|
||||||
|
cell.second->renamePort(id_D1_10, id_PINX);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("D1_10 -> IN4\n");
|
||||||
|
cell.second->renamePort(id_D1_10, id_IN4);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else { // upper part
|
} else { // upper part
|
||||||
printf("upper\n");
|
printf("upper\n");
|
||||||
|
|
@ -549,12 +590,54 @@ void GateMateImpl::postRoute()
|
||||||
}
|
}
|
||||||
if (cfg.count(ctx->id("CPE.D0_00"))) { // 1st LUT2
|
if (cfg.count(ctx->id("CPE.D0_00"))) { // 1st LUT2
|
||||||
l00 = 0b1010; // LUT_D0 - we propagate only
|
l00 = 0b1010; // LUT_D0 - we propagate only
|
||||||
if (cfg.at(ctx->id("CPE.D0_00"))==1)
|
if (cfg.at(ctx->id("CPE.D0_00"))==1) {
|
||||||
l00 = swap_lut2_inputs(l00);
|
l00 = swap_lut2_inputs(l00);
|
||||||
|
if (cfg.count(ctx->id("CPE.C_I1"))) {
|
||||||
|
printf("D0_10 -> PINY1\n");
|
||||||
|
cell.second->renamePort(id_D0_10, id_PINY1);
|
||||||
|
} else {
|
||||||
|
printf("D0_10 -> IN2\n");
|
||||||
|
cell.second->renamePort(id_D0_10, id_IN2);
|
||||||
|
}
|
||||||
|
printf("D1_10 -> IN1\n");
|
||||||
|
cell.second->renamePort(id_D1_10, id_IN1);
|
||||||
|
} else {
|
||||||
|
printf("D0_10 -> IN1\n");
|
||||||
|
cell.second->renamePort(id_D0_10, id_IN1);
|
||||||
|
if (cfg.count(ctx->id("CPE.C_I1"))) {
|
||||||
|
printf("D1_10 -> PINY1\n");
|
||||||
|
cell.second->renamePort(id_D1_10, id_PINY1);
|
||||||
|
} else {
|
||||||
|
printf("D1_10 -> IN2\n");
|
||||||
|
cell.second->renamePort(id_D1_10, id_IN2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} else { //second LUT2
|
} else { //second LUT2
|
||||||
l01 = 0b1010; // LUT_D0 - we propagate only
|
l01 = 0b1010; // LUT_D0 - we propagate only
|
||||||
if (cfg.at(ctx->id("CPE.D0_01"))==1)
|
if (cfg.at(ctx->id("CPE.D0_01"))==1) {
|
||||||
l01 = swap_lut2_inputs(l01);
|
l01 = swap_lut2_inputs(l01);
|
||||||
|
if (cfg.count(ctx->id("CPE.C_I2"))) {
|
||||||
|
printf("D0_10 -> CINX\n");
|
||||||
|
cell.second->renamePort(id_D0_10, id_CINX);
|
||||||
|
} else {
|
||||||
|
printf("D0_10 -> IN4\n");
|
||||||
|
cell.second->renamePort(id_D0_10, id_IN4);
|
||||||
|
}
|
||||||
|
printf("D1_10 -> IN3\n");
|
||||||
|
cell.second->renamePort(id_D1_10, id_IN3);
|
||||||
|
} else {
|
||||||
|
printf("D0_10 -> IN3\n");
|
||||||
|
cell.second->renamePort(id_D0_10, id_IN3);
|
||||||
|
if (cfg.count(ctx->id("CPE.C_I2"))) {
|
||||||
|
printf("D1_10 -> CINX\n");
|
||||||
|
cell.second->renamePort(id_D1_10, id_CINX);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("D1_10 -> IN4\n");
|
||||||
|
cell.second->renamePort(id_D1_10, id_IN4);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("updated\n=========\n");
|
printf("updated\n=========\n");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue