ice40: Fail early on SB_PLL40_*_PAD cells
This commit is contained in:
parent
2b1f7875bb
commit
db31c0625b
@ -78,6 +78,13 @@ inline bool is_sb_pll40(const BaseCtx *ctx, const CellInfo *cell)
|
||||
cell->type == ctx->id("SB_PLL40_2F_CORE");
|
||||
}
|
||||
|
||||
inline bool is_sb_pll40_pad(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");
|
||||
}
|
||||
|
||||
|
||||
uint8_t sb_pll40_type(const BaseCtx *ctx, const CellInfo *cell);
|
||||
|
||||
// Convert a SB_LUT primitive to (part of) an ICESTORM_LC, swapping ports
|
||||
|
@ -595,6 +595,13 @@ static void pack_special(Context *ctx)
|
||||
std::unique_ptr<CellInfo> packed =
|
||||
create_ice_cell(ctx, ctx->id("ICESTORM_PLL"), ci->name.str(ctx) + "_PLL");
|
||||
packed_cells.insert(ci->name);
|
||||
|
||||
if (is_sb_pll40_pad(ctx, ci)) {
|
||||
// TODO(q3k): Implement these after checking their behaviour on
|
||||
// a board with exposed 'clock pads'.
|
||||
log_error("SB_PLL40_*_PAD cells are not supported yet.\n");
|
||||
}
|
||||
|
||||
for (auto attr : ci->attrs)
|
||||
packed->attrs[attr.first] = attr.second;
|
||||
for (auto param : ci->params)
|
||||
|
Loading…
Reference in New Issue
Block a user