origen 0.59.4 → 0.60.0

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: 16b5e4aa6124b67155547b10129eab41ef8c875bdaff3699bb14e404bd92d9f5
4
- data.tar.gz: aafc5587e6a436d9e2418ca2fee24a5a8733b7fb63e8ffe082c4dd37d8f250b8
3
+ metadata.gz: 7b89041bc7a6067a7945d3b9cae3415771f2a270c3f6496a217d8b27916c2211
4
+ data.tar.gz: a6c3ac53db78a810b77c0cb23c99fdb1d35fd05ec451c658f710c2501822bd03
5
5
  SHA512:
6
- metadata.gz: a728c16c96cd708cdd9cab9125ee83a2613105b47485b3345d036e6cb6050839563530890edf0550cbcd941812edfa2b5685514aaccd96804f248b4abc1f1683
7
- data.tar.gz: 856a497042c8fedce4e3977fd45661b4a758331eca93642842fb2b8b47c9a336ec2c71bc30b234c8a6d6e5327da2a93d9ef081143f4e8abcec75b159146e0710
6
+ metadata.gz: c2d17382ac902d0391e7d2f748e5166ff6264ba2c10529b72dc5074bbb33aab30e4558e495082221a29e7365e483e2cc8f7e2517d229200519a5bef9cf1b27e8
7
+ data.tar.gz: 66b8c763603a908bab112da936042f6e6e127b961acc52ba06d2d1e2b2d783d28480dda944d9dfd7fdadb24f3a98aa30a1f065fff069d37ea6d9213f4d64ff9e
data/config/commands.rb CHANGED
@@ -17,7 +17,7 @@ when "tags"
17
17
  when "specs"
18
18
  Origen.app.session.origen_core[:mode] = 'debug'
19
19
  require "rspec"
20
- exit RSpec::Core::Runner.run(['spec'])
20
+ exit RSpec::Core::Runner.run($ARGV.empty? ? ['spec'] : $ARGV)
21
21
 
22
22
  when "examples", "test"
23
23
  Origen.app.session.origen_core[:mode] = 'debug'
data/config/version.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Origen
2
2
  MAJOR = 0
3
- MINOR = 59
4
- BUGFIX = 4
3
+ MINOR = 60
4
+ BUGFIX = 0
5
5
  DEV = nil
6
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
7
7
  end
@@ -103,7 +103,11 @@ module Origen
103
103
  # not be an issue except when testing Origen and generating and compiling within
104
104
  # the same thread, but clearing this here doesn't seem to do any harm.
105
105
  Origen.file_handler.default_extension = nil
106
- Origen.log.info "Compiling... #{relative_path_to(file)}" unless options[:quiet]
106
+ begin
107
+ Origen.log.info "Compiling... #{relative_path_to(file)}" unless options[:quiet]
108
+ rescue
109
+ Origen.log.info "Compiling... #{file}" unless options[:quiet]
110
+ end
107
111
  Origen.log.info " Created... #{relative_path_to(output_file(file, options))}" unless options[:quiet]
108
112
  stats.completed_files += 1 if options[:collect_stats]
109
113
  if is_erb?(file)
@@ -132,6 +132,13 @@ module Origen
132
132
  line_size = 150
133
133
  end
134
134
  line_size -= 16 if tester.try(:sim?)
135
+ # This should only occur when $tester.handshake has been called on the V93K or a similar API
136
+ # which splits a pattern up until multiple outputs.
137
+ # This is a quick patch to skip rendering an execution profile for pattern parts 1 to n, instead
138
+ # of crashing.
139
+ # It should be possible to get an execution profile in these cases if someone were to invest the
140
+ # time in it to workout why this variable is not set upstream in these cases.
141
+ return unless @cycle_count_stop
135
142
  cycles_per_tick = (@cycle_count_stop / (line_size * 1.0)).ceil
136
143
  if tester.try(:sim?)
137
144
  execution_time = tester.execution_time_in_ns / 1_000_000_000.0
@@ -193,7 +200,7 @@ module Origen
193
200
  elsif time < 1.s
194
201
  "%.#{number_decimal_places}fms" % (time * 1_000)
195
202
  else
196
- "%.#{number_decimal_places}fs" % tick_time
203
+ "%.#{number_decimal_places}fs" % time
197
204
  end
198
205
  end
199
206
 
data/lib/origen/loader.rb CHANGED
@@ -116,62 +116,75 @@ module Origen
116
116
 
117
117
  # If a block definition exists for the given model, then this will load it and apply it to
118
118
  # the model.
119
+ # if options[:inherit] is passed, it will first try to load the files for the class name contained
120
+ # in that option, even if its from a plugin app
119
121
  # Returns true if a model is found and loaded, otherwise nil.
120
122
  def self.load_block(model, options = {})
121
123
  model = model.model # Ensure we have a handle on the model and not its controller
122
124
  loaded = nil
123
- if app = options[:app] || model.app
125
+ if local_app = options[:app] || model.app
124
126
  if options[:path]
125
- full_paths = Array(options[:path])
127
+ local_full_paths = Array(options[:path])
126
128
  else
127
- full_paths = model.class.to_s.split('::')
128
- full_paths.shift # Throw away the app namespace
129
- full_paths = [full_paths.join('/')]
129
+ local_full_paths = model.class.to_s.split('::')
130
+ local_full_paths.shift # Throw away the app namespace
131
+ local_full_paths = [local_full_paths.join('/')]
130
132
  end
