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 +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:
|