origen_testers 0.45.3 → 0.45.4

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
  SHA256:
3
- metadata.gz: 6faf36c86859e96420d8f5a3ca695f7667ba11325a420229b7b450be5b1dad04
4
- data.tar.gz: 4629dce6b089f5d9cfc1a63d780b987f80d13fcf09487a0c2c0254d09571fc93
3
+ metadata.gz: 1b76b067afa328f7b2510afb5208e8171f7bec61740a81eda88304e7e4bcd5fe
4
+ data.tar.gz: a66d71937a817171248d7bd496bee8208e2482b6f3cc0db19eb0b5375e46726e
5
5
  SHA512:
6
- metadata.gz: 1be29af63ad12f1d87e5b3c39d14d4c1a561002d5c728520378c29737674dbddb821aae8e7a4ab1209fc9db56798b51c4b7802a99e8de279385c10e1201bb5a2
7
- data.tar.gz: 2fd59d9187b6d731388689bd885ccfed6e9af1e1b7c3bf97e6bbcf3992fec4fb339c6818224c3d0f9e4a5fab54c31c08f53115d2ff37f9395b2ea4c6abd1767a
6
+ metadata.gz: 7c832106032077a4d59ed06c3d4909d7847b0b65e9a953e8f8d7f8709baae25d6d2647117c080e4994b5b16f6fd1a59cedc9a7723e5648e7c3beb5e3e7714df3
7
+ data.tar.gz: bc1837f05d87eaf7bb8c3640068e754468dcd23142e15f74ad68cf17e78f12d3f03ff4f6d77fe2da444f4ddd7f1d20cb533f2a6966801438c5077a8c613eca71
data/config/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module OrigenTesters
2
2
  MAJOR = 0
3
3
  MINOR = 45
4
- BUGFIX = 3
4
+ BUGFIX = 4
5
5
  DEV = nil
6
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
7
7
  end
@@ -1041,6 +1041,20 @@ module OrigenTesters
1041
1041
  # stage = sub_name
1042
1042
  end # subroutine_overlay
1043
1043
 
1044
+ # Disable the automatic addition of the digsrc start command at the beginning of the pattern
1045
+ #
1046
+ # @example
1047
+ # tester.digsrc_skip_start :pin_or_group_name
1048
+ #
1049
+ def digsrc_skip_start(pin_or_group)
1050
+ pin_or_group = dut.pin(pin_or_group).name
1051
+ if @overlay_history[pin_or_group].nil?
1052
+ @overlay_history[pin_or_group] = { count: 0, is_digsrc: true, start_applied: true }
1053
+ else
1054
+ Origen.log.warn 'tester.digsrc_skip_start must be called before any overlay actions on the pin'
1055
+ end
1056
+ end
1057
+
1044
1058
  # Perform digsrc overlay (called by tester.cycle)
1045
1059
  def digsrc_overlay(options = {})
1046
1060
  options[:overlay] = { change_data: true }.merge(options[:overlay])
@@ -0,0 +1,41 @@
1
+ Pattern.create(name: "test_overlay_no_start") do
2
+ tester.overlay_style = :digsrc
3
+ # increase coverage by changing tdi dig src settings
4
+ tester.source_memory :digsrc do |mem|
5
+ mem.pin :tdi, size: 32
6
+ end
7
+ cc 'should get a repeat count added to this vector for digsrc start minimum distance'
8
+ tester.cycle
9
+
10
+ dut.pin(:tclk).drive(1)
11
+ dut.pin(:tdi).drive(1)
12
+ dut.pin(:tdo).assert(1)
13
+ dut.pin(:tms).drive(1)
14
+
15
+ cc 'should get a repeat 5 vector'
16
+ tester.cycle repeat: 5
17
+
18
+ tester.digsrc_skip_start :tdi_a if tester.ultraflex?
19
+ tester.digsrc_skip_start :pa if tester.ultraflex?
20
+
21
+ cc 'should get a send microcode and 1 cycle with D'
22
+ tester.cycle overlay: {overlay_str: 'dummy_str', pins: dut.pin(:tdi_a)}
23
+ cc 'should get a cycle with D and no send'
24
+ tester.cycle overlay: {overlay_str: 'dummy_str', pins: dut.pin(:tdi_a), change_data: false}
25
+ cc 'regular cycle with no D or send'
26
+ tester.cycle
27
+
28
+ cc 'cycle with 001 on pa'
29
+ dut.pin(:pa).drive!(1)
30
+ cc 'send microcode followed by DDD on pa'
31
+ dut.pin(:pa).drive(0)
32
+ tester.cycle overlay: {overlay_str: "dummy_str", pins: dut.pin(:pa)}
33
+ cc 'cycle with 001 on pa'
34
+ dut.pin(:pa).drive!(1)
35
+ cc 'send microcode, DDD on pa with repeat 5 (will send 5 sets of data)'
36
+ dut.pin(:pa).drive(0)
37
+ tester.cycle repeat: 5, overlay: {overlay_str: "dummy_str", pins: dut.pin(:pa)}
38
+ cc 'cycle with 001 on pa'
39
+ dut.pin(:pa).drive!(1)
40
+
41
+ end
@@ -7,4 +7,24 @@ automatically to any supported platform.
7
7
  There are no significant APIs in this category currently, therefore refer to the
8
8
  [Common Pattern API](<%= path "guides/pattern/common" %>) which can fully target the UltraFLEX.
9
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 <code>:digsrc</code> 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
+
10
30
  % end
@@ -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.45.3
4
+ version: 0.45.4
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-03-16 00:00:00.000000000 Z
11
+ date: 2020-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -466,6 +466,7 @@ files:
466
466
  - pattern/single_overlay_store.rb
467
467
  - pattern/subroutines.rb
468
468
  - pattern/tester_overlay.rb
469
+ - pattern/tester_overlay_no_start.rb
469
470
  - pattern/tester_store.rb
470
471
  - program/_additional_erase.rb
471
472
  - program/_efa_resources.rb
@@ -507,6 +508,7 @@ files:
507
508
  - templates/origen_guides/pattern/stil.md.erb
508
509
  - templates/origen_guides/pattern/timing.md.erb
509
510
  - templates/origen_guides/pattern/ultraflex.md.erb
511
+ - templates/origen_guides/pattern/ultraflex.md.erb~
510
512
  - templates/origen_guides/pattern/v93k.md.erb
511
513
  - templates/origen_guides/program/code.md.erb
512
514
  - templates/origen_guides/program/custom.md.erb
@@ -547,7 +549,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
547
549
  - !ruby/object:Gem::Version
548
550
  version: '0'
549
551
  requirements: []
550
- rubygems_version: 3.0.1
552
+ rubyforge_project:
553
+ rubygems_version: 2.7.7
551
554
  signing_key:
552
555
  specification_version: 4
553
556
  summary: This plugin provides Origen tester models to drive ATE type testers like