131
- full_paths.each do |full_path|
132
- paths = full_path.to_s.split('/')
133
- key = ''
134
- only = Array(options[:only]) if options[:only]
135
- except = Array(options[:except]) if options[:except]
136
- path = paths.map(&:underscore).join('/')
137
- # If the path refers to a nested sub-block then don't load the full hierarchy since they
138
- # don't support inheritance or derivatives, modify the paths array so that only the sub-block
139
- # level will be loaded and nothing else.
140
- paths = [path] if app.blocks_files[path] && app.blocks_files[path][:_sub_block]
141
- # These will be loaded first, followed by the rest in an undefined order.
142
- # Attributes and parameters are first so that they may be referenced in the other files.
143
- # Sub-blocks was added early due to a corner case issue that could be encountered if the pins or
144
- # regs imported an Origen exported file that defined a module with the same name as a sub-block
145
- # class, in that case the sub-block class would not be auto-loaded.
146
- load_first = [:attributes, :parameters, :sub_blocks]
133
+ app_paths_map = { local_app => local_full_paths }
134
+ if options[:inherit]
135
+ inherit_full_paths = options[:inherit].split('::')
136
+ inherit_app = Origen.app(inherit_full_paths.shift.underscore.to_sym)
137
+ inherit_full_paths = [inherit_full_paths.join('/')]
138
+ # merge to get inherit ordered in the beginning
139
+ app_paths_map = { inherit_app => inherit_full_paths }.merge(app_paths_map)
140
+ end
141
+ # load the inherit files, then the current app's block files
142
+ app_paths_map.each do |app, full_paths|
143
+ full_paths.each do |full_path|
144
+ paths = full_path.to_s.split('/')
145
+ key = ''
146
+ only = Array(options[:only]) if options[:only]
147
+ except = Array(options[:except]) if options[:except]
148
+ path = paths.map(&:underscore).join('/')
149
+ # If the path refers to a nested sub-block then don't load the full hierarchy since they
150
+ # don't support inheritance or derivatives, modify the paths array so that only the sub-block
151
+ # level will be loaded and nothing else.
152
+ paths = [path] if app.blocks_files[path] && app.blocks_files[path][:_sub_block]
153
+ # These will be loaded first, followed by the rest in an undefined order.
154
+ # Attributes and parameters are first so that they may be referenced in the other files.
155
+ # Sub-blocks was added early due to a corner case issue that could be encountered if the pins or
156
+ # regs imported an Origen exported file that defined a module with the same name as a sub-block
157
+ # class, in that case the sub-block class would not be auto-loaded.
158
+ load_first = [:attributes, :parameters, :sub_blocks]
147
159
 
148
- load_first.each do |type|
149
- unless (only && !only.include?(type)) || (except && except.include?(type))
150
- with_parameters_transaction(type) do
151
- paths.each_with_index do |path, i|
152
- key = i == 0 ? path.underscore : "#{key}/#{path.underscore}"
153
- if app.blocks_files[key] && app.blocks_files[key][type]
154
- app.blocks_files[key][type].each do |f|
155
- if type == :attributes
156
- success = load_attributes(f, model)
157
- else
158
- success = load_block_file(f, model)
160
+ load_first.each do |type|
161
+ unless (only && !only.include?(type)) || (except && except.include?(type))
162
+ with_parameters_transaction(type) do
163
+ paths.each_with_index do |path, i|
164
+ key = i == 0 ? path.underscore : "#{key}/#{path.underscore}"
165
+ if app.blocks_files[key] && app.blocks_files[key][type]
166
+ app.blocks_files[key][type].each do |f|
167
+ if type == :attributes
168
+ success = load_attributes(f, model)
169
+ else
170
+ success = load_block_file(f, model)
171
+ end
172
+ loaded ||= success
159
173
  end
160
- loaded ||= success
161
174
  end
162
175
  end
163
176
  end
164
177
  end
165
178
  end
166
- end
167
179
 
168
- # Now load the rest
169
- paths.each_with_index do |path, i|
170
- key = i == 0 ? path.underscore : "#{key}/#{path.underscore}"
171
- if app.blocks_files[key]
172
- app.blocks_files[key].each do |type, files|
173
- unless type == :_sub_block || load_first.include?(type) || (only && !only.include?(type)) || (except && except.include?(type))
174
- files.each { |f| success = load_block_file(f, model); loaded ||= success }
180
+ # Now load the rest
181
+ paths.each_with_index do |path, i|
182
+ key = i == 0 ? path.underscore : "#{key}/#{path.underscore}"
183
+ if app.blocks_files[key]
184
+ app.blocks_files[key].each do |type, files|
185
+ unless type == :_sub_block || load_first.include?(type) || (only && !only.include?(type)) || (except && except.include?(type))
186
+ files.each { |f| success = load_block_file(f, model); loaded ||= success }
187
+ end
175
188
  end
176
189
  end
177
190
  end
@@ -48,7 +48,7 @@ module Origen
48
48
  end
49
49
  if x.respond_to?(:is_an_origen_model?)
50
50
  x.send(:_initialized)
51
- Origen::Loader.load_block(x)
51
+ Origen::Loader.load_block(x, options)
52
52
  end
53
53
  if x.respond_to?(:register_callback_listener)
54
54
  Origen.after_app_loaded do |app|
@@ -23,7 +23,7 @@ module Origen
23
23
  PACKAGE_SCOPED_ATTRIBUTES = [:location, :dib_assignment, :dib_meta]
24
24
 
25
25
  # Pin Types, 'digital' and 'analog' are legacy types kept for backwards compatibility
26
- TYPES = [:digital, :analog, :signal, :ground, :power, :virtual]
26
+ TYPES = [:analog, :digital, :signal, :ground, :power, :virtual]
27
27
 
28
28
  attr_accessor :order
29
29
  # Inverts pin states for drive and compare, can be useful if a timing set change requires clocks to drive low for example when all pattern logic has been set up to drive them high.
@@ -90,7 +90,7 @@ module Origen
90
90
  @open_drain = options[:open_drain]
91
91
  @ext_pullup = options[:ext_pullup]
92
92
  @ext_pulldown = options[:ext_pulldown]
93
- @type = options[:type].nil? ? determine_type : options[:type]
93
+ @type = options[:type]
94
94
  @dib_assignment = [] # Array to handle multi-site testing
95
95
  @size = 1
96
96
  @value = 0
@@ -1183,17 +1183,6 @@ module Origen
1183
1183
 
1184
1184
  private
1185
1185
 
1186
- def determine_type
1187
- class_type = self.class.to_s.split('::').last.downcase
1188
- if class_type == 'pin'
1189
- return :signal
1190
- else
1191
- pin_type_match = class_type.match(/^(\S+)pin$/)
1192
- return if pin_type_match.nil?
1193
- pin_type_match[1].to_sym
1194
- end
1195
- end
1196
-
1197
1186
  def primary_group=(group)
1198
1187
  @primary_group = group
1199
1188
  end
@@ -574,6 +574,16 @@ module Origen
574
574
  }.merge(options)
575
575
  result = []
576
576
 
577
+ # Shows the bits that have changed from the reset value of the register/bits.
578
+ # Currently logs it to the console window using Origen logger.
579
+ def changed_bits(options = {})
580
+ temp = named_bits.select { |name, bits| bits.data != bits.reset_val }
581
+ temp.each do |r|
582
+ Origen.log.info "\t\t#{self.name}.#{r[0]} : #{r[1].value.to_hex}".bold.blue
583
+ end
584
+ Origen.log.info ' '
585
+ end
586
+
577
587
  # test if @lookup has any values stored as an array
578
588
  # if so it means there is a split group of bits
579
589
  # process that differently to a single bit or continuous range of bits
@@ -418,7 +418,7 @@ module Origen
418
418
  if centralized_site_config
419
419
  # The first site configs found will exist in Origen core, and they contain the default values.
420
420
  # We want the centralized config to load right after those.
421
- centralized_index = -(@configs.select { |c| c.path.start_with?(Origen.top.to_s) }.size + 1)
421
+ centralized_index = -(@configs.select { |c| c.path.start_with?(File.expand_path('../../../')) }.size + 1)
422
422
  @configs.insert(centralized_index, Config.new(path: centralized_site_config, parent: self))
423
423
  end
424
424
 
@@ -317,10 +317,36 @@ module Origen
317
317
  # been instantiated yet. This is not supported yet for instantiated sub-blocks since
318
318
  # there are probably a lot more corner-cases to consider, and hopefully no one will
319
319
  # really need this anyway.
320
- if sub_blocks[name] && !sub_blocks[name].is_a?(Placeholder)
321
- fail "You have already defined a sub-block named #{name} within class #{self.class}"
320
+ # Note that override is to recreate an existing sub-block, not adding additional
321
+ # attributes to an existing one
322
+ if options[:override]
323
+ sub_blocks.delete(name)
324
+ if options[:class_name]
325
+ begin
326
+ constantizable = !!options[:class_name].constantize
327
+ rescue NameError
328
+ constantizable = false
329
+ end
330
+ # this is to handle the case where a previously instantiated subblock wont allow
331
+ # the current class name to exist
332
+ # e.g. NamespaceA::B::C
333
+ # => NameSpaceX::Y::Z
334
+ # After requiring the files, constants become sane again:
335
+ # e.g. NamespaceA::B::C
336
+ # => NameSpaceA::B::C
337
+ if constantizable && (options[:class_name] != options[:class_name].constantize.to_s)
338
+ block_dir = options[:block_file] || _find_block_dir(options)
339
+ Dir.glob("#{block_dir}/*.rb").each do |file|
340
+ require file
341
+ end
342
+ end
343
+ end
344
+ else
345
+ if sub_blocks[name] && !sub_blocks[name].is_a?(Placeholder)
346
+ fail "You have already defined a sub-block named #{name} within class #{self.class}"
347
+ end
322
348
  end
323
- if respond_to?(name)
349
+ if respond_to?(name) && !(singleton_class.instance_methods.include?(name) && options[:override])
324
350
  callers = Origen.split_caller_line caller[0]
325
351
  Origen.log.warning "The sub_block defined at #{Pathname.new(callers[0]).relative_path_from(Pathname.pwd)}:#{callers[1]} is overriding an existing method called #{name}"
