def plot_coord(coord, marker = nil)
      prepare_plot if field.nil?
      if plottable
        if coord.is_a?(String)
          found_pins = []
          owner.pins.map { |pin| found_pins << pin[1] if coord == pin[1].location.to_s }
          if marker.nil?
            marker = initial(coord.to_s)
            while @groups.index { |grpName| grpName =~ /#{marker} -/ }
              marker.next!
              marker = '0' unless marker.size < 2
            end
            found_pins.each do |pin|
              coordinates = coordinate(pin.location)
              @field[coordinates[0]][coordinates[1]] = [marker.white_on_blue + ' ']
              @groups.delete_if { |group| /#{coord.to_s}/ =~ group }
              @groups << "#{marker} - #{found_pins[0].name} - #{found_pins[0].location}"
            end
          else
            coordinates = coordinate(found_pins[0].location)
            @field[coordinates[0]][coordinates[1]] = [marker.white_on_blue + ' ']
            @groups.delete_if { |group| /#{coord.to_s}/ =~ group }
            @groups << "#{marker} - #{found_pins[0].name} - #{found_pins[0].location}"
          end
          if found_pins.size > 0
            generate_field
          else
            puts "Coordinate not recognized. Jedec convention: <row><col>. E.g., A1.\nCould be power/ground pin. .plot(\"power\") or .plot(\"ground\")."
          end
        else
          puts 'Unsupported argument type.'
        end
      end
    end
def plot_coord(coord, marker = nil)
      prepare_plot if field.nil?
      if plottable
        if coord.is_a?(String)
          found_pins = []
          owner.pins.map { |pin| found_pins << pin[1] if coord == pin[1].location.to_s }
          if marker.nil?
            marker = initial(coord.to_s)
            while @groups.index { |grpName| grpName =~ /#{marker} -/ }
              marker.next!
              marker = '0' unless marker.size < 2
            end
            found_pins.each do |pin|
              coordinates = coordinate(pin.location)
              @field[coordinates[0]][coordinates[1]] = [marker.white_on_blue + ' ']
              @groups.delete_if { |group| /#{coord.to_s}/ =~ group }
              @groups << "#{marker} - #{found_pins[0].name} - #{found_pins[0].location}"
            end
          else
            coordinates = coordinate(found_pins[0].location)
            @field[coordinates[0]][coordinates[1]] = [marker.white_on_blue + ' ']
            @groups.delete_if { |group| /#{coord.to_s}/ =~ group }
            @groups << "#{marker} - #{found_pins[0].name} - #{found_pins[0].location}"
          end
          if found_pins.size > 0
            generate_field
          else
            puts "Coordinate not recognized. Jedec convention: <row><col>. E.g., A1.\nCould be power/ground pin. .plot(\"power\") or .plot(\"ground\")."
          end
        else
          puts 'Unsupported argument type.'
        end
      end
    end
.plot_coord can be called explicitly and accepts string arguments in the form
  of jedec standard BGA coordinate naming conventions.

    $dut.package = :t4240
    $dut.package.plot_coord("A2")