origen 0.59.1 → 0.59.6

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: be12bb5b800939408adf130a00a28b7f18231ad8ff4c4d85faf1d84e5a010269
4
- data.tar.gz: d109bc8ff310e00c4a95408845bfcb376f2685471407dd7acb146c7ed0f0718b
3
+ metadata.gz: 7e2a028ce1b3b3fe724cb3c9cec676ed6830a40fa7ec74864a0dd3bd50611260
4
+ data.tar.gz: 8fe8e6c101236617832f6db76f807c346e2d41b6f3872ae33b5c1cd3de602914
5
5
  SHA512:
6
- metadata.gz: 4cae4addf34171310be4685c8fada1529be19dafcd19db00e8c51211026e34f7490c476d484136cfaeac40d962d06f4de9877b4ffdc5aa3d7b2f89ac4f8115f7
7
- data.tar.gz: 0a13bd267944d0aa0f8a79bb6b1b48c3f570269cf204a48e7507d9e4557bae7e98869847fd1b4787d0a55137228bf60ea68960dc2fad13488bb835f09b414d81
6
+ metadata.gz: cca720d7a1c5d40101d6c4bd2b5ec598993026c3980d1a814cbe86db25c6f973d1549f1ea9a58eba026e2b06aadbd687a20753ffa3ca8bcdfded6cc310e0283a
7
+ data.tar.gz: 1ce140605160e77ab74aca9fbd40be126cf18e07f8e74a2826a4f63289f61b57ab0200e3180d9c034b250527351a6c5b6d81bba94fc15fdbd89c0f313fe7d7b5
@@ -1,7 +1,7 @@
1
1
  module Origen
2
2
  MAJOR = 0
3
3
  MINOR = 59
4
- BUGFIX = 1
4
+ BUGFIX = 6
5
5
  DEV = nil
6
6
  VERSION = [MAJOR, MINOR, BUGFIX].join(".") + (DEV ? ".pre#{DEV}" : '')
7
7
  end
@@ -2,6 +2,18 @@ module Origen
2
2
  module Controller
3
3
  extend ActiveSupport::Concern
4
4
 
5
+ # Workaround due to reserved keywords in Ruby, Display in the case below.
6
+ def display
7
+ # If the DUT responds to a sub_block "display" return the sub_block
8
+ if model.sub_blocks.include? 'display'
9
+ Origen.log.debug "Found a sub_block \'display\', passing control to the #{model.class}..."
10
+ model.sub_blocks['display']
11
+ else
12
+ # Else, pass control to the ruby core.
13
+ super
14
+ end
15
+ end
16
+
5
17
  module ClassMethods
6
18
  def model(options = {})
7
19
  options[:controller_class] = self
@@ -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
 
@@ -22,8 +22,8 @@ module Origen
22
22
  # before falling back to a default
23
23
  PACKAGE_SCOPED_ATTRIBUTES = [:location, :dib_assignment, :dib_meta]
24
24
 
25
- # Pin Types
26
- TYPES = [:analog, :digital]
25
+ # Pin Types, 'digital' and 'analog' are legacy types kept for backwards compatibility
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.
@@ -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
@@ -416,9 +416,10 @@ module Origen
416
416
  # Load any centralized site configs now.
417
417
  centralized_site_config = find_val('centralized_site_config')
418
418
  if centralized_site_config
419
- # We know the last two site configs will exists (they are in Origen core) and that they contain the default
420
- # values. We want the centralized config to load right after those.
421
- @configs.insert(-3, Config.new(path: centralized_site_config, parent: self))
419
+ # The first site configs found will exist in Origen core, and they contain the default values.
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)
422
+ @configs.insert(centralized_index, Config.new(path: centralized_site_config, parent: self))
422
423
  end
423
424
 
424
425
  # After all configs have been populated, see if the centralized needs refreshing
@@ -8,16 +8,16 @@ Gem::Specification.new do |s|
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-09-01"
11
+ s.date = "2020-12-08"
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.0.1".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.0.1" if s.respond_to? :installed_by_version
21
21
 
22
22
  if s.respond_to? :specification_version then
23
23
  s.specification_version = 4
@@ -1,7 +1,8 @@
1
1
  require 'rspec/core/formatters/base_formatter'
2
2
 
3
3
  class OrigenFormatter < RSpec::Core::Formatters::BaseFormatter
4
- if Gem::Version.new(RSpec::Version::STRING) < Gem::Version.new('3.0.0')
4
+ rspec_version = RSpec.constants.include?(:Version) ? RSpec::Version::STRING : RSpec::Core::Version::STRING
5
+ if Gem::Version.new(rspec_version) < Gem::Version.new('3.0.0')
5
6
  # legacy formatter
6
7
  def dump_summary(duration, example_count, failure_count, pending_count)
7
8
  if failure_count > 0
@@ -15,7 +15,15 @@ class <%= @namespaces.map { |n| camelcase(n[1]) }.join('::') %>::<%= camelcase(@
15
15
  include Origen::Model
16
16
  <% end -%>
17
17
 
18
- <% end -%>
19
18
  def initialize(options = {})
20
19
  end
20
+ <% else -%>
21
+ # super means that the initialize request will get passed onto the parent class's initialize method.
22
+ # i.e. the one defined in <%= @parent_class %>
23
+ # If you want to override that and add a specific implementation for this DUT type,
24
+ # then simply delete the super below and add the code you wish to handle the request.
25
+ def initialize(options = {})
26
+ super
27
+ end
28
+ <% end -%>
21
29
  end
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.1
4
+ version: 0.59.6
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-09-22 00:00:00.000000000 Z
11
+ date: 2020-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -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.0.1
753
753
  signing_key:
754
754
  specification_version: 4
755
755
  summary: The Semiconductor Developer's Kit