326
352
  end
@@ -404,6 +430,33 @@ module Origen
404
430
 
405
431
  private
406
432
 
433
+ # @api private
434
+ # find the block directory path containing the namespace of options[:class_name]
435
+ def _find_block_dir(options, current_path = nil, remaining_namespace = nil)
436
+ current_path ||= Pathname.new("#{Origen.root}/app/blocks")
437
+ remaining_namespace ||= options[:class_name].split('::')[1..-1].map(&:underscore)
438
+ current_namespace = remaining_namespace.shift
439
+ if current_namespace
440
+ if current_path.join(current_namespace).exist?
441
+ return _find_block_dir(options, current_path.join(current_namespace), remaining_namespace)
442
+ elsif current_path.join("derivatives/#{current_namespace}").exist?
443
+ return _find_block_dir(options, current_path.join("derivatives/#{current_namespace}"), remaining_namespace)
444
+ elsif current_path.join("sub_blocks/#{current_namespace}").exist?
445
+ return _find_block_dir(options, current_path.join("sub_blocks/#{current_namespace}"), remaining_namespace)
446
+ else
447
+ Origen.log.error "Could not find block dir for namespace #{options[:class_name]}!"
448
+ fail
449
+ end
450
+ else
451
+ if current_path.join('model.rb').exist?
452
+ return current_path.to_s
453
+ else
454
+ Origen.log.error "Could not find block dir for namespace #{options[:class_name]}!"
455
+ fail
456
+ end
457
+ end
458
+ end
459
+
407
460
  def instantiate_sub_block(name, klass, options)
408
461
  return sub_blocks[name] unless sub_blocks[name].is_a?(Placeholder)
409
462
  sub_blocks[name] = klass.new(options.merge(parent: self, name: name))
@@ -501,8 +554,8 @@ module Origen
501
554
  rescue NameError => e
502
555
  raise if e.message !~ /^uninitialized constant (.*)$/ || tmp_class !~ /#{Regexp.last_match(1)}/
503
556
  begin
504
- tmp_class = class_name.to_s
505
- klass = eval(class_name)
557
+ tmp_class = "::#{class_name}"
558
+ klass = eval(tmp_class)
506
559
  rescue NameError => e
507
560
  raise if e.message !~ /^uninitialized constant (.*)$/ || tmp_class !~ /#{Regexp.last_match(1)}/
508
561
  begin
@@ -1,54 +1,53 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- origen_app_generators (2.1.1)
4
+ origen_app_generators (2.2.0)
5
5
  origen (>= 0.40.2)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activesupport (4.2.11.1)
10
+ activesupport (4.2.11.3)
11
11
  i18n (~> 0.7)
12
12
  minitest (~> 5.1)
13
13
  thread_safe (~> 0.3, >= 0.3.4)
14
14
  tzinfo (~> 1.1)
15
- ast (2.4.0)
15
+ ast (2.4.1)
16
16
  astrolabe (1.3.1)
17
17
  parser (~> 2.2)
18
18
  byebug (9.0.6)
19
- coderay (1.1.2)
19
+ coderay (1.1.3)
20
20
  colored (1.2)
21
21
  colorize (0.8.1)
22
- concurrent-ruby (1.1.5)
22
+ concurrent-ruby (1.1.7)
23
23
  cri (2.10.1)
24
24
  colored (~> 1.2)
25
25
  dentaku (2.0.11)
26
- diff-lcs (1.3)
27
- docile (1.3.1)
26
+ diff-lcs (1.4.4)
27
+ docile (1.3.2)
28
28
  gems (0.8.3)
29
29
  highline (1.7.10)
30
- httparty (0.17.0)
30
+ httparty (0.18.1)
31
31
  mime-types (~> 3.0)
32
32
  multi_xml (>= 0.5.2)
33
33
  i18n (0.9.5)
34
34
  concurrent-ruby (~> 1.0)
35
- json (2.2.0)
36
35
  kramdown (1.17.0)
37
- method_source (0.9.2)
38
- mime-types (3.2.2)
36
+ method_source (1.0.0)
37
+ mime-types (3.3.1)
39
38
  mime-types-data (~> 3.2015)
40
- mime-types-data (3.2019.0331)
39
+ mime-types-data (3.2020.1104)
41
40
  mini_portile2 (2.3.0)
42
- minitest (5.11.3)
41
+ minitest (5.14.2)
43
42
  multi_xml (0.6.0)
44
43
  nanoc (3.7.5)
45
44
  cri (~> 2.3)
46
- net-ldap (0.16.1)
45
+ net-ldap (0.17.0)
47
46
  nokogiri (1.8.5)
48
47
  mini_portile2 (~> 2.3.0)
49
- origen (0.52.0)
48
+ origen (0.59.4)
50
49
  activesupport (~> 4.1)
51
- bundler (~> 1.7)
50
+ bundler (> 1.7)
52
51
  coderay (~> 1.1)
53
52
  colored (~> 1.2)
54
53
  colorize (~> 0.8.1)
@@ -68,33 +67,34 @@ GEM
68
67
  rspec-legacy_formatters (~> 1)
69
68
  rubocop (= 0.30)
70
69
  scrub_rb (~> 1.0)
71
- simplecov (~> 0.9)
70
+ simplecov (~> 0.17)
71
+ simplecov-html (~> 0.10)
72
72
  thor (~> 0.19)
