The stdf package

[Tags:gpl, library, program]

[Skip to Readme]

Properties

Versions 0.1.0.0, 0.2.0.0
Dependencies aeson (==0.8.*), base (==4.7.*), base64-bytestring (==1.0.*), binary (==0.7.*), bytestring (==0.10.*), containers (>=0.5), data-binary-ieee754 (>=0.4), split (==0.2.*), stdf (>=0.2), text (==1.1.*), time (>=1.4), unix-time (>=0.3), zlib (>=0.5) [details]
License GPL-2
Author Michael Fox
Maintainer 415fox@gmail.com
Category Data
Home page https://github.com/gitfoxi/Stdf
Uploaded Mon Oct 13 17:10:40 UTC 2014 by m
Distributions NixOS:0.2.0.0
Downloads 398 total (3 in the last 30 days)
Votes
0 []
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Readme for stdf

Readme for stdf-0.2.0.0

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.

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.