origen 0.58.0 → 0.59.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/version.rb +2 -2
- data/lib/origen/controller.rb +12 -0
- data/lib/origen/pins/pin.rb +14 -3
- data/lib/origen/site_config.rb +4 -3
- data/lib/origen/users/ldap.rb +8 -2
- data/origen_app_generators/origen_app_generators.gemspec +1 -1
- data/spec/format/origen_formatter.rb +21 -8
- data/templates/code_generators/model.rb +9 -1
- data/vendor/lib/models/origen/export1.rb +58 -58
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16b5e4aa6124b67155547b10129eab41ef8c875bdaff3699bb14e404bd92d9f5
|
4
|
+
data.tar.gz: aafc5587e6a436d9e2418ca2fee24a5a8733b7fb63e8ffe082c4dd37d8f250b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a728c16c96cd708cdd9cab9125ee83a2613105b47485b3345d036e6cb6050839563530890edf0550cbcd941812edfa2b5685514aaccd96804f248b4abc1f1683
|
7
|
+
data.tar.gz: 856a497042c8fedce4e3977fd45661b4a758331eca93642842fb2b8b47c9a336ec2c71bc30b234c8a6d6e5327da2a93d9ef081143f4e8abcec75b159146e0710
|
data/config/version.rb
CHANGED
data/lib/origen/controller.rb
CHANGED
@@ -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
|
data/lib/origen/pins/pin.rb
CHANGED
@@ -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, :
|
25
|
+
# Pin Types, 'digital' and 'analog' are legacy types kept for backwards compatibility
|
26
|
+
TYPES = [:digital, :analog, :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]
|
93
|
+
@type = options[:type].nil? ? determine_type : options[:type]
|
94
94
|
@dib_assignment = [] # Array to handle multi-site testing
|
95
95
|
@size = 1
|
96
96
|
@value = 0
|
@@ -1183,6 +1183,17 @@ 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
|
+
|
1186
1197
|
def primary_group=(group)
|
1187
1198
|
@primary_group = group
|
1188
1199
|
end
|
data/lib/origen/site_config.rb
CHANGED
@@ -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
|
-
#
|
420
|
-
#
|
421
|
-
@configs.
|
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
|
data/lib/origen/users/ldap.rb
CHANGED
@@ -15,9 +15,14 @@ module Origen
|
|
15
15
|
HOST = Origen.site_config.ldap_host
|
16
16
|
PORT = Origen.site_config.ldap_port
|
17
17
|
BASE_DN = Origen.site_config.ldap_base_dn
|
18
|
+
LDAP_ENCRYPTION = Origen.site_config.ldap_encryption
|
19
|
+
|
20
|
+
if LDAP_ENCRYPTION.nil?
|
21
|
+
LDAP_ENCRYPTION = 'simple_tls'
|
22
|
+
end
|
18
23
|
|
19
24
|
def available?
|
20
|
-
!!(SERVICE_ACCOUNT && SERVICE_PASS && HOST && PORT && BASE_DN)
|
25
|
+
!!(SERVICE_ACCOUNT && SERVICE_PASS && HOST && PORT && BASE_DN && LDAP_ENCRYPTION)
|
21
26
|
end
|
22
27
|
|
23
28
|
# Lookup the given user in the core directory and return an object representing the user's entry
|
@@ -57,7 +62,8 @@ module Origen
|
|
57
62
|
def service
|
58
63
|
@service ||= Net::LDAP.new host: HOST,
|
59
64
|
port: PORT,
|
60
|
-
|
65
|
+
base: BASE_DN,
|
66
|
+
encryption: LDAP_ENCRYPTION,
|
61
67
|
auth: { method: :simple, username: SERVICE_ACCOUNT, password: SERVICE_PASS }
|
62
68
|
end
|
63
69
|
end
|
@@ -8,7 +8,7 @@ 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-
|
11
|
+
s.date = "2020-11-19"
|
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
|
@@ -1,14 +1,27 @@
|
|
1
1
|
require 'rspec/core/formatters/base_formatter'
|
2
2
|
|
3
3
|
class OrigenFormatter < RSpec::Core::Formatters::BaseFormatter
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
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')
|
6
|
+
# legacy formatter
|
7
|
+
def dump_summary(duration, example_count, failure_count, pending_count)
|
8
|
+
if failure_count > 0
|
9
|
+
Origen.app.stats.report_fail
|
10
|
+
else
|
11
|
+
Origen.app.stats.report_pass
|
12
|
+
end
|
13
|
+
super(duration, example_count, failure_count, pending_count)
|
14
|
+
end
|
15
|
+
else
|
16
|
+
# RSpec 3 API
|
17
|
+
RSpec::Core::Formatters.register self, :dump_summary
|
18
|
+
def dump_summary(summary)
|
19
|
+
puts
|
20
|
+
if summary.failed_examples.size > 0
|
21
|
+
Origen.app.stats.report_fail
|
22
|
+
else
|
23
|
+
Origen.app.stats.report_pass
|
24
|
+
end
|
10
25
|
end
|
11
|
-
super(duration, example_count, failure_count, pending_count)
|
12
26
|
end
|
13
|
-
|
14
27
|
end
|
@@ -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
|
@@ -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
|
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
|
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
|
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, voltage: 3, current_limit: 0.05, meta: { min_voltage: 1.5 }
|
63
|
-
model.add_power_pin :vdd2
|
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
|
64
64
|
model.add_power_pin_group :vdd, :vdd1, :vdd2
|
65
|
-
model.add_ground_pin :gnd1
|
66
|
-
model.add_ground_pin :gnd2
|
67
|
-
model.add_ground_pin :gnd3
|
65
|
+
model.add_ground_pin :gnd1, type: :ground
|
66
|
+
model.add_ground_pin :gnd2, type: :ground
|
67
|
+
model.add_ground_pin :gnd3, type: :ground
|
68
68
|
model.add_ground_pin_group :gnd, :gnd1, :gnd2, :gnd3
|
69
|
-
model.add_virtual_pin :relay1
|
70
|
-
model.add_virtual_pin :relay2, packages: { bga: {} }
|
69
|
+
model.add_virtual_pin :relay1, type: :virtual
|
70
|
+
model.add_virtual_pin :relay2, type: :virtual, 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.
|
4
|
+
version: 0.59.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: 2020-
|
11
|
+
date: 2020-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|