origen_std_lib 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 02307391c68ec5b25893847224f546c0351b0c70
4
- data.tar.gz: 87152340d9f9075d485451655bf8669f5684825e
3
+ metadata.gz: 0f1a67852650af0bf19859349606985c99f2a063
4
+ data.tar.gz: b5775c7ab62c12e1864dceb7a0edc297e172dea4
5
5
  SHA512:
6
- metadata.gz: a75556d60c14f0a5e7ec6f8f3611945a3af54141a2943568be8442b129dbf719ff3c1337d6a658a47c498f29acf8869d9ce1eb3b0c9f55ed544ec746433665ea
7
- data.tar.gz: f7013a87de39b5c71fe8099a96140a6b5c8def865db2a12ca72462a596860c4b3487183178ddecf2d88c0d0365de203afa39aab5ba31897c0957ac182d45b7c1
6
+ metadata.gz: fcb77fc428cb22c3667b93735e5d78981fd1d495698c67b4d2b731b5842f728ba08426c1b06ec4db2d6877ff9a83d67dfba57e2ea1683b52ba9e47a147a5dc50
7
+ data.tar.gz: fbddce5eb769e6c9a667a3659626804a6f3b1253ede6a87917ab285d347a1d3e9aed332102b187ac16c5be21460d8384e5b0fc3edd96b4d366bf76c4a37294b0
data/config/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module OrigenStdLib
2
2
  MAJOR = 0
3
- MINOR = 6
3
+ MINOR = 7
4
4
  BUGFIX = 0
5
5
  DEV = nil
6
6
 
@@ -42,6 +42,39 @@ module OrigenStdLib
42
42
  pin: [:string, nil],
43
43
  samples: [:integer, 2000],
44
44
  period_in_ns: [:integer, nil]
45
+ },
46
+
47
+ record_bin: {
48
+ bin: [:integer, nil],
49
+ softbin: [:integer, nil]
50
+ },
51
+
52
+ apply_bin: {
45
53
  }
46
54
  end
55
+
56
+ # Record the given bin / softbin
57
+ def record_bin(options = {})
58
+ if tester.v93k?
59
+ n = 'delayed'
60
+ n += "_bin#{options[:bin]}" if options[:bin]
61
+ n += "_sbin#{options[:softbin]}" if options[:softbin]
62
+ i = test_suites.add(n)
63
+ i.test_method = test_methods.origen.record_bin(options)
64
+ # The bins are included here to insert them into the flow, which is required by SMT to
65
+ # allow them to be applied later.
66
+ # However the bins really refer to some parent test, so we tell the TestIds plugin (if
67
+ # it is being used), not to consider them attached to this record bin test suite.
68
+ test(i, options.merge(test_ids: :notrack))
69
+ end
70
+ end
71
+
72
+ # Bins out the device if a delayed bin has been set
73
+ def apply_bin(options = {})
74
+ if tester.v93k?
75
+ i = test_suites.add('ApplyBin')
76
+ i.test_method = test_methods.origen.apply_bin
77
+ test(i, options.merge(on_fail: { render: 'multi_bin;' }, continue: true))
78
+ end
79
+ end
47
80
  end
