origen_testers 0.48.1 → 0.48.2

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
- SHA1:
3
- metadata.gz: 4d062217b6f69bd8190818c2b24c2574bb163dab
4
- data.tar.gz: 9b139b2ef824933744d66c817baba75524ff7d3b
2
+ SHA256:
3
+ metadata.gz: 55301a17d683ca18d323223ba90def92f9d4696152f160e2cd48f6a60f34fa01
4
+ data.tar.gz: 1049c5cd883d006bba7702acf5090355de254c3e44e8ff76b391b9a10a610199
5
5
  SHA512:
6
- metadata.gz: 5f0e2c810aa3f8826897a16099274fc65d307c1650dab5d60ca9d3ef84da37e390932d3802c5e4980f81304cefff12b6b31de53ee798ad132f9e708cc3aa03df
7
- data.tar.gz: b1bf66931f6056f6ae314715b7e9b368534cb13b5a4bed46e364f2318e80fe57d07fd50e071adc158b8d29a3129ab49ecb724e16fa52e3e344dcd379d21b9413
6
+ metadata.gz: c8065dab6a6d37ae9c6e8346c6cba7c4a95be66360edfb667727921f85e5ba712172b5266bb7eba4280426c70294342fdea1d6b17fc79997c92e5dab3f3a3bbd
7
+ data.tar.gz: f52e174c381f347ae489a5c5cced814a844675b5ee0b13f33e7cf2d7c43617efbfe2dffe51818eafa3a63655eb1e749486974776b86dcfe467f22553331a6922
@@ -1,7 +1,7 @@
1
1
  module OrigenTesters
2
2
  MAJOR = 0
3
3
  MINOR = 48
4
- BUGFIX = 1
4
+ BUGFIX = 2
5
5
  DEV = nil
6
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
7
7
  end
@@ -10,10 +10,15 @@ module OrigenTesters
10
10
  def on_test(node)
11
11
  super
12
12
  ins = node.find(:object).value
13
- if ins.respond_to?(:lo_limit) && (ins.lo_limit || ins.hi_limit) || ins.respond_to?(:lo) && (ins.lo || ins.hi)
13
+
14
+ # allow defer limits when limits are only given in sub tests
15
+ if ins.respond_to?(:defer_limits)
14
16
  if ins.defer_limits
15
17
  completed_lines.last.opcode = 'Test-defer-limits'
16
18
  end
19
+ end
20
+
21
+ if ins.respond_to?(:lo_limit) && (ins.lo_limit || ins.hi_limit) || ins.respond_to?(:lo) && (ins.lo || ins.hi)
17
22
  limit = completed_lines.last.dup
18
23
  limit.type = :use_limit
19
24
  limit.opcode = 'Use-Limit'
@@ -285,6 +285,31 @@ module OrigenTesters
285
285
  end
286
286
  end
287
287
 
288
+ def meas_multi_limits(name, options = {})
289
+ options = {
290
+ duration: :static
291
+ }.merge(options)
292
+
293
+ name = "measmulti_#{name}" unless name.to_s =~ /measmulti/
294
+
295
+ if tester.uflex?
296
+ ins = test_instances.functional(name)
297
+ ins.set_wait_flags(:a) if options[:duration] == :dynamic
298
+ ins.pin_levels = options.delete(:pin_levels) if options[:pin_levels]
299
+ ins.defer_limits = options[:defer_limits]
300
+
301
+ # some made up sub test limits
302
+ options[:sub_tests] = [sub_test('limit1', lo: 0, hi: 7), sub_test('limit2', lo: 3, hi: 8)]
303
+
304
+ pname = "#{name}_pset"
305
+ patsets.add(pname, [{ pattern: "#{name}.PAT" },
306
+ { pattern: 'nvm_global_subs.PAT', start_label: 'subr' }])
307
+ ins.pattern = pname
308
+
309
+ flow.test(ins, options)
310
+ end
311
+ end
312
+
288
313
  def meas(name, options = {})
289
314
  options = {
290
315
  duration: :static
@@ -28,6 +28,8 @@ Flow.create interface: 'OrigenTesters::Test::Interface' do
28
28
  end
29
29
 
30
30
  if tester.uflex?
31
+ meas_multi_limits :bin_now, tnum: 3000, bin: 119, soft_bin: 2
32
+ meas_multi_limits :bin_later, tnum: 3000, bin: 119, soft_bin: 2, defer_limits: true
31
33
  log "Test of ultraflex render API"
32
34
  line = flow.ultraflex.use_limit
33
35
  line.units = "Hz"
@@ -0,0 +1,30 @@
1
+ % render "layouts/guides.html" do
2
+
3
+ This page will be used to document any UltraFLEX-only APIs related to pattern generation,
4
+ however the goal is to have as few of these as possible so that Origen pattern source code can re-target
5
+ automatically to any supported platform.
6
+
7
+ There are no significant APIs in this category currently, therefore refer to the
8
+ [Common Pattern API](<%= path "guides/pattern/common" %>) which can fully target the UltraFLEX.
9
+
10
+ ### DigSrc
11
+
12
+ UltraFlex supports <code>:digsrc</code> as a <code>tester.overlay_style</code> set like this:
13
+
14
+ ~~~ruby
15
+ tester.overlay_style = :digsrc
16
+ ~~~
17
+
18
+ By default Origen will automatically place the digsrc start opcode at the beginning of the resulting pattern
19
+ when overlay is used. In some cases (like when the pattern is used in a pattern set that has already started
20
+ the instrument in a previous pattern, or possibly in svm_patterns) this behavior is undesirable.
21
+
22
+ The insertion of this start opcode can be disabled by placing the following code **before** any overlay operations
23
+ for a given pin.
24
+
25
+ ~~~ruby
26
+ tester.digsrc_skip_start :pin_or_group_name if tester.ultraflex?
27
+ # Overlay operations can happen after this point
28
+ ~~~
29
+
30
+ % end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: origen_testers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.48.1
4
+ version: 0.48.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen McGinty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-27 00:00:00.000000000 Z
11
+ date: 2020-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -543,6 +543,7 @@ files:
543
543
  - templates/origen_guides/pattern/stil.md.erb
544
544
  - templates/origen_guides/pattern/timing.md.erb
545
545
  - templates/origen_guides/pattern/ultraflex.md.erb
546
+ - templates/origen_guides/pattern/ultraflex.md.erb~
546
547
  - templates/origen_guides/pattern/v93k.md.erb
547
548
  - templates/origen_guides/program/charz.md.erb
548
549
  - templates/origen_guides/program/code.md.erb
@@ -584,8 +585,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
584
585
  - !ruby/object:Gem::Version
585
586
  version: '0'
586
587
  requirements: []
587
- rubyforge_project:
588
- rubygems_version: 2.6.14.4
588
+ rubygems_version: 3.1.4
589
589
  signing_key:
590
590
  specification_version: 4
591
591
  summary: This plugin provides Origen tester models to drive ATE type testers like