73
73
  yard (~> 0.8)
74
- parser (2.6.3.0)
75
- ast (~> 2.4.0)
76
- powerpack (0.1.2)
77
- pry (0.12.2)
78
- coderay (~> 1.1.0)
79
- method_source (~> 0.9.0)
74
+ parser (2.7.2.0)
75
+ ast (~> 2.4.1)
76
+ powerpack (0.1.3)
77
+ pry (0.13.1)
78
+ coderay (~> 1.1)
79
+ method_source (~> 1.0)
80
80
  rainbow (2.2.2)
81
81
  rake
82
82
  rake (10.5.0)
83
- rspec (3.8.0)
84
- rspec-core (~> 3.8.0)
85
- rspec-expectations (~> 3.8.0)
86
- rspec-mocks (~> 3.8.0)
87
- rspec-core (3.8.0)
88
- rspec-support (~> 3.8.0)
89
- rspec-expectations (3.8.3)
83
+ rspec (3.10.0)
84
+ rspec-core (~> 3.10.0)
85
+ rspec-expectations (~> 3.10.0)
86
+ rspec-mocks (~> 3.10.0)
87
+ rspec-core (3.10.0)
88
+ rspec-support (~> 3.10.0)
89
+ rspec-expectations (3.10.0)
90
90
  diff-lcs (>= 1.2.0, < 2.0)
91
- rspec-support (~> 3.8.0)
92
- rspec-legacy_formatters (1.0.1)
91
+ rspec-support (~> 3.10.0)
92
+ rspec-legacy_formatters (1.0.2)
93
93
  rspec (~> 3.0)
94
- rspec-mocks (3.8.0)
94
+ rspec-mocks (3.10.0)
95
95
  diff-lcs (>= 1.2.0, < 2.0)
96
- rspec-support (~> 3.8.0)
97
- rspec-support (3.8.0)
96
+ rspec-support (~> 3.10.0)
97
+ rspec-support (3.10.0)
98
98
  rubocop (0.30.0)
99
99
  astrolabe (~> 1.3)
100
100
  parser (>= 2.2.0.1, < 3.0)
@@ -103,16 +103,17 @@ GEM
103
103
  ruby-progressbar (~> 1.4)
104
104
  ruby-progressbar (1.10.1)
105
105
  scrub_rb (1.0.1)
106
- simplecov (0.16.1)
106
+ simplecov (0.20.0)
107
107
  docile (~> 1.1)
108
- json (>= 1.8, < 3)
109
- simplecov-html (~> 0.10.0)
110
- simplecov-html (0.10.2)
108
+ simplecov-html (~> 0.11)
109
+ simplecov_json_formatter (~> 0.1)
110
+ simplecov-html (0.12.3)
111
+ simplecov_json_formatter (0.1.2)
111
112
  thor (0.20.3)
112
113
  thread_safe (0.3.6)
113
- tzinfo (1.2.5)
114
+ tzinfo (1.2.8)
114
115
  thread_safe (~> 0.1)
115
- yard (0.9.19)
116
+ yard (0.9.25)
116
117
 
117
118
  PLATFORMS
118
119
  ruby
@@ -123,4 +124,4 @@ DEPENDENCIES
123
124
  origen_app_generators!
124
125
 
125
126
  BUNDLED WITH
126
- 1.17.1
127
+ 1.17.2
@@ -1,7 +1,7 @@
1
1
  module OrigenAppGenerators
2
2
  MAJOR = 2
3
- MINOR = 1
4
- BUGFIX = 1
3
+ MINOR = 2
4
+ BUGFIX = 0
5
5
  DEV = nil
6
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
7
7
  end
@@ -1,3 +1,14 @@
1
+ <a class="anchor release_tag" name="v2_2_0"></a>
2
+ <h1><a href="#v2_2_0">Tag: v2.2.0</a></h1>
3
+
4
+ ##### Branch: 'master'
5
+
6
+ ##### by Caquelin, Brian on 03-Dec-2020 08:40AM
7
+
8
+
9
+ * Removed older Ruby dependencies
10
+ * Added Github Actions regression testing
11
+
1
12
  <a class="anchor release_tag" name="v2_1_1"></a>
2
13
  <h1><a href="#v2_1_1">Tag: v2.1.1</a></h1>
3
14
 
@@ -1,32 +1,30 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: origen_app_generators 2.1.1 ruby lib
2
+ # stub: origen_app_generators 2.2.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "origen_app_generators".freeze
6
- s.version = "2.1.1"
6
+ s.version = "2.2.0"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 1.8.11".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
10
10
  s.authors = ["Stephen McGinty".freeze]
11
- s.date = "2020-11-19"
11
+ s.date = "2021-04-27"
12
12
  s.email = ["stephen.f.mcginty@gmail.com".freeze]