@@ -0,0 +1,117 @@
1
+ % render "layouts/basic.html", tab: :faq do
2
+
3
+ # Frequently Asked Questions
4
+
5
+ ## General
6
+
7
+ #### Do I need to use Origen to use this?
8
+
9
+ No. This library complements the Origen eco-system but it has no dependencies on it.
10
+ It can be used with a test program and patterns that originate from any tool
11
+ chain.
12
+
13
+ #### Do I need to pay for it?
14
+
15
+ No. It is licensed under the [MIT License](https://tldrlegal.com/license/mit-license) which means
16
+ that you can do whatever you like with it.
17
+
18
+ #### Is it production worthy?
19
+
20
+ Sort of. We are using it in some minor production scenarios within NXP, however it is still
21
+ in the very early stages of development and the APIs are subject to change until we reach version 1.
22
+
23
+ #### Will it break my test program when I upgrade to a new version of the library?
24
+
25
+ No. This project will follow the [semantic versioning](http://semver.org/) standard
26
+ which means that we must be fully backwards-compatible between major version releases, which
27
+ should not happen very often (maybe every few years).
28
+
29
+ However, until we hit major version 1, some minor instability is allowed while we
30
+ get the foundational architecture and APIs worked out.
31
+ Having said that, this library will soon be qualified in some production test programs within NXP
32
+ and at that point any API breakages will be as painful for us as it would be for anyone else,
33
+ so major flux is not expected.
34
+
35
+ Of course bugs can and do happen, and we would recommend that you follow normal checkout
36
+ procedures to qualify your test program when updating the Origen library.
37
+
38
+ #### Can I contribute?
39
+
40
+ Yes! NXP is releasing this to the industry with the hope that we can work together to create
41
+ common infrastructure that goes beyond the foundation provided by the ATE vendors.
42
+
43
+ Please [contact us](http://origen-sdk.org/origen/community/) if you need help to get started.
44
+
45
+
46
+ #### Is it supported by the ATE vendors?
47
+
48
+ No. Although we hope in time that the vendor's apps engineers will become active
49
+ contributors to this library and will start to use it in their own applications.
50
+
51
+ #### Is it supported by NXP?
52
+
53
+ Not officially. It is open source and comes with no guarantees.
54
+
55
+ #### So who does support it then?
56
+
57
+ Right now the Origen core team (who are mainly all NXP employees today, but we hope that will change),
58
+ are the primary
59
+ maintainers and we will consider feature requests and address bug reports that are submitted by users
60
+ of the library.
61
+
62
+ However anyone is more then welcome to contribute bug fixes, feature additions,
63
+ documentation, etc. and ultimately we hope to see a self-sustaining community grow around
64
+ this project.
65
+
66
+ #### What platforms do you intend to support?
67
+
68
+ Initially we are developing this as an offshoot of some new test programs we are making for
69
+ the Advantest V93K platform.
70
+
71
+ We do expect to start to adding similar features for Teradyne platforms (likely J570 and UltraFLEX)
72
+ next year.
73
+
74
+ ## V93K Specific
75
+
76
+ #### Why do we need this?
77
+
78
+ The standard test method library that comes with SmarTest for AC and DC tests, is no longer
79
+ recommended by Advantest.
80
+
81
+ However, while its replacement (RDI) is a high-level API in terms of the tester hardware, it is
82
+ still a low level
83
+ API in terms of a complete test. Anyone who wants to implement even a basic test, has
84
+ to write a custom test method from scratch instead of just picking up an existing test
85
+ method off the shelf.
86
+
87
+ This project aims to fill that void and provide a modern library of off-the-shelf test
88
+ methods that adhere to the latest Advantest guidelines.
89
+
90
+ #### I will probably still need some custom tests, can this help with those?
91
+
92
+ Yes. The off-the-shelf test methods provided by this library are very thin wrappers around
93
+ a high level Origen API, which implements high level functions such as "run a functional test",
94
+ "run a pattern and take a DC measurement", etc.
95
+ Each of these functions provides a standard set of callback points so that your test program can easily
96
+ hook into their execution in order to add your own customizations.
97
+
98
+ Additionally, as well as complete test methods, this project also aims to provide a rich
99
+ library of helper functions
100
+ that can be used when writing your own tests.
101
+
102
+ #### Does it perform well?
103
+
104
+ Yes. It uses the latest RDI APIs recommended by Advantest under the hood and it will in future
105
+ fully support background data-processing using the SmartCalc framework.
106
+
107
+ #### Why is the library not installed at system level?
108
+
109
+ We want to encourage the users of the library to look inside it, so that they can begin to understand
110
+ it, be empowered to do front line debug, and be able to experiment with adding new features.
111
+ Distributing it as a binary for installation at system level would add a significant barrier
112
+ to the open and inclusive way of working that we want to encourage.
113
+
114
+ Installing it within the test program itself also makes the test programs self contained and
115
+ therefore more portable between test systems.
116
+
117
+ % end
@@ -0,0 +1,124 @@
1
+ % render "templates/web/layouts/guides.html" do
2
+
3
+ <style>
4
+ img { margin: 20px 0; }
5
+ </style>
6
+
7
+ This document describes how to obtain the Origen V93K library
8
+ and then install it within a test program.
9
+
10
+ The guide is split into two parts:
11
+
12
+ * [Part 1](#Part_1) - Describes how to obtain and add the library to your test program. Everyone must
13
+ do this part; for example when you have no plans to use it directly in your own code,
14
+ but you want to use another 3rd party library which depends on Origen.
15
+
16
+ * [Part 2](#Part_2) - Describes the additional steps that are required if you want to use the Origen
17
+ APIs within your own code.
18
+
19
+
20
+ ### Part 1
21
+
22
+ #### Get the Code
23
+
24
+ The library is installed by placing a complete copy of the source code within your test program's
25
+ top-level directory (the standard place to put test method libraries).
26
+
27
+ [See the FAQ](<%= path "faq/#Why_is_the_library_not_installed_at_system_level?" %>) for why this
28
+ approach has been chosen.
29
+
30
+ If you have access to the web and have Git installed, the easiest
31
+ way is to check it out directly from Github:
32
+
33
+ ~~~text
34
+ cd your/test/program
35
+ git clone https://github.com/Origen-SDK/origen_std_lib.git
36
+ ~~~
37
+
38
+ Then run these commands anytime you want to change version, substituting the version reference as
39
+ appropriate (note that this will blow away any local edits that you may have made to the library):
40
+
41
+ ~~~text
42
+ cd your/test/program/origen_std_lib
43
+ git pull
44
+ git reset --hard <%= Origen.app.version.prefixed %>
45
+ ~~~
46
+
47
+ Alternatively, you can always [download a specific version of the library from our releases page](https://github.com/Origen-SDK/origen_std_lib/releases).
48
+
49
+ #### Create a preload Symlink
50
+
51
+ A symlink then needs to be created to add the Origen library to the preload folder within the
52
+ device directory, this ensures
53
+ that it is loaded before any 3rd party libraries that depend on it:
54
+
55
+ ~~~text
56
+ mkdir -p your/device/testmethod/sh_lib\-EL5\-64bit/preload
57
+ pushd your/device/testmethod/sh_lib\-EL5\-64bit/preload
58
+ ln -s ../liborigen.so liborigen.so
59
+ popd
60
+ ~~~
61
+
62
+
63
+ #### Add the Library to your Workspace
64
+
65
+ With the source code in place, the last step is to make sure that it can be referenced through your
66
+ test program's workspace.
67
+
68
+ If it has not been automatically detected, then **right-click** within the **Project Explorer** pane
69
+ and select **"Import..."**:
70
+
71
+
72
+ <p style="text-align: center">
73
+ <img src="<%= path "img/install1.png" %>" height="300">
74
+ </p>
75
+
76
+
77
+ Then select **"93000"** -> **"Test Method Project"** on the next screen:
78
+
79
+
80
+ <p style="text-align: center">
81
+ <img src="<%= path "img/install2.png" %>" height="450">
82
+ </p>
83
+
84
+ Accept the defaults on the next screen, making sure that the **"origen"** checkbox is enabled:
85
+
86
+ <p style="text-align: center">
87
+ <img src="<%= path "img/install3.png" %>" height="450">
88
+ </p>
89
+
90
+
91
+ The Origen test methods will now be available from the test method selector once you build
92
+ the program, and any references to Origen from other libraries should now be valid.
93
+
94
+ If you do experience any issues at this point, please comment below to get help.
95
+
96
+
97
+ ### Part 2
98
+
99
+ If you want to use the Origen library within your own test method library for the first time,
100
+ then these additional steps are required.
101
+
102
+ From the **"Project Explorer"** pane, **right-click** your library and select **"Properties"**.
103
+
104
+ Then select the options shown below to add Origen to your project's include path:
105
+
106
+ <p style="text-align: center">
107
+ <img src="<%= path "img/use1.png" %>" height="600">
108
+ </p>
109
+
110
+ It should end up like this, with a new entry for Origen that is relative to the top-level
111
+ workspace:
112
+
113
+ <p style="text-align: center">
114
+ <img src="<%= path "img/use2.png" %>" height="600">
115
+ </p>
116
+
117
+ To check if everything is hooked up correctly, you can add this to one of your source files
118
+ and see if it builds:
119
+
120
+ ~~~cpp
121
+ require "origen.hpp"
122
+ ~~~
123
+
124
+ % end
@@ -0,0 +1,5 @@
1
+ % render "templates/web/layouts/guides.html" do
2
+
3
+ Hello
4
+
5
+ % end
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,19 @@
1
+ ---
2
+ title: Origen Std Lib
3
+ ---
4
+ <%= render "partials/navbar.html", tab: :guides %>
5
+
6
+ % index = {}
7
+ % index["V93K"] = {
8
+ % v93k_intro: "Introduction",
9
+ % v93k_install: "How to Install",
10
+ % }
11
+
12
+ % opts = options.merge(index: index, root: "guides", prompt: "Search the guides...")
13
+ % render "doc_helpers/searchable.html", options.merge(opts) do
14
+
15
+ <%= yield %>
16
+
17
+ <%= disqus_comments %>
18
+
19
+ % end
@@ -11,9 +11,17 @@
11
11
  </div>
12
12
  <div id="navbar" class="collapse navbar-collapse">
13
13
  <ul class="nav navbar-nav">
14
+ <li class="<%= options[:tab] == :guides ? 'active' : '' %>"><a href="<%= path "/guides/v93k/intro" %>">Guides</a></li>
15
+
14
16
  <li class="<%= options[:tab] == :faq ? 'active' : '' %>"><a href="<%= path "/faq" %>">FAQ</a></li>
15
- <li class="<%= options[:tab] == :v93k ? 'active' : '' %>"><a href="<%= path "/v93k/annotated.html" %>">V93K</a></li>
16
- <li class="<%= options[:tab] == :api ? 'active' : '' %>"><a href="<%= path "/api/" %>">API</a></li>
17
+
18
+ <li class="dropdown">
19
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">API <span class="caret"></span></a>
20
+ <ul class="dropdown-menu">
21
+ <li><a href="<%= path "/v93k/annotated.html" %>">V93K</a></li>
22
+ </ul>
23
+ </li>
24
+
17
25
  <li><a href="https://github.com/Origen-SDK/origen_std_lib">Github</a></li>
18
26
  <li class="<%= options[:tab] == :release ? 'active' : '' %>"><a href="<%= path "/release_notes" %>">Release Notes</a></li>
19
27
  </ul>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: origen_std_lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McGinty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-01 00:00:00.000000000 Z
11
+ date: 2017-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -55,8 +55,17 @@ files:
55
55
  - lib/origen_std_lib_dev/interface.rb
56
56
  - lib/tasks/origen_std_lib.rake
57
57
  - program/prb1.rb
58
+ - templates/web/faq.md.erb
59
+ - templates/web/guides/v93k/install.md.erb
60
+ - templates/web/guides/v93k/intro.md.erb
61
+ - templates/web/img/install1.png
62
+ - templates/web/img/install2.png
63
+ - templates/web/img/install3.png
64
+ - templates/web/img/use1.png
65
+ - templates/web/img/use2.png
58
66
  - templates/web/index.md.erb
59
67
  - templates/web/layouts/_basic.html.erb
68
+ - templates/web/layouts/_guides.html.erb
60
69
  - templates/web/partials/_navbar.html.erb
61
70
  - templates/web/release_notes.md.erb
62
71
  homepage: