origen 0.59.4 → 0.60.0

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: 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