aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-06-28 16:27:04 +0100
committerGitHub <noreply@github.com>2021-06-28 16:27:04 +0100
commit78c965141f25892986589976476c237372d9406d (patch)
tree23cecdebebc4501b0330a9346ae8ae5481a937d4
parent7115dd3393a5d2de986521eb8776b072fd562aff (diff)
parent65a4bce9adae909c9efec6cea12e53983b5c5779 (diff)
downloadnextpnr-78c965141f25892986589976476c237372d9406d.tar.gz
nextpnr-78c965141f25892986589976476c237372d9406d.tar.bz2
nextpnr-78c965141f25892986589976476c237372d9406d.zip
Merge pull request #736 from YosysHQ/gatecat/pp-multi-output
interchange: Allow site wires driven by more than one bel
-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);
}
}