Skip to main content

Semiconductor Wafer Mapping

Project description

Plots up a wafer map. Used in semiconductor processing and analysis.

Features

  • Mouse and keyboard shortcuts!

  • Knows SEMI M1-0302 wafer sizes!

  • Something else!

Installation

Install from PyPI.

pip install wafer_map

Usage

<I still need to fill this out in detail.>

The easiest way to use this to to:

  1. Import the wm_app module:

    >>> import wm_app
    
  2. Set up your data as a list of (grid_x, grid_y, value) tuples:

    >>> data = [(grid_x_1, grid_y_1, data_1),       # 1st die
    ...         (grid_x_2, grid_y_2, data_2),       # 2nd die
    ...         (grid_x_3, grid_y_3, data_3)        # 3rd die and so on
    ...         ]
    
  3. Call wm_app.WaferMapApp.

    >>> wm_app.WaferMapApp(data,
    ...                    die_size,
    ...                    center_xy,
    ...                    dia,
    ...                    edge_excl,
    ...                    flat_excl)
    

    The input parameters for WaferMapApp are:

    die_size:

    The die size in (x, y). Units are mm.

    center_xy:

    The grid (x, y) coordinate that represents the physical center of the wafer.

    dia:

    The wafer diameter. Units are in mm.

    edge_excl:

    The exclusion distance measured from the edge of the wafer. Units are in mm.

    flat_excl:

    The exclusion distance measured from the wafer flat. Units are in mm. Cannot be less than edge_excl.

  4. An image should appear. Yay! Play around with it: middle-click+drag to pan, scroll wheel to zoom. See “Keyboard Shortcuts and Mouse Usage” section.

Example

There is an example file which somewhat demonstrates how to use this package. At the very least, you can run the example file and see how this wafer mapping software looks.

Navigate to the wafer_map directory in your python installtion (../Lib/site-packages/wafer_map) and run example.py in your cmd prompt or terminal:

python example.py

Example.py generates a fake data set and then displays it in 3 different ways:

  1. As a standalone app. This requires only calling a single function in your code.

  2. As a panel added to your own wx.Frame object. This allows you to add the wafer map to your own wxPython app.

  3. As a standalone app, but this time plotting discrete (rather than continuous) data.

Nomenclature

For the entire project, the following nomenclature is used. This is to avoid confusion between a die’s coordinates on the wafer (floating-point values representing the absolute postion of a die) and a die’s grid location (integer row-column or x-y values that are sometimes printed on die).

coordinate:

Floating-point value representing the exact location of a die on the wafer. Also sometimes called ‘coord’

The coordinate origin is the center of the wafer and the center of the FloatCanvas panel.

grid:

Integer value representing the printed die. Can only be mapped to a coordinate if a grid_center is defined.

Each grid line falls on a die’s center.

grid_center:

The (float_x, float_y) tuple which is coincident with the wafer’s center coordinate (0, 0).

This is the only grid value that can be made up of floats.

row:

Alias for grid_y.

col:

Alias for grid_x.

Keyboard Shortcuts and Mouse Usage

No matter if you use the standalone app or add the panel to your own wx.Frame instance, keyboard shortcuts work. I’ve only added a few so far, but I plan on adding more.

The panel also supports mouse controls. Middle click will pan, mouse wheel will zoom in and out.

Home:

Zoom to full wafer

O:

Toggle display of wafer and exclusion outline

C:

Toggle crosshair display

L:

Toggle legend display

Notes

This package has been released to version 1.0.0. What this means is that it should be usable in an engineering-type environment. I’m starting to use it heavily myself. It’s not very customizable yet, but I don’t need that capability yet. You can see the roadmap at: https://github.com/dougthor42/wafer_map/milestones

There’s still a fair amount of code cleanup and refactoring to do, especially on the wm_legend.py module (as that was made last). So please do judge my coding style too harshly (though constructive criticism is much appreciated!)

Requires: wxPython

Current capabilities:

  1. Draw wafer outline and flat or notch.

  2. Draw edge exclusion outline.

  3. Draw wafer center crosshairs.

  4. Accept continuous or discrete data and color accordingly.

  5. Provide zoom and pan capabilities.

  6. Mouse-over to display die coordinate and value

  7. Legend Display for both continuous and discrete data

Changelog

Please see https://github.com/dougthor42/wafer_map/blob/master/CHANGELOG.md

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wafer_map-1.0.16.zip (36.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

wafer_map-1.0.16-py3-none-any.whl (37.8 kB view details)

Uploaded Python 3

wafer_map-1.0.16-py2-none-any.whl (37.8 kB view details)

Uploaded Python 2

File details

Details for the file wafer_map-1.0.16.zip.

File metadata

  • Download URL: wafer_map-1.0.16.zip
  • Upload date:
  • Size: 36.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for wafer_map-1.0.16.zip
Algorithm Hash digest
SHA256 a451735e86e3fd4d121e00ac3270db993b3c9add3b20df4628c88217575150a3
MD5 71dd6101a1435156cd49778b2c93ef37
BLAKE2b-256 6bc34504ddbf6d9d596a0cbf8d3735c4268a95129d050de553dfb5f4e96dcd22

See more details on using hashes here.

File details

Details for the file wafer_map-1.0.16-py3-none-any.whl.

File metadata

File hashes

Hashes for wafer_map-1.0.16-py3-none-any.whl
Algorithm Hash digest
SHA256 ebc7e67add8ae72105698c52d55dd947e20a1280147ecf72d2b33b677cd52f83
MD5 8a53a1f4baa0785ca85b313d96e1d2dd
BLAKE2b-256 0f2c8401669c477206139ceda417b7948c3f9361814677cf4dd7d2ab7f7d07c6

See more details on using hashes here.

File details

Details for the file wafer_map-1.0.16-py2-none-any.whl.

File metadata

File hashes

Hashes for wafer_map-1.0.16-py2-none-any.whl
Algorithm Hash digest
SHA256 b5b60c1fd4efb8eff8eb04d21649c9639a0ee15a575f6c4297db17b55ff57f05
MD5 5b8f2606f5fd6998603b6b8adc710684
BLAKE2b-256 57907f91812a822e5c7fd93579cb5089378b5f91031ae97ec73215694eaffff9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page