origen_std_lib 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/version.rb +1 -1
- data/lib/origen_std_lib/v93k.rb +33 -0
- data/templates/web/faq.md.erb +117 -0
- data/templates/web/guides/v93k/install.md.erb +124 -0
- data/templates/web/guides/v93k/intro.md.erb +5 -0
- data/templates/web/img/install1.png +0 -0
- data/templates/web/img/install2.png +0 -0
- data/templates/web/img/install3.png +0 -0
- data/templates/web/img/use1.png +0 -0
- data/templates/web/img/use2.png +0 -0
- data/templates/web/layouts/_guides.html.erb +19 -0
- data/templates/web/partials/_navbar.html.erb +10 -2
- metadata +11 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f1a67852650af0bf19859349606985c99f2a063
|
4
|
+
data.tar.gz: b5775c7ab62c12e1864dceb7a0edc297e172dea4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fcb77fc428cb22c3667b93735e5d78981fd1d495698c67b4d2b731b5842f728ba08426c1b06ec4db2d6877ff9a83d67dfba57e2ea1683b52ba9e47a147a5dc50
|
7
|
+
data.tar.gz: fbddce5eb769e6c9a667a3659626804a6f3b1253ede6a87917ab285d347a1d3e9aed332102b187ac16c5be21460d8384e5b0fc3edd96b4d366bf76c4a37294b0
|
data/config/version.rb
CHANGED
data/lib/origen_std_lib/v93k.rb
CHANGED
@@ -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
|
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
|
-
|
16
|
-
<li class="
|
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.
|
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:
|
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:
|