[interchange] Remove requirement to have wire_lut.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
This commit is contained in:
parent
c2a6f6ce62
commit
3200026e1f
@ -285,12 +285,6 @@ Arch::Arch(ArchArgs args) : args(args), disallow_site_routing(false)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// There should be a cell that is a single input LUT.
|
|
||||||
//
|
|
||||||
// Note: This assumption may be not true, revisit if this becomes a
|
|
||||||
// problem.
|
|
||||||
NPNR_ASSERT(wire_lut != nullptr);
|
|
||||||
|
|
||||||
raw_bin_constant = std::regex("[01]+", std::regex_constants::ECMAScript | std::regex_constants::optimize);
|
raw_bin_constant = std::regex("[01]+", std::regex_constants::ECMAScript | std::regex_constants::optimize);
|
||||||
verilog_bin_constant =
|
verilog_bin_constant =
|
||||||
std::regex("([0-9]+)'b([01]+)", std::regex_constants::ECMAScript | std::regex_constants::optimize);
|
std::regex("([0-9]+)'b([01]+)", std::regex_constants::ECMAScript | std::regex_constants::optimize);
|
||||||
|
@ -1065,6 +1065,9 @@ struct Arch : ArchAPI<ArchRanges>
|
|||||||
std::unordered_map<IdString, const LutCellPOD *> lut_cells;
|
std::unordered_map<IdString, const LutCellPOD *> lut_cells;
|
||||||
|
|
||||||
// Of the LUT cells, which is used for wires?
|
// Of the LUT cells, which is used for wires?
|
||||||
|
// Note: May be null in arch's without wire LUT types. Assumption is
|
||||||
|
// that these arch's don't need wire LUT's because the LUT share is simple
|
||||||
|
// enough to avoid it.
|
||||||
const LutCellPOD * wire_lut;
|
const LutCellPOD * wire_lut;
|
||||||
|
|
||||||
std::regex raw_bin_constant;
|
std::regex raw_bin_constant;
|
||||||
|
@ -363,6 +363,10 @@ void PseudoPipModel::update_site(const Context *ctx, size_t site) {
|
|||||||
cell.bel.tile = tile;
|
cell.bel.tile = tile;
|
||||||
cell.bel.index = bel_pair.first;
|
cell.bel.index = bel_pair.first;
|
||||||
|
|
||||||
|
if(ctx->wire_lut == nullptr) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
cell.type = IdString(ctx->wire_lut->cell);
|
cell.type = IdString(ctx->wire_lut->cell);
|
||||||
NPNR_ASSERT(ctx->wire_lut->input_pins.size() == 1);
|
NPNR_ASSERT(ctx->wire_lut->input_pins.size() == 1);
|
||||||
cell.lut_cell.pins.push_back(IdString(ctx->wire_lut->input_pins[0]));
|
cell.lut_cell.pins.push_back(IdString(ctx->wire_lut->input_pins[0]));
|
||||||
|
Loading…
Reference in New Issue
Block a user