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