origen_std_lib 0.9.0 → 0.13.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 +5 -5
- data/config/application.rb +7 -19
- data/config/commands.rb +9 -0
- data/config/version.rb +1 -2
- data/lib/origen_std_lib/v93k.rb +17 -1
- data/{stdlib/v93k → src/advantest/smt7}/origen/.cproject +0 -0
- data/{stdlib/v93k → src/advantest/smt7}/origen/.project +0 -0
- data/src/advantest/smt7/origen/origen.cpp +18 -0
- data/{stdlib/v93k → src/advantest/smt7}/origen/origen.hpp +3 -3
- data/{stdlib/v93k → src/advantest/smt7}/origen/origen/helpers.hpp +25 -8
- data/src/advantest/smt7/origen/origen/helpers/console.cpp +94 -0
- data/src/advantest/smt7/origen/origen/helpers/misc.cpp +456 -0
- data/src/advantest/smt7/origen/origen/helpers/time.cpp +64 -0
- data/src/advantest/smt7/origen/origen/site.cpp +237 -0
- data/src/advantest/smt7/origen/origen/site.hpp +49 -0
- data/{stdlib/v93k → src/advantest/smt7}/origen/origen/test_method.hpp +1 -3
- data/src/advantest/smt7/origen/origen/test_method/base.cpp +231 -0
- data/src/advantest/smt7/origen/origen/test_method/base.hpp +155 -0
- data/src/advantest/smt7/origen/origen/test_method/dc_measurement.cpp +266 -0
- data/src/advantest/smt7/origen/origen/test_method/dc_measurement.hpp +58 -0
- data/src/advantest/smt7/origen/origen/test_method/empty.cpp +13 -0
- data/src/advantest/smt7/origen/origen/test_method/empty.hpp +24 -0
- data/src/advantest/smt7/origen/origen/test_method/frequency_measurement.cpp +133 -0
- data/src/advantest/smt7/origen/origen/test_method/frequency_measurement.hpp +46 -0
- data/src/advantest/smt7/origen/origen/test_method/functional_test.cpp +168 -0
- data/src/advantest/smt7/origen/origen/test_method/functional_test.hpp +53 -0
- data/{stdlib/v93k → src/advantest/smt7}/origen/origen/utils.hpp +1 -3
- data/src/advantest/smt7/origen/origen/utils/version.cpp +72 -0
- data/{stdlib/v93k → src/advantest/smt7}/origen/origen/utils/version.hpp +20 -21
- data/src/advantest/smt7/origen/test_methods/ApplyBin.cpp +37 -0
- data/src/advantest/smt7/origen/test_methods/DCMeasurement.cpp +90 -0
- data/src/advantest/smt7/origen/test_methods/FrequencyMeasurement.cpp +50 -0
- data/src/advantest/smt7/origen/test_methods/FunctionalTest.cpp +24 -0
- data/src/advantest/smt7/origen/test_methods/RecordBin.cpp +39 -0
- data/src/advantest/smt8/origen/common/Origen.java +334 -0
- data/src/advantest/smt8/origen/common/OrigenData.java +391 -0
- data/src/advantest/smt8/origen/common/OrigenHelpers.java +170 -0
- data/src/advantest/smt8/origen/test_methods/Base.java +265 -0
- data/src/advantest/smt8/origen/test_methods/DC_Measurement.java +302 -0
- data/src/advantest/smt8/origen/test_methods/Empty.java +12 -0
- data/src/advantest/smt8/origen/test_methods/Functional_test.java +474 -0
- data/templates/web/faq.md.erb +1 -52
- data/templates/web/guides/intro.md.erb +8 -0
- data/templates/web/guides/{v93k/intro.md.erb → v93ksmt7/capture.md.erb} +0 -2
- data/templates/web/guides/v93ksmt7/complete.md.erb +68 -0
- data/templates/web/guides/v93ksmt7/customizable.md.erb +139 -0
- data/templates/web/guides/v93ksmt7/helpers.md.erb +3 -0
- data/templates/web/guides/{v93k → v93ksmt7}/install.md.erb +1 -1
- data/templates/web/guides/v93ksmt7/integration.md.erb +3 -0
- data/templates/web/guides/v93ksmt7/intro.md.erb +8 -0
- data/templates/web/guides/v93ksmt7/patching.md.erb +3 -0
- data/templates/web/guides/v93ksmt8/intro.md.erb +9 -0
- data/templates/web/index.md.erb +23 -6
- data/templates/web/layouts/_guides.html.erb +15 -3
- data/templates/web/partials/_common_args.md.erb +13 -0
- data/templates/web/partials/_navbar.html.erb +2 -2
- metadata +52 -33
- data/stdlib/v93k/origen/origen.cpp +0 -22
- data/stdlib/v93k/origen/origen/helpers/console.cpp +0 -105
- data/stdlib/v93k/origen/origen/helpers/misc.cpp +0 -311
- data/stdlib/v93k/origen/origen/site.cpp +0 -220
- data/stdlib/v93k/origen/origen/site.hpp +0 -51
- data/stdlib/v93k/origen/origen/test_method/base.hpp +0 -156
- data/stdlib/v93k/origen/origen/test_method/dc_measurement.cpp +0 -182
- data/stdlib/v93k/origen/origen/test_method/dc_measurement.hpp +0 -59
- data/stdlib/v93k/origen/origen/test_method/frequency_measurement.cpp +0 -107
- data/stdlib/v93k/origen/origen/test_method/frequency_measurement.hpp +0 -48
- data/stdlib/v93k/origen/origen/test_method/functional_test.cpp +0 -118
- data/stdlib/v93k/origen/origen/test_method/functional_test.hpp +0 -51
- data/stdlib/v93k/origen/origen/utils/version.cpp +0 -79
- data/stdlib/v93k/origen/test_methods/ApplyBin.cpp +0 -41
- data/stdlib/v93k/origen/test_methods/DCMeasurement.cpp +0 -129
- data/stdlib/v93k/origen/test_methods/FrequencyMeasurement.cpp +0 -93
- data/stdlib/v93k/origen/test_methods/FunctionalTest.cpp +0 -94
- data/stdlib/v93k/origen/test_methods/RecordBin.cpp +0 -48
data/templates/web/faq.md.erb
CHANGED
|
@@ -54,7 +54,7 @@ Not officially. It is open source and comes with no guarantees.
|
|
|
54
54
|
|
|
55
55
|
#### So who does support it then?
|
|
56
56
|
|
|
57
|
-
Right now the Origen core team (
|
|
57
|
+
Right now the Origen core team (comprising engineers from NXP and AMD)
|
|
58
58
|
are the primary
|
|
59
59
|
maintainers and we will consider feature requests and address bug reports that are submitted by users
|
|
60
60
|
of the library.
|
|
@@ -63,55 +63,4 @@ However anyone is more then welcome to contribute bug fixes, feature additions,
|
|
|
63
63
|
documentation, etc. and ultimately we hope to see a self-sustaining community grow around
|
|
64
64
|
this project.
|
|
65
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
66
|
% end
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
% render "templates/web/layouts/guides.html" do
|
|
2
|
+
|
|
3
|
+
These guides are organized by ATE platform, select the one you are interested in:
|
|
4
|
+
|
|
5
|
+
* [Advantest V93K SMT7](<%= path 'guides/v93ksmt7/intro' %>)
|
|
6
|
+
* [Advantest V93K SMT8](<%= path 'guides/v93ksmt8/intro' %>)
|
|
7
|
+
|
|
8
|
+
% end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
% render "templates/web/layouts/guides.html" do
|
|
2
|
+
|
|
3
|
+
The following complete test methods are provided to be directly called from a test suite:
|
|
4
|
+
|
|
5
|
+
* [FunctionalTest](#Functional_Test)
|
|
6
|
+
* [DCMeasurement](#DCMeasurement)
|
|
7
|
+
* [FrequencyMeasurement](#FrequencyMeasurement)
|
|
8
|
+
|
|
9
|
+
### FunctionalTest
|
|
10
|
+
|
|
11
|
+
This test will simply execute the pattern (label) defined by the test suite and will set pass/fail
|
|
12
|
+
depending on whether any mis-compares occur during the pattern execution.
|
|
13
|
+
|
|
14
|
+
#### Arguments
|
|
15
|
+
|
|
16
|
+
<%= render "partials/common_args.md.erb", preserve_target: true %>
|
|
17
|
+
|
|
18
|
+
### DCMeasurement
|
|
19
|
+
|
|
20
|
+
This test will execute the pattern (label) defined by the test suite and then perform a voltage or
|
|
21
|
+
current measurement on the given pin.
|
|
22
|
+
|
|
23
|
+
Options exist to configure the measurement and to select whether or not to run a shutdown pattern
|
|
24
|
+
after the measurement has been taken.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
#### Arguments
|
|
28
|
+
|
|
29
|
+
* **pin (string)** - (**Required**) The name of the pin to be measured.
|
|
30
|
+
* **measure (string)** - (Optional, Default="VOLT") Define whether to measure current or voltage (the default).
|
|
31
|
+
Set to "CURR" to measure current.
|
|
32
|
+
* **settlingTime (double)** - (Optional, Default=0) Specify the time to wait after running the pattern before
|
|
33
|
+
taking the measurement, expressed in ms.
|
|
34
|
+
* **forceValue (double)** - (Optional, Default=0) The value to be forced on the pin during the measurement.
|
|
35
|
+
* **iRange (double)** - (Optional, Default=0) The current range to apply to the measurement in amps, it will
|
|
36
|
+
be calculated if not supplied (set to 0).
|
|
37
|
+
* **badc (integer)** - (Optional, Default=0) When set to 1 the measurement will be made using the board ADC
|
|
38
|
+
rather than the PPMU (the default)
|
|
39
|
+
* **applyShutdown (integer)** - (Optional, Default=1) Set to 1 to execute the pattern (label) defined
|
|
40
|
+
by the `shutdownPattern` argument after the measurement.
|
|
41
|
+
* **shutdownPattern (string)** - (Optional, Default="<PATTERN>_part1") The name of the pattern (label) to be executed after taking
|
|
42
|
+
the measurement, this argument is required if `applyShutdown` is set to 1. By default it will look for a pattern
|
|
43
|
+
named after the main pattern (label) with "_part1" appended.
|
|
44
|
+
* **checkShutdown (integer)** - (Optional, Default=1) When set to 1 the executing of the shutdown pattern
|
|
45
|
+
will be cared and the overall test will fail if any miscompares occur during the shutdown patten execution.
|
|
46
|
+
<%= render "partials/common_args.md.erb", preserve_target: true %>
|
|
47
|
+
|
|
48
|
+
### FrequencyMeasurement
|
|
49
|
+
|
|
50
|
+
Measure the frequency of a clock being output on the given pin.
|
|
51
|
+
|
|
52
|
+
The pattern run by this test must setup the device to output the clock on the given pin
|
|
53
|
+
and then run additional cycles where the data on the pin under test is digitally captured.
|
|
54
|
+
|
|
55
|
+
The period of the capture cycles must be less than that of the clock being measured.
|
|
56
|
+
The effect of different settings of the capture period and the number of capture cycles should be
|
|
57
|
+
characterized to determine the optimal settings to meet the application's particular accuracy and
|
|
58
|
+
test time goals.
|
|
59
|
+
|
|
60
|
+
* **pin (string)** - (**Required**) The name of the pin to be measured.
|
|
61
|
+
* **periodInNs (integer)** - (**Required**) The period of the pattern's capture vectors.
|
|
62
|
+
* **samples (integer)** - (Optional, Default=2000) The number of digital capture cycles made by the
|
|
63
|
+
pattern.
|
|
64
|
+
* **periodBased (integer)** - (Optional, Default=0) Set to 1 if the test limits are expressed as a
|
|
65
|
+
period instead of a frequency (the default).
|
|
66
|
+
<%= render "partials/common_args.md.erb", preserve_target: true %>
|
|
67
|
+
|
|
68
|
+
% end
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
% render "templates/web/layouts/guides.html" do
|
|
2
|
+
|
|
3
|
+
The [Complete Tests](<%= path "guides/v93ksm7/complete" %>) provide a way to rapidly build a test program using
|
|
4
|
+
off-the-shelf building blocks, however in many cases it will be desired to run a slightly customized version of these
|
|
5
|
+
tests that is tweaked in some way to suit a particular application domain or for a few specific tests.
|
|
6
|
+
|
|
7
|
+
This is where the customizable test template system should be used to get an easy way to create the
|
|
8
|
+
following types of test methods:
|
|
9
|
+
|
|
10
|
+
* Application-specific test primitives, for example a functional test method which calls an applications-specific
|
|
11
|
+
power up function at the start, or which enforces the use of a particular test port.
|
|
12
|
+
* Test-specific variations on the primitive test methods, for example a functional test which will patch/overlay
|
|
13
|
+
the pattern with some data before running and/or capture and process some data at the end.
|
|
14
|
+
|
|
15
|
+
The key goal of this system is to give test engineers the ability to implement common customization scenarios
|
|
16
|
+
while writing an absolute minimum of application-specific code.
|
|
17
|
+
|
|
18
|
+
## Concept
|
|
19
|
+
|
|
20
|
+
To create a custom test based on a template, create a test method class that inherits from one of the template classes
|
|
21
|
+
[defined in `Origen::TestMethod`](<%= path "/v93k_smt7/html/namespace_origen_1_1_test_method.html" %>), such as
|
|
22
|
+
[`FunctionalTest`](<%= path "/v93k_smt7/html/class_origen_1_1_test_method_1_1_functional_test.html" %>):
|
|
23
|
+
|
|
24
|
+
~~~cpp
|
|
25
|
+
#include "origen/test_method/functional_test.hpp"
|
|
26
|
+
|
|
27
|
+
class Functional: public Origen::TestMethod::FunctionalTest {
|
|
28
|
+
|
|
29
|
+
}
|
|
30
|
+
~~~
|
|
31
|
+
|
|
32
|
+
The test template will take care of many of the low-level details of how to create test methods in SMT7,
|
|
33
|
+
such as having to remember to call `RDI_INIT()` and the use of `ON_FIRST_INVOCATION` and friends.
|
|
34
|
+
|
|
35
|
+
To achieve this, the template takes control of the conventional SMT7 integration functions `initialize()`,
|
|
36
|
+
`run()` and `SMC_backgroundProcessing()`, which means that you should not use these within your application code.
|
|
37
|
+
Instead, use the functions that are described here and these will allow you to hook into the test's
|
|
38
|
+
lifecycle at various points during execution of the test.
|
|
39
|
+
**Note that you do not have do define all of these, only the ones that you want to use.**
|
|
40
|
+
|
|
41
|
+
#### Common Lifecycle Functions
|
|
42
|
+
|
|
43
|
+
Here is a summary of the available lifecycle functions that should be supported by a majority of the
|
|
44
|
+
templates (exceptions will be noted in the documentation for each template below):
|
|
45
|
+
|
|
46
|
+
~~~cpp
|
|
47
|
+
// This should be used to define any test methods parameters/arguments, it is a direct equivalent of the standard
|
|
48
|
+
// initialize() function.
|
|
49
|
+
function init() {
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// This will be invoked once (applied to all sites) before executing the main body of the test.
|
|
53
|
+
// It should be used to do any setup that you wish to apply to all sites.
|
|
54
|
+
function preBody() {
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// This will be invoked once for each active site and the current site number will be passed in.
|
|
58
|
+
// It should be used to do any site-specific setup.
|
|
59
|
+
function preBody(int site) {
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// This is invoked once per site and can be thought of as roughly equivalent to the standard run() function.
|
|
63
|
+
function body() {
|
|
64
|
+
// By default it calls the test methods execute() method (more on this below), and this will internally apply
|
|
65
|
+
// ON_FIRST_INVOCATION wrappers as required so you should not add these around the call to origen.
|
|
66
|
+
origen.execute();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// This will be invoked once (applied to all sites) after executing the main body of the test.
|
|
70
|
+
// It should be used to do any teardown that you wish to apply to all sites.
|
|
71
|
+
// Note that this function is called synchronously, i.e. it will block execution of the test flow until it
|
|
72
|
+
// has completed.
|
|
73
|
+
function postBody() {
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// This will be invoked once for each active site and the current site number will be passed in.
|
|
77
|
+
// It should be used to do any site-specific teardown.
|
|
78
|
+
// Note that this function is called synchronously, i.e. it will block execution of the test flow until it
|
|
79
|
+
// has completed.
|
|
80
|
+
function postBody(int site) {
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
// This will be invoked once for each active site and is intended to be the place where any processing of the
|
|
85
|
+
// test result or captured data is performed.
|
|
86
|
+
// If async is enabled then it will be called asynchronously and will not block execution of the test flow.
|
|
87
|
+
// If async is not enabled then it will be called after postBody(int site), but is otherwise equivalent.
|
|
88
|
+
function process(int site) {
|
|
89
|
+
}
|
|
90
|
+
~~~
|
|
91
|
+
|
|
92
|
+
#### Common Configuration and Execute API
|
|
93
|
+
|
|
94
|
+
All test templates expose their core functionality via an API that is launched through an object called `origen`.
|
|
95
|
+
This is intended to provide a similar look and feel to the native SMT7 RDI API which is exposed through the `rdi` object.
|
|
96
|
+
|
|
97
|
+
As mentioned above, the default `body()` function implementation will call `origen.execute()` which as the name
|
|
98
|
+
suggests will execute the test.
|
|
99
|
+
|
|
100
|
+
Configuration can be done ahead of calling `execute()`, for example a majority of test templates support the concept
|
|
101
|
+
of selecting a port to execute the pattern on, that can be done like this:
|
|
102
|
+
|
|
103
|
+
~~~cpp
|
|
104
|
+
origen.port("MY_PORT_NAME");
|
|
105
|
+
origen.execute();
|
|
106
|
+
~~~
|
|
107
|
+
|
|
108
|
+
Or, if you prefer, these can be chained together similar to the RDI API:
|
|
109
|
+
|
|
110
|
+
~~~cpp
|
|
111
|
+
origen.port("MY_PORT_NAME").execute();
|
|
112
|
+
~~~
|
|
113
|
+
|
|
114
|
+
To see what configuration options are available from a given test
|
|
115
|
+
[defined in `Origen::TestMethod`](<%= path "/v93k_smt7/html/namespace_origen_1_1_test_method.html" %>), such as
|
|
116
|
+
|
|
117
|
+
#### Asynchronous Processing
|
|
118
|
+
|
|
119
|
+
Asynchronous processing of test results is not supported yet, how to enable it will be described here when it
|
|
120
|
+
is available.
|
|
121
|
+
|
|
122
|
+
The plan is to provide a global switch that will enable/disable asynchronous processing and then an
|
|
123
|
+
individual test-level switch to allow the global setting to be overridden.
|
|
124
|
+
|
|
125
|
+
In the meantime, do all processing that could be done asynchronously within the `process(int site)` function
|
|
126
|
+
described above. Your tests will then be ready to take advantage of the asynchronous feature when it becomes available.
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
### Available Templates
|
|
130
|
+
|
|
131
|
+
There now follows some template-specific guidance, which includes some usage examples:
|
|
132
|
+
|
|
133
|
+
* [FunctionalTest](#Functional_Test)
|
|
134
|
+
* [DCMeasurement](#DCMeasurement)
|
|
135
|
+
* [FrequencyMeasurement](#FrequencyMeasurement)
|
|
136
|
+
* [Empty](#Empty)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
% end
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
% render "templates/web/layouts/guides.html" do
|
|
2
|
+
|
|
3
|
+
<div class="alert alert-danger" role="alert">
|
|
4
|
+
<strong>Sorry, Documentation Fail</strong>
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
Unfortunately this guide has not been written yet, the SMT8 library is still in initial development.
|
|
8
|
+
|
|
9
|
+
% end
|
data/templates/web/index.md.erb
CHANGED
|
@@ -4,18 +4,35 @@
|
|
|
4
4
|
%# formatting like this, but in most cases that is not required.
|
|
5
5
|
<h1><%= Origen.app.namespace %> <span style="font-size: 14px">(<%= Origen.app.version %>)</span></h1>
|
|
6
6
|
|
|
7
|
-
###
|
|
7
|
+
### Introduction
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
Advantest V93000 tester that is freely available for anyone to use.
|
|
9
|
+
OrigenStdLib aims to provide a standard ATE library with the following goals:
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
* Be agnostic to any particular company or business so that anyone can use this
|
|
12
|
+
* Be higher level than the native functionality provided by the ATE vendors - reducing the amount of low-level knowledge required by test engineers and the footprint of custom code required to be written for a particular test program application
|
|
13
|
+
* Complement the Origen test program and test pattern generators (although it can still be used standalone with flows and patterns originating from any backend flow)
|
|
14
|
+
|
|
15
|
+
It should be noted that this library does not aim to provide a common API across different ATE platforms. Instead, the goal is to provide
|
|
16
|
+
a library which has a natural look and feel on each platform, while still providing a feature set which is broadly similar
|
|
17
|
+
across all platforms.
|
|
18
|
+
|
|
19
|
+
If abstraction of the test platform is required then that is expected to be done by higher level program generators, such
|
|
20
|
+
as Origen, which can provide a common API that compiles to tests which target different ATE implementations of
|
|
21
|
+
this library.
|
|
13
22
|
|
|
14
|
-
|
|
23
|
+
Generally, this library provides three main components:
|
|
15
24
|
|
|
25
|
+
* Helper functions for general use in custom application code
|
|
26
|
+
* Complete tests for use off-the-shelf
|
|
27
|
+
* Customizable test templates that provide core functionality with the ability to customize around the edges
|
|
28
|
+
|
|
29
|
+
[See the FAQ](<%= path "faq" %>) for more background.
|
|
16
30
|
|
|
17
|
-
###
|
|
31
|
+
### Supported Platforms
|
|
18
32
|
|
|
33
|
+
OrigenStdLib currently provides libraries for the following platforms:
|
|
19
34
|
|
|
35
|
+
* [Advantest V93K SMT7](<%= path 'guides/v93ksmt7/intro' %>)
|
|
36
|
+
* [Advantest V93K SMT8](<%= path 'guides/v93ksmt8/intro' %>)
|
|
20
37
|
|
|
21
38
|
% end
|
|
@@ -4,9 +4,21 @@ title: Origen Std Lib
|
|
|
4
4
|
<%= render "partials/navbar.html", tab: :guides %>
|
|
5
5
|
|
|
6
6
|
% index = {}
|
|
7
|
-
% index[
|
|
8
|
-
%
|
|
9
|
-
%
|
|
7
|
+
% index[nil] = {
|
|
8
|
+
% intro: "Introduction",
|
|
9
|
+
% }
|
|
10
|
+
% index["V93K SMT7"] = {
|
|
11
|
+
% v93ksmt7_intro: "Introduction",
|
|
12
|
+
% v93ksmt7_install: "How to Install",
|
|
13
|
+
% v93ksmt7_helpers: "Helper Functions",
|
|
14
|
+
% v93ksmt7_complete: "Complete Tests",
|
|
15
|
+
% v93ksmt7_customizable: "Customizable Tests",
|
|
16
|
+
% v93ksmt7_patching: "Patching Patterns (Overlay)",
|
|
17
|
+
% v93ksmt7_capture: "Data Capture",
|
|
18
|
+
% v93ksmt7_integration: "Origen Integration",
|
|
19
|
+
% }
|
|
20
|
+
% index["V93K SMT8"] = {
|
|
21
|
+
% v93ksmt8_intro: "Introduction",
|
|
10
22
|
% }
|
|
11
23
|
|
|
12
24
|
% opts = options.merge(index: index, root: "guides", prompt: "Search the guides...")
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
* **port (string)** - (Optional, Default="") The name of a port to execute the pattern on, will be
|
|
2
|
+
run on all pins ('@') if a port name is not supplied.
|
|
3
|
+
* **testName (string)** - (Optional) An explicit name to be used when logging the result of this
|
|
4
|
+
test, if not given the test suite name will be used
|
|
5
|
+
* **forcePass (int)** - (Optional, Default=0) When set to 1, the test will appear to always pass in the flow (produce
|
|
6
|
+
a green box), although the actual pass/fail result value will be logged to STDF. Normally this would be
|
|
7
|
+
used for tests in the flow which are for data collection only.
|
|
8
|
+
* **onPassFlag (string)** - (Optional) The name of a test flow variable to be set if the test fails, e.g.
|
|
9
|
+
setting this to "MY_FLAG" would cause "@MY_FLAG" to be set to 1 in the event of the test passing.
|
|
10
|
+
No modification will be made to the variable if the test fails.
|
|
11
|
+
* **onFailFlag (string)** - (Optional) The name of a test flow variable to be set if the test fails, e.g.
|
|
12
|
+
setting this to "MY_FLAG" would cause "@MY_FLAG" to be set to 1 in the event of the test failing.
|
|
13
|
+
No modification will be made to the variable if the test passes.
|
|
@@ -11,14 +11,14 @@
|
|
|
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/
|
|
14
|
+
<li class="<%= options[:tab] == :guides ? 'active' : '' %>"><a href="<%= path "/guides/intro" %>">Guides</a></li>
|
|
15
15
|
|
|
16
16
|
<li class="<%= options[:tab] == :faq ? 'active' : '' %>"><a href="<%= path "/faq" %>">FAQ</a></li>
|
|
17
17
|
|
|
18
18
|
<li class="dropdown">
|
|
19
19
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">API <span class="caret"></span></a>
|
|
20
20
|
<ul class="dropdown-menu">
|
|
21
|
-
<li><a href="<%= path "/
|
|
21
|
+
<li><a href="<%= path "/v93k_smt7/html/annotated.html" %>">V93K SMT7</a></li>
|
|
22
22
|
</ul>
|
|
23
23
|
</li>
|
|
24
24
|
|
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.13.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: 2020-07-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: origen
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 0.
|
|
33
|
+
version: 0.31.0
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 0.
|
|
40
|
+
version: 0.31.0
|
|
41
41
|
description:
|
|
42
42
|
email:
|
|
43
43
|
- stephen.mcginty@nxp.com
|
|
@@ -55,34 +55,53 @@ files:
|
|
|
55
55
|
- lib/origen_std_lib_dev/interface.rb
|
|
56
56
|
- lib/tasks/origen_std_lib.rake
|
|
57
57
|
- program/prb1.rb
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
58
|
+
- src/advantest/smt7/origen/.cproject
|
|
59
|
+
- src/advantest/smt7/origen/.project
|
|
60
|
+
- src/advantest/smt7/origen/origen.cpp
|
|
61
|
+
- src/advantest/smt7/origen/origen.hpp
|
|
62
|
+
- src/advantest/smt7/origen/origen/helpers.hpp
|
|
63
|
+
- src/advantest/smt7/origen/origen/helpers/console.cpp
|
|
64
|
+
- src/advantest/smt7/origen/origen/helpers/misc.cpp
|
|
65
|
+
- src/advantest/smt7/origen/origen/helpers/time.cpp
|
|
66
|
+
- src/advantest/smt7/origen/origen/site.cpp
|
|
67
|
+
- src/advantest/smt7/origen/origen/site.hpp
|
|
68
|
+
- src/advantest/smt7/origen/origen/test_method.hpp
|
|
69
|
+
- src/advantest/smt7/origen/origen/test_method/base.cpp
|
|
70
|
+
- src/advantest/smt7/origen/origen/test_method/base.hpp
|
|
71
|
+
- src/advantest/smt7/origen/origen/test_method/dc_measurement.cpp
|
|
72
|
+
- src/advantest/smt7/origen/origen/test_method/dc_measurement.hpp
|
|
73
|
+
- src/advantest/smt7/origen/origen/test_method/empty.cpp
|
|
74
|
+
- src/advantest/smt7/origen/origen/test_method/empty.hpp
|
|
75
|
+
- src/advantest/smt7/origen/origen/test_method/frequency_measurement.cpp
|
|
76
|
+
- src/advantest/smt7/origen/origen/test_method/frequency_measurement.hpp
|
|
77
|
+
- src/advantest/smt7/origen/origen/test_method/functional_test.cpp
|
|
78
|
+
- src/advantest/smt7/origen/origen/test_method/functional_test.hpp
|
|
79
|
+
- src/advantest/smt7/origen/origen/utils.hpp
|
|
80
|
+
- src/advantest/smt7/origen/origen/utils/version.cpp
|
|
81
|
+
- src/advantest/smt7/origen/origen/utils/version.hpp
|
|
82
|
+
- src/advantest/smt7/origen/test_methods/ApplyBin.cpp
|
|
83
|
+
- src/advantest/smt7/origen/test_methods/DCMeasurement.cpp
|
|
84
|
+
- src/advantest/smt7/origen/test_methods/FrequencyMeasurement.cpp
|
|
85
|
+
- src/advantest/smt7/origen/test_methods/FunctionalTest.cpp
|
|
86
|
+
- src/advantest/smt7/origen/test_methods/RecordBin.cpp
|
|
87
|
+
- src/advantest/smt8/origen/common/Origen.java
|
|
88
|
+
- src/advantest/smt8/origen/common/OrigenData.java
|
|
89
|
+
- src/advantest/smt8/origen/common/OrigenHelpers.java
|
|
90
|
+
- src/advantest/smt8/origen/test_methods/Base.java
|
|
91
|
+
- src/advantest/smt8/origen/test_methods/DC_Measurement.java
|
|
92
|
+
- src/advantest/smt8/origen/test_methods/Empty.java
|
|
93
|
+
- src/advantest/smt8/origen/test_methods/Functional_test.java
|
|
83
94
|
- templates/web/faq.md.erb
|
|
84
|
-
- templates/web/guides/
|
|
85
|
-
- templates/web/guides/
|
|
95
|
+
- templates/web/guides/intro.md.erb
|
|
96
|
+
- templates/web/guides/v93ksmt7/capture.md.erb
|
|
97
|
+
- templates/web/guides/v93ksmt7/complete.md.erb
|
|
98
|
+
- templates/web/guides/v93ksmt7/customizable.md.erb
|
|
99
|
+
- templates/web/guides/v93ksmt7/helpers.md.erb
|
|
100
|
+
- templates/web/guides/v93ksmt7/install.md.erb
|
|
101
|
+
- templates/web/guides/v93ksmt7/integration.md.erb
|
|
102
|
+
- templates/web/guides/v93ksmt7/intro.md.erb
|
|
103
|
+
- templates/web/guides/v93ksmt7/patching.md.erb
|
|
104
|
+
- templates/web/guides/v93ksmt8/intro.md.erb
|
|
86
105
|
- templates/web/img/install1.png
|
|
87
106
|
- templates/web/img/install2.png
|
|
88
107
|
- templates/web/img/install3.png
|
|
@@ -91,6 +110,7 @@ files:
|
|
|
91
110
|
- templates/web/index.md.erb
|
|
92
111
|
- templates/web/layouts/_basic.html.erb
|
|
93
112
|
- templates/web/layouts/_guides.html.erb
|
|
113
|
+
- templates/web/partials/_common_args.md.erb
|
|
94
114
|
- templates/web/partials/_navbar.html.erb
|
|
95
115
|
- templates/web/release_notes.md.erb
|
|
96
116
|
homepage:
|
|
@@ -111,8 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
111
131
|
- !ruby/object:Gem::Version
|
|
112
132
|
version: 1.8.11
|
|
113
133
|
requirements: []
|
|
114
|
-
|
|
115
|
-
rubygems_version: 2.6.7
|
|
134
|
+
rubygems_version: 3.1.4
|
|
116
135
|
signing_key:
|
|
117
136
|
specification_version: 4
|
|
118
137
|
summary: Test program interface drivers for the Origen tester standard library
|