origen_testers 0.51.3 → 0.51.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: 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