openfpga/src/utils/rr_gsb_utils.cpp
/********************************************************************
 * Find if a X-direction or Y-direction Connection Block contains
 * routing tracks only (zero configuration bits and routing multiplexers)
 *******************************************************************/
Find if a X-direction or Y-direction Connection Block contains
routing tracks only (zero configuration bits and routing multiplexers)
Find if a X - direction or Y - direction Connection Block contains routing tracks only ( zero configuration bits and routing multiplexers )
bool connection_block_contain_only_routing_tracks(const RRGSB& rr_gsb,
                                                  const t_rr_type& cb_type) {
  bool routing_track_only = true;
  std::vector<enum e_side> cb_sides = rr_gsb.get_cb_ipin_sides(cb_type);
  for (size_t side = 0; side < cb_sides.size(); ++side) {
    enum e_side cb_ipin_side = cb_sides[side];
    SideManager side_manager(cb_ipin_side);
    if (0 < rr_gsb.get_num_ipin_nodes(cb_ipin_side)) { 
      routing_track_only = false;
      break;
    }
  }
  return routing_track_only;
}
bool connection_block_contain_only_routing_tracks ( const RRGSB & rr_gsb , const t_rr_type & cb_type ) { bool routing_track_only = true ; std :: vector < enum e_side > cb_sides = rr_gsb . get_cb_ipin_sides ( cb_type ) ; for ( size_t side = 0 ; side < cb_sides . size ( ) ; ++ side ) { enum e_side cb_ipin_side = cb_sides [ side ] ; SideManager side_manager ( cb_ipin_side ) ; if ( 0 < rr_gsb . get_num_ipin_nodes ( cb_ipin_side ) ) { routing_track_only = false ; break ; } } return routing_track_only ; }
Find if a X-direction or Y-direction Connection Block contains
 routing tracks only (zero configuration bits and routing multiplexers)
Find if a X - direction or Y - direction Connection Block contains routing tracks only ( zero configuration bits and routing multiplexers )
/* Find routing multiplexers on the sides of a Connection block where IPIN nodes locate */