origen_testers 0.51.3 → 0.51.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: 3762e544f419c1c77e9f1d670c7203cd44e9ad6fef0246463f62c77e8592be92
4
- data.tar.gz: 3c2e4679fae95dbb6f9976be317bbcf6c9fe3f8eff113d40fbdafe68cea06973
3
+ metadata.gz: '09276262e65db795a4ffe2fe26e6836607fd2c75bf279d652baacc35c3fdcdf4'
4
+ data.tar.gz: 3216437c32107ef156b639005c153529ee19d53871a2330f62c0a2816f17caa2
5
5
  SHA512:
6
- metadata.gz: 563af43372ac16a7159e4f1ca6d8aa8aed2fc630dc9224f477cb427332f76ec9ada304428caa15695cf48e7923fa3243154de71bc12b737e170d5370946a44f3
7
- data.tar.gz: 2674ab9dda1e9b8e6a7816d5cab6add7eb9dc44b037ac2b12ef46a5d2473324632034faf88cf34998d501140eda7545a7ac19a8e0710ffb062c5523f93bdff49
6
+ metadata.gz: 5bdb430e032bdf00efb5f4c67b9b18c5c4f3fae20d5413c48f31052d99560f42a9d18bcabe291bf3223f067abb34eeb857813f73c05fa40a2180e3ef2c728ed6
7
+ data.tar.gz: 17d7dbe630c36fba16baa9154d976a628899587632ad8d3b4ecd7edcb4283e127c09e82cd9cb5891ce7b4a2e939a82a1c18bafc82dd98e6a9ebcfca0f3b3e69d
data/config/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module OrigenTesters
2
2
  MAJOR = 0
3
3
  MINOR = 51
4
- BUGFIX = 3
4
+ BUGFIX = 4
5
5
  DEV = nil
6
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
7
7
  end
@@ -103,7 +103,7 @@ module OrigenTesters
103
103
  alias_method :pinlist, :pins
104
104
 
105
105
  def initialize(pins:, context:)
106
- @pins = pins.map(&:to_sym)
106
+ @pins = pins.map(&:strip).map(&:to_sym)
107
107
  super(context: context, type: :pinlist)
108
108
  end
109
109
  end
@@ -33,6 +33,8 @@ module OrigenTesters
33
33
  imports[val.gsub(';', '')] = type
34
34
  elsif l.strip.empty?
35
35
  # Just whitespace. Ignore this, but don't throw an error
36
+ elsif !(l =~ Regexp.new(/vector/)).nil?
37
+ # line break between vector keyword and pinlist, ignore
36
38
  else
37
39
  Origen.app!.fail!("Unable to parse pattern frontmatter, at line: #{i}")
38
40
  end
@@ -19,7 +19,7 @@ module OrigenTesters
19
19
 
20
20
  @platform = 'j750'
21
21
  @splitter_config = {
22
- pinlist_start: /^vector/,
22
+ pinlist_start: /\$tset/,
23
23
  vectors_start: /^{/,
24
24
  vectors_end: /^}/,
25
25
  vectors_include_start_line: false,
@@ -30,6 +30,32 @@ module OrigenTesters
30
30
  true
31
31
  end
32
32
 
33
+ # returns the orderd pins with groups decomposed into individual pins
34
+ def flattened_ordered_pins
35
+ if @flattened_ordered_pins.nil?
36
+ @flattened_ordered_pins = []
37
+ ordered_pins.each do |p|
38
+ if p.is_a?(Origen::Pins::PinCollection)
39
+ p.each { |ip| @flattened_ordered_pins << ip }
40
+ else
41
+ @flattened_ordered_pins << p
42
+ end
43
+ end
44
+ end
45
+ @flattened_ordered_pins
46
+ end
47
+
48
+ def output_group_definition(grp, grp_name)
49
+ line = "\"#{grp_name}\" = '"
50
+ grp.each_with_index do |pin, i|
51
+ unless i == 0
52
+ line << '+'
53
+ end
54
+ line << pin.name.to_s
55
+ end
56
+ microcode " #{line}';"
57
+ end
58
+
33
59
  # An internal method called by Origen to create the pattern header
34
60
  def pattern_header(options = {})
35
61
  options = {
@@ -42,7 +68,7 @@ module OrigenTesters
42
68
 
43
69
  microcode ''
44
70
  microcode 'Signals {'
45
- ordered_pins.each do |pin|
71
+ flattened_ordered_pins.each do |pin|
46
72
  line = ''
47
73
  line << "#{pin.name} "
48
74
  if pin.direction == :input
@@ -58,14 +84,13 @@ module OrigenTesters
58
84
 
59
85
  microcode ''
60
86
  microcode 'SignalGroups {'
61
- line = "\"#{ordered_pins_name || 'ALL'}\" = '"
62
- ordered_pins.each_with_index do |pin, i|
63
- unless i == 0
64
- line << '+'
65
- end
66
- line << pin.name.to_s
87
+ # output pin group definitions used in this pattern
88
+ ordered_pins.each do |p|
89
+ output_group_definition(p, p.name.to_s) if p.is_a?(Origen::Pins::PinCollection)
67
90
  end
68
- microcode " #{line}';"
91
+
92
+ # output the all pin group
93
+ output_group_definition(flattened_ordered_pins, "#{ordered_pins_name || 'ALL'}")
69
94
  microcode '}'
70
95
 
71
96
  microcode ''
@@ -120,7 +145,7 @@ module OrigenTesters
120
145
  end
121
146
  unless wave_number
122
147
  lines = []
123
- ordered_pins.each do |pin|
148
+ flattened_ordered_pins.each do |pin|
124
149
  if pin.direction == :input || pin.direction == :io
125
150
  line = "#{pin.name} { 01 { "
126
151
  wave = pin.drive_wave if tester.timeset.dut_timeset
@@ -128,7 +153,7 @@ module OrigenTesters
128
153
  line << "'#{t}ns' "
129
154
  if v == 0
130
155
  line << 'D'
131
- elsif v == 0
156
+ elsif v == 1
132
157
  line << 'U'
133
158
  else
134
159
  line << 'D/U'
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.51.3
4
+ version: 0.51.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: 2023-09-14 00:00:00.000000000 Z
11
+ date: 2024-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -601,7 +601,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
601
601
  - !ruby/object:Gem::Version
602
602
  version: '0'
603
603
  requirements: []
604
- rubygems_version: 3.2.3
604
+ rubygems_version: 3.1.6
605
605
  signing_key:
606
606
  specification_version: 4
607
607
  summary: This plugin provides Origen tester models to drive ATE type testers like