19
19
20
20
#include " gatemate.h"
21
21
#include " design_utils.h"
22
+ #include " placer_heap.h"
22
23
23
24
#define GEN_INIT_CONSTIDS
24
25
#define HIMBAECHEL_CONSTIDS " uarch/gatemate/constids.inc"
@@ -241,7 +242,6 @@ void GateMateImpl::postRoute()
241
242
}
242
243
for (auto &cell : ctx->cells ) {
243
244
if (cell.second ->type .in (id_CPE_HALF_U)) {
244
- // log_info("Checking id_CPE_HALF_U %s\n", cell.second->name.c_str(ctx));
245
245
uint8_t func = int_or_default (cell.second ->params , id_C_FUNCTION, 0 );
246
246
if (func != C_MX4) {
247
247
updateLUT (ctx, cell.second .get (), id_IN1, id_INIT_L00);
@@ -271,38 +271,6 @@ void GateMateImpl::postRoute()
271
271
updateINV (ctx, cell.second .get (), id_SR, id_C_CPE_RES);
272
272
}
273
273
}
274
- /*
275
-
276
- for (auto &cell : ctx->cells) {
277
- if (cell.second->type == id_CPE) {
278
- // if LUT part used
279
- uint8_t func = int_or_default(cell.second->params, id_C_FUNCTION, 0);
280
- if (func != C_MX4) {
281
- updateLUT(ctx, cell.second.get(), id_IN1, id_INIT_L00);
282
- updateLUT(ctx, cell.second.get(), id_IN2, id_INIT_L00);
283
- updateLUT(ctx, cell.second.get(), id_IN3, id_INIT_L01);
284
- updateLUT(ctx, cell.second.get(), id_IN4, id_INIT_L01);
285
- } else {
286
- updateMUX_INV(ctx, cell.second.get(), id_IN1, id_INIT_L11, 0);
287
- updateMUX_INV(ctx, cell.second.get(), id_IN2, id_INIT_L11, 1);
288
- updateMUX_INV(ctx, cell.second.get(), id_IN3, id_INIT_L11, 2);
289
- updateMUX_INV(ctx, cell.second.get(), id_IN4, id_INIT_L11, 3);
290
- }
291
-
292
- updateLUT(ctx, cell.second.get(), id_IN5, id_INIT_L02);
293
- updateLUT(ctx, cell.second.get(), id_IN6, id_INIT_L02);
294
- updateLUT(ctx, cell.second.get(), id_IN7, id_INIT_L03);
295
- updateLUT(ctx, cell.second.get(), id_IN8, id_INIT_L03);
296
- updateINV(ctx, cell.second.get(), id_CLK, id_C_CPE_CLK);
297
- updateINV(ctx, cell.second.get(), id_EN, id_C_CPE_EN);
298
- bool set = int_or_default(cell.second->params, id_C_EN_SR, 0) == 1;
299
- if (set)
300
- updateSR_INV(ctx, cell.second.get(), id_SR, id_C_CPE_SET);
301
- else
302
- updateSR_INV(ctx, cell.second.get(), id_SR, id_C_CPE_RES);
303
- }
304
- }
305
- */
306
274
print_utilisation (ctx);
307
275
308
276
const ArchArgs &args = ctx->args ;
@@ -311,6 +279,12 @@ void GateMateImpl::postRoute()
311
279
}
312
280
}
313
281
282
+ void GateMateImpl::configurePlacerHeap (PlacerHeapCfg &cfg)
283
+ {
284
+ // cfg.beta = 0.5;
285
+ cfg.placeAllAtOnce = true ;
286
+ }
287
+
314
288
void GateMateImpl::prePlace ()
315
289
{
316
290
assign_cell_info ();
0 commit comments