aboutsummaryrefslogtreecommitdiffstats
path: root/mistral/arch.h
diff options
context:
space:
mode:
Diffstat (limited to 'mistral/arch.h')
-rw-r--r--mistral/arch.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/mistral/arch.h b/mistral/arch.h
index ff006881..dd684dfe 100644
--- a/mistral/arch.h
+++ b/mistral/arch.h
@@ -214,6 +214,7 @@ struct ArchRanges : BaseArchRanges
using AllBelsRangeT = const std::vector<BelId> &;
using TileBelsRangeT = std::vector<BelId>;
using BelPinsRangeT = std::vector<IdString>;
+ using CellBelPinRangeT = const std::vector<IdString> &;
// Wires
using AllWiresRangeT = AllWireRange;
using DownhillPipRangeT = UpDownhillPipRange;
@@ -315,11 +316,17 @@ struct Arch : BaseArch<ArchRanges>
// -------------------------------------------------
+ const std::vector<IdString> &getBelPinsForCellPin(const CellInfo *cell_info, IdString pin) const override
+ {
+ return cell_info->pin_data.at(pin).bel_pins;
+ }
+
bool isValidBelForCellType(IdString cell_type, BelId bel) const override;
BelBucketId getBelBucketForCellType(IdString cell_type) const override;
// -------------------------------------------------
+ void assignArchInfo() override;
bool pack() override;
bool place() override;
bool route() override;
@@ -350,6 +357,10 @@ struct Arch : BaseArch<ArchRanges>
void assign_comb_info(CellInfo *cell) const; // lab.cc
void assign_ff_info(CellInfo *cell) const; // lab.cc
+ void lab_pre_route(); // lab.cc
+ void assign_control_sets(uint32_t lab); // lab.cc
+ void reassign_alm_inputs(uint32_t lab, uint8_t alm); // lab.cc
+
// -------------------------------------------------
bool is_io_cell(IdString cell_type) const; // io.cc