Skip to main content

Master application used for steering the control applications in an ATE test environment.

Project description

Semi-ATE

Semiconductor Automated Test Equipment

GitHub Conda Supported Python versions CI-CD

GitHub release (latest SemVer) GitHub commits since latest release (by date) GitHub issues GitHub pull requests

Semi-ATE is a tester- and instruments AGNOSTIC framework for Semiconductor ATE ASIC testing projects.

This means that the system is not build around a specific instrument (let's consider an ATE tester for a moment as a super instrument), it rather focuses on organizing semiconductor testing in such a way that all use- (and special) corner cases have their well known place. This enables the users (read: DE's, TCE's, TE's & PE's) to focus on the REAL work, being the writing of good, fast and stable tests. Organizing tests into test-programs and test-programs in to flows is handled by wizards, so the only code that needs writing is the actual test! (motto: Code is our enemy)

The Semi-ATE package is written purely in Python (noarch) and provides besides libraries also a plugin to the Spyder IDE.

Packages

The Semi-ATE project is maintained in this single repository, however it is released as a set of packages (all with the same version number) to accomodate the different use-cases.

Package Name PyPI Version conda Version feedstock
Semi-ATE-common PyPI Conda (channel only) conda-forge feedstock
Semi-ATE-project-database PyPI Conda (channel only) conda-forge feedstock
Semi-ATE-sammy PyPI Conda (channel only) conda-forge feedstock
Semi-ATE-plugins PyPI Conda (channel only) conda-forge feedstock
Semi-ATE-testers PyPI Conda (channel only) conda-forge feedstock
Semi-ATE-spyder PyPI Conda (channel only) conda-forge feedstock
Semi-ATE-apps-common PyPI Conda (channel only) conda-forge feedstock
Semi-ATE-control-app PyPI Conda (channel only) conda-forge feedstock
Semi-ATE-master-app PyPI Conda (channel only) conda-forge feedstock
Semi-ATE-test-app PyPI Conda (channel only) conda-forge feedstock

Installation

Installation of the packages can be achieved via conda or pip.

Installation using pip

Each package can be installed using python -m pip install <package-name>:

python -m pip install semi-ate-common
python -m pip install semi-ate-project-database
python -m pip install semi-ate-sammy
python -m pip install semi-ate-plugins
python -m pip install semi-ate-testers
python -m pip install semi-ate-spyder
python -m pip install semi-ate-apps-common
python -m pip install semi-ate-control-app
python -m pip install semi-ate-master-app
python -m pip install semi-ate-test-app

Or all at once:

python -m pip install semi-ate-common semi-ate-project-database semi-ate-sammy semi-ate-plugins semi-ate-testers semi-ate-spyder semi-ate-apps-common semi-ate-control-app semi-ate-master-app semi-ate-test-app

Installation via Conda

To be defined

The semi-ate-master-app package

This package provides a command line tool (launch_master). In order to use this application you have to configure it first. This tool should be run on host that either runs the control application from the semi-ate-control-app package or that is connected via ethernet to further hosts running the control application. The master application controls the so-called control applications, i.e. test nodes. To do so the master sends commands to the different test nodes using MQTT messages. Among others these commands include commands for loading and unloading test programs and starting the test execution.

The muster application can be controlled using a web interface or it is controlled by some handler application.

Configuration

Configuration of the master application is done by writing a JSON file called master_config_file.json. The following key-value-pairs have to be defined:

{
    "broker_host": "127.0.0.1",
    "broker_port": 1883,
    "device_id": "SCT-82-1F",
    "sites": [
        "0"
    ],
    "Handler": "HTO92-20F",
    "environment": "F1",
    "webui_host": "127.0.0.1",
    "webui_port": "8081",
    "jobsource": "filesystem",
    "jobformat": "xml.semi-ate",
    "skip_jobdata_verification": false,
    "filesystemdatasource.path": ".",
    "filesystemdatasource.jobpattern": "le#jobname#.xml",
    "enable_timeouts": true,
    "user_settings_filepath": "master_user_settings.json",
    "site_layout": { "0": [0, 0]},
    "tester_type": "Semi-ATE Master Single Tester",
    "loglevel": 10,
    "web_root_folder": "./"
}
  • broker_host defines the ip address of the mqtt broker.
  • broker_port defines the prot of the mqtt broker.
  • site_layout defines the site layout of the different test sites.
  • device_id defines the name of the test site
  • sites defines an array containing the test node ids running the control application
  • Handler defines the name of some device handler or wafer handler, i.e. prober
  • environment defines the test environment (F1, F2, F3, P1, P2, P3)
  • webui_host defines the ip of the web interface for controlling he master application manually
  • webui_port defines the port number of the web interface
  • webui_root_path defines the URI of the web-resources, i.e. the folder containing the index.html of some web application.
  • jobsource defines the location where to find test job definitions
  • jobformat defines the format of the job definitions
  • skip_jobdata_verification defines whether the job definition has to be verified
  • filesystemdatasource.path defines the path where to find job definitions
  • filesystemdatasource.jobpattern defines the pattern for the name of the test job file. This is done by replacing #jobname# by the job id, i.e. the lot id.
  • enable_timeouts defines whether or not timeouts are enabled. If enabled the system will produce some error message if certain things like becomming ready, loading or undloading a test program etc. take to much time.
  • user_settings_filepath defines where the user specific settings are stored. These settings are set via the web interface.
  • site_layout defines for each site the layout. The layout is the start coordinate of some site
  • tester_type defines the type of he tester. This provided by the tester plugin.
  • loglevel defines the log-level of the control application

Starting the Master Application

We assume that the semi-ate-master-app package has been installed in the current python environment. Further the configuration file master_config_file.json is located in the current folder.

IMPORTANT: The configuration file has to be named master_config_file.json

(environment)> launch_master
======== Running on http://127.0.0.1:8081 ========
(Press CTRL+C to quit)
master   |22/03/2022 04:45:37 PM |INFO    |mqtt connected
master   |22/03/2022 04:45:37 PM |INFO    |Master state is connecting

Download files

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

Source Distribution

semi-ate-master-app-1.0.7.tar.gz (42.9 kB view details)

Uploaded Source

File details

Details for the file semi-ate-master-app-1.0.7.tar.gz.

File metadata

  • Download URL: semi-ate-master-app-1.0.7.tar.gz
  • Upload date:
  • Size: 42.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.10

File hashes

Hashes for semi-ate-master-app-1.0.7.tar.gz
Algorithm Hash digest
SHA256 9ece54bc76839a5a9f65b36ed144f3a461f4dd1338810640fb13be3f27c00655
MD5 6fce9808456233053945200b0a552e83
BLAKE2b-256 535c9c285e019056359a726be6abc3cf728c14431ebded29ff18b370c42c9dea

See more details on using hashes here.

Supported by

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