13
13
  s.files = ["bin/boot.rb".freeze, "config/application.rb".freeze, "config/boot.rb".freeze, "config/commands.rb".freeze, "config/shared_commands.rb".freeze, "config/version.rb".freeze, "lib/origen_app_generators.rb".freeze, "lib/origen_app_generators/application.rb".freeze, "lib/origen_app_generators/base.rb".freeze, "lib/origen_app_generators/empty_application.rb".freeze, "lib/origen_app_generators/empty_plugin.rb".freeze, "lib/origen_app_generators/new.rb".freeze, "lib/origen_app_generators/new_app_tests.rb".freeze, "lib/origen_app_generators/origen_infrastructure/app_generator_plugin.rb".freeze, "lib/origen_app_generators/plugin.rb".freeze, "lib/origen_app_generators/test_engineering/common.rb".freeze, "lib/origen_app_generators/test_engineering/stand_alone_application.rb".freeze, "lib/origen_app_generators/test_engineering/test_block.rb".freeze, "templates/app_generators".freeze, "templates/app_generators/application".freeze, "templates/app_generators/application/.gitignore".freeze, "templates/app_generators/application/.irbrc".freeze, "templates/app_generators/application/.rspec".freeze, "templates/app_generators/application/.travis.yml".freeze, "templates/app_generators/application/Gemfile".freeze, "templates/app_generators/application/Rakefile".freeze, "templates/app_generators/application/app".freeze, "templates/app_generators/application/app/blocks".freeze, "templates/app_generators/application/app/blocks/top_level.rb".freeze, "templates/app_generators/application/app/lib".freeze, "templates/app_generators/application/app/lib/module.rb".freeze, "templates/app_generators/application/app/templates".freeze, "templates/app_generators/application/app/templates/web".freeze, "templates/app_generators/application/app/templates/web/index.md.erb".freeze, "templates/app_generators/application/app/templates/web/layouts".freeze, "templates/app_generators/application/app/templates/web/layouts/_basic.html.erb".freeze, "templates/app_generators/application/app/templates/web/partials".freeze, "templates/app_generators/application/app/templates/web/partials/_navbar.html.erb".freeze, "templates/app_generators/application/app/templates/web/release_notes.md.erb".freeze, "templates/app_generators/application/config".freeze, "templates/app_generators/application/config/application.rb".freeze, "templates/app_generators/application/config/boot.rb".freeze, "templates/app_generators/application/config/commands.rb".freeze, "templates/app_generators/application/config/maillist_dev.txt".freeze, "templates/app_generators/application/config/maillist_prod.txt".freeze, "templates/app_generators/application/config/version.rb".freeze, "templates/app_generators/application/doc".freeze, "templates/app_generators/application/doc/history".freeze, "templates/app_generators/application/dot_keep".freeze, "templates/app_generators/application/origen_core_session".freeze, "templates/app_generators/application/spec".freeze, "templates/app_generators/application/spec/spec_helper.rb".freeze, "templates/app_generators/application/target".freeze, "templates/app_generators/application/target/debug.rb".freeze, "templates/app_generators/application/target/default.rb".freeze, "templates/app_generators/application/target/production.rb".freeze, "templates/app_generators/new".freeze, "templates/app_generators/new/generator.rb".freeze, "templates/app_generators/new/info.md.erb".freeze, "templates/app_generators/origen_infrastructure".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/application.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/base.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/module.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/app/lib/plugin.rb".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/config".freeze, "templates/app_generators/origen_infrastructure/app_generator_plugin/config/load_generators.rb".freeze, "templates/app_generators/plugin".freeze, "templates/app_generators/plugin/Gemfile".freeze, "templates/app_generators/plugin/Rakefile".freeze, "templates/app_generators/plugin/app".freeze, "templates/app_generators/plugin/app/templates".freeze, "templates/app_generators/plugin/app/templates/web".freeze, "templates/app_generators/plugin/app/templates/web/index.md.erb".freeze, "templates/app_generators/plugin/app/templates/web/partials".freeze, "templates/app_generators/plugin/app/templates/web/partials/_navbar_external.html.erb".freeze, "templates/app_generators/plugin/app/templates/web/partials/_navbar_internal.html.erb".freeze, "templates/app_generators/plugin/config".freeze, "templates/app_generators/plugin/config/boot.rb".freeze, "templates/app_generators/plugin/gemspec.rb".freeze, "templates/app_generators/test_engineering".freeze, "templates/app_generators/test_engineering/environment".freeze, "templates/app_generators/test_engineering/environment/j750.rb".freeze, "templates/app_generators/test_engineering/environment/uflex.rb".freeze, "templates/app_generators/test_engineering/environment/v93k.rb".freeze, "templates/app_generators/test_engineering/stand_alone_application".freeze, "templates/app_generators/test_engineering/stand_alone_application/.keep".freeze, "templates/app_generators/test_engineering/test_block".freeze, "templates/app_generators/test_engineering/test_block/.keep".freeze]
14
14
  s.homepage = "http://origen-sdk.org/origen_app_generators".freeze
15
15
  s.licenses = ["MIT".freeze]
16
16
  s.required_ruby_version = Gem::Requirement.new(">= 1.9.3".freeze)
17
- s.rubygems_version = "3.0.3".freeze
17
+ s.rubygems_version = "3.2.16".freeze
18
18
  s.summary = "Origen application generators".freeze
19
19
 
20
- s.installed_by_version = "3.0.3" if s.respond_to? :installed_by_version
20
+ s.installed_by_version = "3.2.16" if s.respond_to? :installed_by_version
21
21
 
22
22
  if s.respond_to? :specification_version then
23
23
  s.specification_version = 4
24
+ end
24
25
 
