aboutsummaryrefslogtreecommitdiffstats
path: root/fpga_interchange/luts.h
diff options
context:
space:
mode:
authorMaciej Kurc <mkurc@antmicro.com>2021-07-09 15:40:06 +0200
committerMaciej Kurc <mkurc@antmicro.com>2021-07-16 12:51:28 +0200
commitd52516756cf32ecb53b75e8a6f032ebeeb427a71 (patch)
tree177e69eab87605db020a66ae1cf5a0494e6c9151 /fpga_interchange/luts.h
parentc696e885736ed052bd1d5e8fd91b42ee3bc6af9f (diff)
downloadnextpnr-d52516756cf32ecb53b75e8a6f032ebeeb427a71.tar.gz
nextpnr-d52516756cf32ecb53b75e8a6f032ebeeb427a71.tar.bz2
nextpnr-d52516756cf32ecb53b75e8a6f032ebeeb427a71.zip
Working site LUT mapping cache
Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
Diffstat (limited to 'fpga_interchange/luts.h')
-rw-r--r--fpga_interchange/luts.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/fpga_interchange/luts.h b/fpga_interchange/luts.h
index cbb817c9..7b6ce758 100644
--- a/fpga_interchange/luts.h
+++ b/fpga_interchange/luts.h
@@ -31,6 +31,8 @@ NEXTPNR_NAMESPACE_BEGIN
struct CellInfo;
struct Context;
+struct SiteLutMappingResult;
+
enum LogicLevel
{
LL_Zero,
@@ -66,6 +68,14 @@ struct LutBel
int32_t max_pin;
};
+struct SiteLutMapping
+{
+ struct LutCellMapping {
+ LutCell lut_cell;
+ };
+};
+
+
// Work forward from cell definition and cell -> bel pin map and check that
// equation is valid.
void check_equation(const LutCell &lut_cell, const dict<IdString, IdString> &cell_to_bel_map, const LutBel &lut_bel,
@@ -89,7 +99,7 @@ struct LutMapper
std::vector<CellInfo *> cells;
- bool remap_luts(const Context *ctx, pool<const LutBel *, hash_ptr_ops> *blocked_luts);
+ bool remap_luts(const Context *ctx, SiteLutMappingResult* lut_mapping, pool<const LutBel *, hash_ptr_ops> *blocked_luts);
// Determine which wires given the current mapping must be tied to the
// default constant.