origen_testers 0.45.3 → 0.45.4

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