@@ -865,6 +865,15 @@ void IOPlacer::defineSlots()
865865 findSlots (hor_layers_, Edge::left);
866866
867867 findSlotsForTopLayer ();
868+
869+ if (netlist_io_pins_->getIOPins ().size () > slots_.size ()) {
870+ logger_->error (PPL,
871+ 24 ,
872+ " Number of IO pins ({}) exceeds maximum number of available "
873+ " positions ({})." ,
874+ netlist_io_pins_->getIOPins ().size (),
875+ slots_.size ());
876+ }
868877}
869878
870879void IOPlacer::findSections (int begin,
@@ -1290,8 +1299,10 @@ void IOPlacer::printConfig(bool annealing)
12901299 logger_->info (PPL, 1 , " Number of slots {}" , slots_.size ());
12911300 logger_->info (PPL, 2 , " Number of I/O {}" , netlist_->numIOPins ());
12921301 logger_->metric (" floorplan__design__io" , netlist_->numIOPins ());
1293- logger_->info (
1294- PPL, 3 , " Number of I/O w/sink {}" , netlist_io_pins_->numIOPins ());
1302+ logger_->info (PPL,
1303+ 3 ,
1304+ " Number of I/O w/sink {}" ,
1305+ netlist_io_pins_->numIOPins () - zero_sink_ios_.size ());
12951306 logger_->info (PPL, 4 , " Number of I/O w/o sink {}" , zero_sink_ios_.size ());
12961307 if (!annealing) {
12971308 logger_->info (PPL, 5 , " Slots per section {}" , slots_per_section_);
@@ -1905,15 +1916,6 @@ void IOPlacer::run(bool random_mode)
19051916 initIOLists ();
19061917 defineSlots ();
19071918
1908- if (netlist_io_pins_->getIOPins ().size () > slots_.size ()) {
1909- logger_->error (PPL,
1910- 24 ,
1911- " Number of IO pins ({}) exceeds maximum number of available "
1912- " positions ({})." ,
1913- netlist_io_pins_->getIOPins ().size (),
1914- slots_.size ());
1915- }
1916-
19171919 initMirroredPins ();
19181920 initConstraints ();
19191921
0 commit comments