origen_testers 0.7.3 → 0.7.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
  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