diff options
author | Sergiusz Bazanski <q3k@q3k.org> | 2018-07-22 13:42:07 +0100 |
---|---|---|
committer | Sergiusz Bazanski <q3k@q3k.org> | 2018-07-24 02:38:10 +0100 |
commit | 2b1f7875bb8c3a761dfb9db21706f918b58be9c3 (patch) | |
tree | 0fb0e8c7162cd3291f32ad6588e803105902f1e3 /ice40/cells.h | |
parent | 139f7e0903b6c299b7c85bebfd7674933e952a50 (diff) | |
download | nextpnr-2b1f7875bb8c3a761dfb9db21706f918b58be9c3.tar.gz nextpnr-2b1f7875bb8c3a761dfb9db21706f918b58be9c3.tar.bz2 nextpnr-2b1f7875bb8c3a761dfb9db21706f918b58be9c3.zip |
ice40: Implement emitting PLLs
Diffstat (limited to 'ice40/cells.h')
-rw-r--r-- | ice40/cells.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/ice40/cells.h b/ice40/cells.h index 2f9c77e8..404f401c 100644 --- a/ice40/cells.h +++ b/ice40/cells.h @@ -71,6 +71,15 @@ inline bool is_sb_spram(const BaseCtx *ctx, const CellInfo *cell) { return cell- inline bool is_sb_mac16(const BaseCtx *ctx, const CellInfo *cell) { return cell->type == ctx->id("SB_MAC16"); } +inline bool is_sb_pll40(const BaseCtx *ctx, const CellInfo *cell) +{ + return cell->type == ctx->id("SB_PLL40_PAD") || cell->type == ctx->id("SB_PLL40_2_PAD") || + cell->type == ctx->id("SB_PLL40_2F_PAD") || cell->type == ctx->id("SB_PLL40_CORE") || + cell->type == ctx->id("SB_PLL40_2F_CORE"); +} + +uint8_t sb_pll40_type(const BaseCtx *ctx, const CellInfo *cell); + // Convert a SB_LUT primitive to (part of) an ICESTORM_LC, swapping ports // as needed. Set no_dff if a DFF is not being used, so that the output // can be reconnected |