aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-06-28 14:55:56 +0100
committergatecat <gatecat@ds0.me>2021-06-28 14:55:56 +0100
commit65a4bce9adae909c9efec6cea12e53983b5c5779 (patch)
treed0d1a275d962bc31567fcbf77330ac4cf6c82b66
parent454617f0cbdc5cda0cccb1d451935beba064f46d (diff)
downloadnextpnr-65a4bce9adae909c9efec6cea12e53983b5c5779.tar.gz
nextpnr-65a4bce9adae909c9efec6cea12e53983b5c5779.tar.bz2
nextpnr-65a4bce9adae909c9efec6cea12e53983b5c5779.zip
interchange: Allow site wires driven by more than one bel
Signed-off-by: gatecat <gatecat@ds0.me>
-rw-r--r--fpga_interchange/pseudo_pip_model.cc15
1 files changed, 2 insertions, 13 deletions
diff --git a/fpga_interchange/pseudo_pip_model.cc b/fpga_interchange/pseudo_pip_model.cc
index 2441c8a9..39718c65 100644
--- a/fpga_interchange/pseudo_pip_model.cc
+++ b/fpga_interchange/pseudo_pip_model.cc
@@ -63,8 +63,6 @@ void PseudoPipData::init_tile_type(const Context *ctx, int32_t tile_type)
sites.emplace(wire_data.site);
- int32_t driver_bel = -1;
- int32_t output_pin = -1;
for (const BelPortPOD &bel_pin : wire_data.bel_pins) {
const BelInfoPOD &bel_data = type_data.bel_data[bel_pin.bel_index];
if (bel_data.synthetic != NOT_SYNTH) {
@@ -92,18 +90,9 @@ void PseudoPipData::init_tile_type(const Context *ctx, int32_t tile_type)
continue;
}
- // Each site wire should have 1 driver!
- NPNR_ASSERT(driver_bel == -1);
- driver_bel = bel_pin.bel_index;
- output_pin = bel_pin_idx;
- }
-
- if (driver_bel != -1) {
- NPNR_ASSERT(output_pin != -1);
PseudoPipBel bel;
- bel.bel_index = driver_bel;
- bel.output_bel_pin = output_pin;
-
+ bel.bel_index = bel_pin.bel_index;
+ bel.output_bel_pin = bel_pin_idx;
pseudo_pip_bels.push_back(bel);
}
}