diff options
Diffstat (limited to 'cyclonev/arch.cc')
-rw-r--r-- | cyclonev/arch.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/cyclonev/arch.cc b/cyclonev/arch.cc index 98a09d3b..62acf9e2 100644 --- a/cyclonev/arch.cc +++ b/cyclonev/arch.cc @@ -210,6 +210,23 @@ std::vector<IdString> Arch::getBelPins(BelId bel) const return pins; } +bool Arch::isValidBelForCellType(IdString cell_type, BelId bel) const { + // Any combinational cell type can - theoretically - be placed at a combinational ALM bel + // The precise legality mechanics will be dealt with in isBelLocationValid. + IdString bel_type = getBelType(bel); + if (bel_type == id_MISTRAL_COMB) + return is_comb_cell(cell_type); + else + return bel_type == cell_type; +} + +BelBucketId Arch::getBelBucketForCellType(IdString cell_type) const { + if (is_comb_cell(cell_type)) + return id_MISTRAL_COMB; + else + return cell_type; +} + bool Arch::pack() { return true; } bool Arch::place() { return true; } bool Arch::route() { return true; } |