aboutsummaryrefslogtreecommitdiffstats
path: root/ice40
diff options
context:
space:
mode:
Diffstat (limited to 'ice40')
-rw-r--r--ice40/arch.h16
-rw-r--r--ice40/pack.cc2
2 files changed, 18 insertions, 0 deletions
diff --git a/ice40/arch.h b/ice40/arch.h
index 4896736b..7778e1c5 100644
--- a/ice40/arch.h
+++ b/ice40/arch.h
@@ -515,6 +515,11 @@ struct Arch : BaseCtx
return id(chip_info->bel_data[bel.index].name.get());
}
+ uint32_t getBelChecksum(BelId bel) const
+ {
+ return bel.index;
+ }
+
void bindBel(BelId bel, IdString cell)
{
assert(bel != BelId());
@@ -607,6 +612,11 @@ struct Arch : BaseCtx
return id(chip_info->wire_data[wire.index].name.get());
}
+ uint32_t getWireChecksum(WireId wire) const
+ {
+ return wire.index;
+ }
+
void bindWire(WireId wire, IdString net)
{
assert(wire != WireId());
@@ -646,6 +656,11 @@ struct Arch : BaseCtx
PipId getPipByName(IdString name) const;
IdString getPipName(PipId pip) const;
+ uint32_t getPipChecksum(PipId pip) const
+ {
+ return pip.index;
+ }
+
void bindPip(PipId pip, IdString net)
{
assert(pip != PipId());
@@ -758,6 +773,7 @@ struct Arch : BaseCtx
delay_t getDelayEpsilon() const { return 20; }
delay_t getRipupDelayPenalty() const { return 200; }
float getDelayNS(delay_t v) const { return v * 0.001; }
+ uint32_t getDelayChecksum(delay_t v) const { return v; }
// -------------------------------------------------
diff --git a/ice40/pack.cc b/ice40/pack.cc
index 8a6f1c45..7fcf2750 100644
--- a/ice40/pack.cc
+++ b/ice40/pack.cc
@@ -487,12 +487,14 @@ static void promote_globals(Context *ctx)
// Main pack function
bool pack_design(Context *ctx)
{
+ log_break();
pack_constants(ctx);
promote_globals(ctx);
pack_io(ctx);
pack_lut_lutffs(ctx);
pack_nonlut_ffs(ctx);
pack_ram(ctx);
+ log_info("Checksum: 0x%08x\n", ctx->checksum());
return true;
}