This commit is contained in:
Miodrag Milanovic 2024-12-20 12:03:53 +01:00
parent 2f537d2ccc
commit b020a47bb8
2 changed files with 21 additions and 21 deletions

View File

@ -19,9 +19,9 @@
#include <fstream> #include <fstream>
#include <boost/algorithm/string.hpp>
#include "config.h" #include "config.h"
#include "gatemate.h" #include "gatemate.h"
#include <boost/algorithm/string.hpp>
#define HIMBAECHEL_CONSTIDS "uarch/gatemate/constids.inc" #define HIMBAECHEL_CONSTIDS "uarch/gatemate/constids.inc"
#include "himbaechel_constids.h" #include "himbaechel_constids.h"
@ -122,14 +122,12 @@ struct BitstreamBackend
cc.tiles[loc].add_word(stringf("GPIO.%s", p.first.c_str(ctx)), p.second.as_bits()); cc.tiles[loc].add_word(stringf("GPIO.%s", p.first.c_str(ctx)), p.second.as_bits());
} }
break; break;
case id_CPE.index: case id_CPE.index: {
{
int x = getInTileIndex(ctx, cell.second.get()->bel.tile); int x = getInTileIndex(ctx, cell.second.get()->bel.tile);
for (auto &p : params) { for (auto &p : params) {
cc.tiles[loc].add_word(stringf("CPE%d.%s", x, p.first.c_str(ctx)), p.second.as_bits()); cc.tiles[loc].add_word(stringf("CPE%d.%s", x, p.first.c_str(ctx)), p.second.as_bits());
} }
} } break;
break;
default: default:
break; break;
} }

View File

@ -64,11 +64,13 @@ void GateMateImpl::postRoute()
continue; continue;
if (extra_data.type == PipExtra::PIP_EXTRA_CPE) { if (extra_data.type == PipExtra::PIP_EXTRA_CPE) {
IdStringList id = ctx->getPipName(w.second.pip); IdStringList id = ctx->getPipName(w.second.pip);
BelId bel = ctx->getBelByName(IdStringList::concat(id[0], ctx->id("CPE"))); BelId bel = ctx->getBelByName(IdStringList::concat(id[0], id_CPE));
IdString type = ctx->getBelType(bel);
if (!ctx->getBoundBelCell(bel)) { if (!ctx->getBoundBelCell(bel)) {
CellInfo *cell = ctx->createCell(ctx->id(ctx->nameOfBel(bel)), type); CellInfo *cell = ctx->createCell(ctx->id(ctx->nameOfBel(bel)), id_CPE);
ctx->bindBel(bel, cell, PlaceStrength::STRENGTH_FIXED); ctx->bindBel(bel, cell, PlaceStrength::STRENGTH_FIXED);
}
CellInfo *cell = ctx->getBoundBelCell(bel);
if (IdString(extra_data.name) == id_RAM_O2) {
cell->params[id_INIT_L00] = Property(5, 4); //"0101"); cell->params[id_INIT_L00] = Property(5, 4); //"0101");
cell->params[id_INIT_L01] = Property(15, 4); // Property("1111"); cell->params[id_INIT_L01] = Property(15, 4); // Property("1111");
cell->params[id_INIT_L02] = Property(15, 4); // Property("1111"); cell->params[id_INIT_L02] = Property(15, 4); // Property("1111");