25
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
- s.add_runtime_dependency(%q<origen>.freeze, [">= 0.40.2"])
27
- else
28
- s.add_dependency(%q<origen>.freeze, [">= 0.40.2"])
29
- end
26
+ if s.respond_to? :add_runtime_dependency then
27
+ s.add_runtime_dependency(%q<origen>.freeze, [">= 0.40.2"])
30
28
  else
31
29
  s.add_dependency(%q<origen>.freeze, [">= 0.40.2"])
32
30
  end
@@ -8,6 +8,8 @@ source 'https://rubygems.org'
8
8
 
9
9
  gem 'origen', '>= <%= @latest_origen_version %>'
10
10
 
11
+ gem 'byebug'
12
+
11
13
  gem 'origen_doc_helpers'
12
14
  <% if @development_dependencies -%>
13
15
  <% @development_dependencies.each do |dep| -%>
@@ -15,14 +17,6 @@ gem <%= dep.map{ |d| "\"#{d}\"" }.join(', ') %>
15
17
  <% end -%>
16
18
  <% end -%>
17
19
 
18
- gem 'byebug', '~>8' # You can remove this version constraint if you don't care about your app
19
- # supporting earlier versions of Ruby 2
20
- <% if RUBY_VERSION < "2.3.0" -%>
21
-
22
- # Lock this version of nokogiri to enable compatibility with Ruby 2.2, if you don't need
23
- # that then you can remove this line
24
- gem 'nokogiri', '1.8.5'
25
- <% end -%>
26
20
  <% if (@audience != :external) && Origen.site_config.gem_push_plugins -%>
27
21
  <% Origen.site_config.gem_push_plugins.each do |plugin| -%>
28
22
  gem <%= Array(plugin).map{ |d| "\"#{d}\"" }.join(', ') %>
@@ -13,8 +13,8 @@ source 'https://rubygems.org'
13
13
  # your application's test coverage
14
14
  gem 'coveralls', require: false
15
15
  <% end -%>
16
- gem 'byebug', '~>8' # You can remove this version constraint if you don't care about your app
17
- # supporting earlier versions of Ruby 2
16
+
17
+ gem 'byebug'
18
18
  gem 'ripper-tags'
19
19
  gem 'origen_doc_helpers'
20
20
  <% if (@audience != :external) && Origen.site_config.gem_push_plugins -%>
@@ -5,69 +5,69 @@ module Origen
5
5
  def self.extended(model)
6
6
  model.add_package :bga
7
7
  model.add_package :pcs
8
- model.add_pin :pinx, type: :signal
9
- model.add_pin :piny, reset: :drive_hi, direction: :output, type: :signal, meta: { a: '1', b: 2 }
10
- model.add_pin :tdo, type: :signal, packages: { bga: { location: "BF32", dib_assignment: [10104] }, pcs: { location: "BF30", dib_assignment: [31808] } }
11
- model.add_pin :porta31, type: :signal
12
- model.add_pin :porta30, type: :signal
13
- model.add_pin :porta29, type: :signal
14
- model.add_pin :porta28, type: :signal
15
- model.add_pin :porta27, type: :signal
16
- model.add_pin :porta26, type: :signal
17
- model.add_pin :porta25, type: :signal
18
- model.add_pin :porta24, type: :signal
19
- model.add_pin :porta23, type: :signal
20
- model.add_pin :porta22, type: :signal
21
- model.add_pin :porta21, type: :signal
22
- model.add_pin :porta20, type: :signal
23
- model.add_pin :porta19, type: :signal
24
- model.add_pin :porta18, type: :signal
25
- model.add_pin :porta17, type: :signal
26
- model.add_pin :porta16, type: :signal
27
- model.add_pin :porta15, type: :signal
28
- model.add_pin :porta14, type: :signal
29
- model.add_pin :porta13, type: :signal
30
- model.add_pin :porta12, type: :signal
31
- model.add_pin :porta11, type: :signal
32
- model.add_pin :porta10, type: :signal
33
- model.add_pin :porta9, type: :signal
34
- model.add_pin :porta8, type: :signal
35
- model.add_pin :porta7, type: :signal
36
- model.add_pin :porta6, type: :signal
37
- model.add_pin :porta5, type: :signal
38
- model.add_pin :porta4, type: :signal
39
- model.add_pin :porta3, type: :signal
40
- model.add_pin :porta2, type: :signal
41
- model.add_pin :porta1, type: :signal
42
- model.add_pin :porta0, type: :signal
43
- model.add_pin :portb0, type: :signal
44
- model.add_pin :portb1, type: :signal
45
- model.add_pin :portb2, type: :signal
46
- model.add_pin :portb3, type: :signal
47
- model.add_pin :portb4, type: :signal
48
- model.add_pin :portb5, type: :signal
49
- model.add_pin :portb6, type: :signal
50
- model.add_pin :portb7, type: :signal
51
- model.add_pin :portb8, type: :signal
52
- model.add_pin :portb9, type: :signal
53
- model.add_pin :portb10, type: :signal
54
- model.add_pin :portb11, type: :signal
55
- model.add_pin :portb12, type: :signal
56
- model.add_pin :portb13, type: :signal
57
- model.add_pin :portb14, type: :signal
58
- model.add_pin :portb15, type: :signal
8
+ model.add_pin :pinx
9
+ model.add_pin :piny, reset: :drive_hi, direction: :output, meta: { a: '1', b: 2 }
10
+ model.add_pin :tdo, packages: { bga: { location: "BF32", dib_assignment: [10104] }, pcs: { location: "BF30", dib_assignment: [31808] } }
11
+ model.add_pin :porta31
12
+ model.add_pin :porta30
13
+ model.add_pin :porta29
14
+ model.add_pin :porta28
15
+ model.add_pin :porta27
16
+ model.add_pin :porta26
17
+ model.add_pin :porta25
18
+ model.add_pin :porta24
19
+ model.add_pin :porta23
20
+ model.add_pin :porta22
21
+ model.add_pin :porta21
22
+ model.add_pin :porta20
23
+ model.add_pin :porta19
24
+ model.add_pin :porta18
25
+ model.add_pin :porta17
26
+ model.add_pin :porta16
27
+ model.add_pin :porta15
28
+ model.add_pin :porta14
29
+ model.add_pin :porta13
30
+ model.add_pin :porta12
31
+ model.add_pin :porta11
32
+ model.add_pin :porta10
33
+ model.add_pin :porta9
34
+ model.add_pin :porta8
35
+ model.add_pin :porta7
36
+ model.add_pin :porta6
37
+ model.add_pin :porta5
38
+ model.add_pin :porta4
39
+ model.add_pin :porta3
40
+ model.add_pin :porta2
41
+ model.add_pin :porta1
42
+ model.add_pin :porta0
43
+ model.add_pin :portb0
44
+ model.add_pin :portb1
45
+ model.add_pin :portb2
46
+ model.add_pin :portb3
47
+ model.add_pin :portb4
48
+ model.add_pin :portb5
49
+ model.add_pin :portb6
50
+ model.add_pin :portb7
51
+ model.add_pin :portb8
52
+ model.add_pin :portb9
53
+ model.add_pin :portb10
54
+ model.add_pin :portb11
55
+ model.add_pin :portb12
56
+ model.add_pin :portb13
57
+ model.add_pin :portb14
58
+ model.add_pin :portb15
59
59
  model.add_pin_group :porta, :porta31, :porta30, :porta29, :porta28, :porta27, :porta26, :porta25, :porta24, :porta23, :porta22, :porta21, :porta20, :porta19, :porta18, :porta17, :porta16, :porta15, :porta14, :porta13, :porta12, :porta11, :porta10, :porta9, :porta8, :porta7, :porta6, :porta5, :porta4, :porta3, :porta2, :porta1, :porta0
