old_contents: #!/usr/bin/env python3
  
  from prjxray import util
  '''
  Local utils script to hold shared code of the 005-tilegrid fuzzer scripts
  '''
  
  def add_tile_bits(
          tile_name,
          tile_db,
          baseaddr,
          offset,
          frames,
          words,
          height=None,
          verbose=False):
      '''
      Record data structure geometry for the given tile baseaddr
      For most tiles there is only one baseaddr, but some like BRAM have multiple
      Notes on multiple block types:
      https://github.com/SymbiFlow/prjxray/issues/145
      '''
  
      bits = tile_db['bits']
      block_type = util.addr2btype(baseaddr)
  
      assert offset <= 100, (tile_name, offset)
      # Few rare cases at X=0 for double width tiles split in half => small negative offset
      assert offset >= 0 or "IOB" in tile_name, (tile_name, offset)
      assert 1 <= words <= 101
      assert offset + words <= 101, (
          tile_name, offset + words, offset, words, block_type)
  
      baseaddr_str = '0x%08X' % baseaddr
      block = bits.get(block_type, None)
      if block is not None:
          verbose and print(
              "%s: existing defintion for %s" % (tile_name, block_type))
          assert block["baseaddr"] == baseaddr_str
          assert block["frames"] == frames
          assert block["offset"] == offset, "%s; orig offset %s, new %s" % (
              tile_name, block["offset"], offset)
          assert block["words"] == words
  
      block = bits.setdefault(block_type, {})
  
      # FDRI address
      block["baseaddr"] = baseaddr_str
      # Number of frames this entry is sretched across
      # that is the following FDRI addresses are used: range(baseaddr, baseaddr + frames)
      block["frames"] = frames
  
      # Index of first word used within each frame
      block["offset"] = offset
  
      # related to words...
      # deprecated field? Don't worry about for now
      # DSP has some differences between height and words
      block["words"] = words
      if height is None:
          height = words
      block["height"] = height
  
new_contents: #!/usr/bin/env python3
  
  from prjxray import util
  '''
  Local utils script to hold shared code of the 005-tilegrid fuzzer scripts
  '''
  
  
  def add_tile_bits(
          tile_name,
          tile_db,
          baseaddr,
          offset,
          frames,
          words,
          height=None,
          verbose=False):
      '''
      Record data structure geometry for the given tile baseaddr
      For most tiles there is only one baseaddr, but some like BRAM have multiple
      Notes on multiple block types:
      https://github.com/SymbiFlow/prjxray/issues/145
      '''
  
      bits = tile_db['bits']
      block_type = util.addr2btype(baseaddr)
  
      assert offset <= 100, (tile_name, offset)
      # Few rare cases at X=0 for double width tiles split in half => small negative offset
      assert offset >= 0 or "IOB" in tile_name, (tile_name, offset)
      assert 1 <= words <= 101
      assert offset + words <= 101, (
          tile_name, offset + words, offset, words, block_type)
  
      baseaddr_str = '0x%08X' % baseaddr
      block = bits.get(block_type, None)
      if block is not None:
          verbose and print(
              "%s: existing defintion for %s" % (tile_name, block_type))
          assert block["baseaddr"] == baseaddr_str
          assert block["frames"] == frames
          assert block["offset"] == offset, "%s; orig offset %s, new %s" % (
              tile_name, block["offset"], offset)
          assert block["words"] == words
  
      block = bits.setdefault(block_type, {})
  
      # FDRI address
      block["baseaddr"] = baseaddr_str
      # Number of frames this entry is sretched across
      # that is the following FDRI addresses are used: range(baseaddr, baseaddr + frames)
      block["frames"] = frames
  
      # Index of first word used within each frame
      block["offset"] = offset
  
      # related to words...
      # deprecated field? Don't worry about for now
      # DSP has some differences between height and words
      block["words"] = words
      if height is None:
          height = words
      block["height"] = height
  
subject: format fix