diff options
author | David Shah <dave@ds0.me> | 2019-05-13 12:58:15 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-13 12:58:15 +0100 |
commit | 1b6a81a8ccc6d54f3dde85c9d6202527f042454f (patch) | |
tree | f1cc43783d66302d1a4d8426b619273e9a774f53 /ice40/pack.cc | |
parent | 643d7dec4c3d0695c46d27371c43d592d68d4f90 (diff) | |
parent | e17299a1ca9ea36dcd354cacf905c7f80fb6cea9 (diff) | |
download | nextpnr-1b6a81a8ccc6d54f3dde85c9d6202527f042454f.tar.gz nextpnr-1b6a81a8ccc6d54f3dde85c9d6202527f042454f.tar.bz2 nextpnr-1b6a81a8ccc6d54f3dde85c9d6202527f042454f.zip |
Merge pull request #274 from smunaut/ice40_hfosc_trim
ice40: Add support for HFOSC trimming
Diffstat (limited to 'ice40/pack.cc')
-rw-r--r-- | ice40/pack.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/ice40/pack.cc b/ice40/pack.cc index 2ba0bb5a..390cbf57 100644 --- a/ice40/pack.cc +++ b/ice40/pack.cc @@ -1061,9 +1061,14 @@ static void pack_special(Context *ctx) create_ice_cell(ctx, ctx->id("ICESTORM_HFOSC"), ci->name.str(ctx) + "_OSC"); packed_cells.insert(ci->name); cell_place_unique(ctx, packed.get()); + packed->params[ctx->id("TRIM_EN")] = str_or_default(ci->params, ctx->id("TRIM_EN"), "0b0"); packed->params[ctx->id("CLKHF_DIV")] = str_or_default(ci->params, ctx->id("CLKHF_DIV"), "0b00"); replace_port(ci, ctx->id("CLKHFEN"), packed.get(), ctx->id("CLKHFEN")); replace_port(ci, ctx->id("CLKHFPU"), packed.get(), ctx->id("CLKHFPU")); + for (int i = 0; i < 10; i++) { + auto port = ctx->id("TRIM" + std::to_string(i)); + replace_port(ci, port, packed.get(), port); + } if (bool_or_default(ci->attrs, ctx->id("ROUTE_THROUGH_FABRIC"))) { replace_port(ci, ctx->id("CLKHF"), packed.get(), ctx->id("CLKHF_FABRIC")); } else { |