60
60
  model.add_pin_group :portb, :portb15, :portb14, :portb13, :portb12, :portb11, :portb10, :portb9, :portb8, :portb7, :portb6, :portb5, :portb4, :portb3, :portb2, :portb1, :portb0
61
61
  model.pins(:portb).endian = :little
62
- model.add_power_pin :vdd1, type: :power, voltage: 3, current_limit: 0.05, meta: { min_voltage: 1.5 }
63
- model.add_power_pin :vdd2, type: :power
62
+ model.add_power_pin :vdd1, voltage: 3, current_limit: 0.05, meta: { min_voltage: 1.5 }
63
+ model.add_power_pin :vdd2
64
64
  model.add_power_pin_group :vdd, :vdd1, :vdd2
65
- model.add_ground_pin :gnd1, type: :ground
66
- model.add_ground_pin :gnd2, type: :ground
67
- model.add_ground_pin :gnd3, type: :ground
65
+ model.add_ground_pin :gnd1
66
+ model.add_ground_pin :gnd2
67
+ model.add_ground_pin :gnd3
68
68
  model.add_ground_pin_group :gnd, :gnd1, :gnd2, :gnd3
69
- model.add_virtual_pin :relay1, type: :virtual
70
- model.add_virtual_pin :relay2, type: :virtual, packages: { bga: {} }
69
+ model.add_virtual_pin :relay1
70
+ model.add_virtual_pin :relay2, packages: { bga: {} }
71
71
 
72
72
  model.sub_block :block1, file: 'origen/export1/block1.rb', dir: "#{Origen.root!}/vendor/lib/models", lazy: true
73
73
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: origen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.59.4
4
+ version: 0.60.0
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-11-24 00:00:00.000000000 Z
11
+ date: 2021-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -296,14 +296,14 @@ dependencies:
296
296
  requirements:
297
297
  - - "~>"
298
298
  - !ruby/object:Gem::Version
299
- version: '2'
299
+ version: '3'
300
300
  type: :runtime
301
301
  prerelease: false
302
302
  version_requirements: !ruby/object:Gem::Requirement
303
303
  requirements:
304
304
  - - "~>"
305
305
  - !ruby/object:Gem::Version
306
- version: '2'
306
+ version: '3'
307
307
  - !ruby/object:Gem::Dependency
308
308
  name: colorize
309
309
  requirement: !ruby/object:Gem::Requirement
@@ -749,7 +749,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
749
749
  - !ruby/object:Gem::Version
750
750
  version: 1.8.11
751
751
  requirements: []
752
- rubygems_version: 3.0.3
752
+ rubygems_version: 3.2.16
753
753
  signing_key:
754
754
  specification_version: 4
755
755
  summary: The Semiconductor Developer's Kit