origen_testers 0.7.3 → 0.7.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
  SHA1:
3
- metadata.gz: 537ebe8a1d45eaafb63f6bb87a05eb9bcd7cb2a0
4
- data.tar.gz: aaff4423992092954e0f5cf566b2747a7822d332
3
+ metadata.gz: 583a52b3c5621f1528fe2900c6da91b6ce915ada
4
+ data.tar.gz: acc663a7769af920033b4c2cdb6a300072a5ca1a
5
5
  SHA512:
6
- metadata.gz: 8ac6a8483c8e1a0897101e56fd6bfc651fd331c1aa3c9657a2d68d87e97a2f6e91bd6ba2acd4210253059726fe000dcb73563832f233da6c9632ab9e94197e09
7
- data.tar.gz: 9f67c9b04f6eeead18c91819f458256bd518343ebf4c8550e2772436d8b6b2695b7296df80918ba114ad9f08426e30034ecd76a2c291babf59ecd09102a87e34
6
+ metadata.gz: 4f93d14161f3054614edcc9fbfdfc1c49cc213c727b1c2d2c8686a712377aa56df1b83372d5532c7c07d06d40fddcdba1dafadbe2c02ac92560fb2742332db6f
7
+ data.tar.gz: bc41fb4b51be3abc32be3e2023bf8b2619688c7f97741ba510e7ac2b6f697ee559e6f0e56df33e03d79b8022f85cf89d5ef4a50a98cb1636e1ad3c2891bf22c3
data/config/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module OrigenTesters
2
2
  MAJOR = 0
3
3
  MINOR = 7
4
- BUGFIX = 3
4
+ BUGFIX = 4
5
5
  DEV = nil
6
6
 
7
7
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
@@ -689,7 +689,6 @@ module OrigenTesters
689
689
 
690
690
  options[:high_voltage] = @use_hv_pin
691
691
  microcode "pin_setup = {#{options[:high_voltage]} high_voltage;}" if options[:high_voltage]
692
- microcode "pin_setup = {#{options[:freq_counter]} freq_count;}" if options[:freq_counter]
693
692
  microcode ''
694
693
 
695
694
  pin_list = ordered_pins.map(&:name).join(', ')
@@ -44,6 +44,10 @@ module OrigenTesters
44
44
  end
45
45
 
46
46
  def pattern_header(options = {})
47
+ # pin setup type => freq_counter is only for the J750.
48
+ # UltraFLEX has frequency counter capability behind every pin.
49
+ microcode "pin_setup = {#{options[:freq_counter]} freq_count;}" if options[:freq_counter]
50
+
47
51
  super(options) do |pin_list|
48
52
  microcode "vector ($tset, #{pin_list})"
49
53
  microcode '{'
@@ -43,8 +43,32 @@ module OrigenTesters
43
43
  @microcode[:keepalive] = 'keepalive'
44
44
  end
45
45
 
46
+ # Do a frequency measure.
47
+ #
48
+ # Write the necessary micro code to do a frequency measure on the given pin,
49
+ # optionally supply a read code to pass information to the tester.
50
+ #
51
+ # ==== Examples
52
+ # $tester.freq_count($top.pin(:d_out)) # Freq measure on pin "d_out"
53
+ # $tester.freq_count($top.pin(:d_out):readcode => 10)
46
54
  def freq_count(pin, options = {})
47
- fail 'Method freq_count not yet supported for UltraFLEX!'
55
+ options = { readcode: false
56
+ }.merge(options)
57
+
58
+ set_code(options[:readcode]) if options[:readcode]
59
+ cycle(microcode: "#{@microcode[:set_flag]} (#{@flags[0]})") # set cpuA
60
+ cycle(microcode: "#{@microcode[:set_flag]} (#{@flags[0]})") # set cpuB
61
+ cycle(microcode: "#{@microcode[:set_flag]} (#{@flags[1]})") # set cpuC
62
+ cycle(microcode: "#{@microcode[:set_flag]} (#{@flags[2]})") # set cpuD
63
+ cycle(microcode: "freq_loop_1: #{@microcode[:enable]} (#{@flags[0]})")
64
+ cycle(microcode: 'if (branch_expr) jump freq_loop_1')
65
+ pin.drive_lo
66
+ delay(2000)
67
+ pin.dont_care
68
+ cycle(microcode: "freq_loop_2: #{@microcode[:enable]} (#{@flags[1]})")
69
+ cycle(microcode: 'if (branch_expr) jump freq_loop_2')
70
+ cycle(microcode: "#{@microcode[:enable]} (#{@flags[2]})")
71
+ cycle(microcode: 'if (branch_expr) jump freq_loop_1')
48
72
  end
49
73
 
50
74
  def memory_test(options = {})
@@ -224,6 +224,13 @@ module OrigenTesters
224
224
  $tester.memory_test(pin: pin(:tdo), pin_data: :expect)
225
225
  end
226
226
 
227
+ def freq_count(options = {})
228
+ options = {
229
+ }.merge(options)
230
+
231
+ $tester.freq_count($dut.pin(:tdo), readcode: 73)
232
+ end
233
+
227
234
  # dummy flag to check for a particular design bug for this DUT
228
235
  def has_margin0_bug?
229
236
  false
@@ -0,0 +1,6 @@
1
+ # Pattern to exercise the Freq Counter feature
2
+ unless $tester.v93k?
3
+ Pattern.create do
4
+ $dut.freq_count
5
+ end
6
+ 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.7.3
4
+ version: 0.7.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: 2016-06-15 00:00:00.000000000 Z
11
+ date: 2016-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: origen
@@ -343,6 +343,7 @@ files:
343
343
  - lib/origen_testers/vector_pipeline.rb
344
344
  - pattern/dc_instr.rb
345
345
  - pattern/delay.rb
346
+ - pattern/freq_counter.rb
346
347
  - pattern/mem_test.rb
347
348
  - pattern/multi_vector.rb
348
349
  - pattern/multi_vector_plus1.rb
@@ -399,7 +400,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
399
400
  version: 1.8.11
400
401
  requirements: []
401
402
  rubyforge_project:
402
- rubygems_version: 2.6.2
403
+ rubygems_version: 2.2.2
403
404
  signing_key:
404
405
  specification_version: 4
405
406
  summary: This plugin provides Origen tester models to drive ATE type testers like