packages feed

stdf-0.2.0.0: Readme.md

Data.Stdf
=========

Structured Test Data Format (STDF) is used to log test data by semiconductor automated test equipment (ATE).

There's a couple of good, open-source libraries for parsing STDF, notably [PyStdf](https://github.com/cmars/pystdf).

Latest version: 0.2

The Data.Stdf advantage
-----------------------

1. Haskell
2. Fast


Install
-------

    cabal install stdf

Or for the latest revision, clone and build from here.

Usage
-----

Here's an example of converting STDF to JSON. (What else would you want to do
with it?)

    import Data.Stdf
    import qualified Data.ByteString.Lazy.Char8 as BL
    import Data.Aeson

    -- unparsed records have type Raw for the time being
    notRaw :: Rec -> Bool
    notRaw (Raw _) = False
    notRaw _       = True

    main = do
        raw <- BL.readFile "test.stdf"
        let recs = parse raw
        let goodRecs = filter notRaw recs
        mapM_ (BL.putStrLn . encode) goodRecs


Included Examples Applications
------------------------------

* WaferMap -- prints a pretty wafermap like this:

```
$ Examples/WaferMap test.stdf
File: test.stdf
.   .   .   .   .   11  11  11  11  11  .   .   .   .   .   .
.   .   .   11  11  11  11  6   1   6   11  11  11  .   .   .
.   .   11  11  1   11  11  11  1   11  1   1   11  11  .   .
.   1   1   1   11  1   1   1   1   6   6   6   1   1   11  .
203 11  11  11  11  11  1   6   11  1   1   11  1   11  11  .
11  11  11  11  1   11  6   1   1   1   11  11  11  11  11  11
11  11  11  11  1   1   11  1   11  6   1   11  1   11  11  11
203 11  11  1   1   11  6   1   11  212 6   1   11  11  11  .
.   200 6   11  1   1   1   1   1   6   11  1   1   11  11  .
.   .   11  11  11  11  1   1   1   11  1   1   1   11  .   .
.   .   .   11  11  1   11  11  1   11  11  11  11  .   .   .
.   .   .   .   .   11  11  11  11  200 212 .   .   .   .   .
```

* StdfToJson -- prints each Stdf record as a one-line JSON object for easy importing into other languages for further processing


Performance
-----------

Performance is very good but can be 50% better if you build with `-O2`.
However compiling takes forever with `-O2`.


Not Implemented
----------------

### Non-Intel floating-point and endianness

It really blows my mind that Stdf expects the parser to support any N CPU bit
encodings. I won't do it.

### Some tricky records and fields

Not yet covering all fields of all Stdf records.
Several interesting optional fields in PTR, MPR and FTR are not yet processed.