origen 0.2.6 → 0.3.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.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/bin/origen +3 -1
  3. data/config/boot.rb +1 -7
  4. data/config/commands.rb +0 -1
  5. data/config/version.rb +2 -2
  6. data/lib/c99/{j750_interface.rb → ate_interface.rb} +3 -11
  7. data/lib/c99/doc_interface.rb +1 -1
  8. data/lib/origen.rb +9 -30
  9. data/lib/origen/application.rb +10 -8
  10. data/lib/origen/application/configuration.rb +13 -26
  11. data/lib/origen/application/plugins.rb +122 -0
  12. data/lib/origen/application/plugins_manager.rb +16 -254
  13. data/lib/origen/application/release.rb +2 -2
  14. data/lib/origen/application/runner.rb +2 -4
  15. data/lib/origen/chips.rb +0 -0
  16. data/lib/origen/chips/chip.rb +0 -0
  17. data/lib/origen/chips/design_entry.rb +0 -0
  18. data/lib/origen/chips/doc_entry.rb +0 -0
  19. data/lib/origen/chips/note.rb +0 -0
  20. data/lib/origen/commands.rb +4 -44
  21. data/lib/origen/commands/compile.rb +1 -2
  22. data/lib/origen/commands/generate.rb +1 -1
  23. data/lib/origen/commands/interactive.rb +1 -2
  24. data/lib/origen/commands/plugin.rb +49 -56
  25. data/lib/origen/commands/program.rb +1 -1
  26. data/lib/origen/commands/rc.rb +2 -2
  27. data/lib/origen/commands/version.rb +2 -17
  28. data/lib/origen/commands_global.rb +3 -0
  29. data/lib/origen/file_handler.rb +10 -10
  30. data/lib/origen/generator.rb +1 -1
  31. data/lib/origen/generator/job.rb +1 -1
  32. data/lib/origen/generator/pattern.rb +2 -2
  33. data/lib/origen/generator/pattern_finder.rb +10 -9
  34. data/lib/origen/pins/pin.rb +0 -0
  35. data/lib/origen/regression_manager.rb +0 -0
  36. data/lib/origen/remote_manager.rb +2 -8
  37. data/lib/origen/revision_control/design_sync.rb +0 -0
  38. data/lib/origen/revision_control/git.rb +0 -0
  39. data/lib/origen/specs.rb +0 -0
  40. data/lib/origen/specs/checkers.rb +0 -0
  41. data/lib/origen/specs/creation_info.rb +0 -0
  42. data/lib/origen/specs/exhibit.rb +0 -0
  43. data/lib/origen/specs/spec.rb +0 -0
  44. data/lib/origen/utility.rb +0 -1
  45. data/lib/origen/utility/diff.rb +0 -0
  46. metadata +42 -119
  47. data/lib/origen/import_manager.rb +0 -596
  48. data/lib/origen/nvm.rb +0 -6
  49. data/lib/origen/nvm/block_array.rb +0 -72
  50. data/lib/origen/tester.rb +0 -56
  51. data/lib/origen/tester/api.rb +0 -277
  52. data/lib/origen/tester/bdm/bdm.rb +0 -25
  53. data/lib/origen/tester/doc/doc.rb +0 -226
  54. data/lib/origen/tester/doc/generator.rb +0 -126
  55. data/lib/origen/tester/doc/generator/flow.rb +0 -71
  56. data/lib/origen/tester/doc/generator/flow_line.rb +0 -203
  57. data/lib/origen/tester/doc/generator/test.rb +0 -68
  58. data/lib/origen/tester/doc/generator/test_group.rb +0 -66
  59. data/lib/origen/tester/doc/generator/tests.rb +0 -47
  60. data/lib/origen/tester/doc/model.rb +0 -162
  61. data/lib/origen/tester/generator.rb +0 -271
  62. data/lib/origen/tester/generator/flow_control_api.rb +0 -606
  63. data/lib/origen/tester/generator/identity_map.rb +0 -25
  64. data/lib/origen/tester/generator/placeholder.rb +0 -13
  65. data/lib/origen/tester/generator/test_numberer.rb +0 -25
  66. data/lib/origen/tester/interface.rb +0 -154
  67. data/lib/origen/tester/j750/files.rb +0 -45
  68. data/lib/origen/tester/j750/generator.rb +0 -203
  69. data/lib/origen/tester/j750/generator/flow.rb +0 -123
  70. data/lib/origen/tester/j750/generator/flow_line.rb +0 -288
  71. data/lib/origen/tester/j750/generator/patgroup.rb +0 -111
  72. data/lib/origen/tester/j750/generator/patgroups.rb +0 -41
  73. data/lib/origen/tester/j750/generator/patset.rb +0 -111
  74. data/lib/origen/tester/j750/generator/patsets.rb +0 -41
  75. data/lib/origen/tester/j750/generator/templates/flow.txt.erb +0 -9
  76. data/lib/origen/tester/j750/generator/templates/instances.txt.erb +0 -16
  77. data/lib/origen/tester/j750/generator/templates/patgroups.txt.erb +0 -8
  78. data/lib/origen/tester/j750/generator/templates/patsets.txt.erb +0 -10
  79. data/lib/origen/tester/j750/generator/test_instance.rb +0 -846
  80. data/lib/origen/tester/j750/generator/test_instance_group.rb +0 -60
  81. data/lib/origen/tester/j750/generator/test_instances.rb +0 -182
  82. data/lib/origen/tester/j750/j750.rb +0 -845
  83. data/lib/origen/tester/j750/j750_hpt.rb +0 -35
  84. data/lib/origen/tester/j750/parser.rb +0 -104
  85. data/lib/origen/tester/j750/parser/ac_spec.rb +0 -11
  86. data/lib/origen/tester/j750/parser/ac_specs.rb +0 -0
  87. data/lib/origen/tester/j750/parser/dc_spec.rb +0 -36
  88. data/lib/origen/tester/j750/parser/dc_specs.rb +0 -50
  89. data/lib/origen/tester/j750/parser/descriptions.rb +0 -340
  90. data/lib/origen/tester/j750/parser/flow.rb +0 -111
  91. data/lib/origen/tester/j750/parser/flow_line.rb +0 -207
  92. data/lib/origen/tester/j750/parser/flows.rb +0 -23
  93. data/lib/origen/tester/j750/parser/pattern_set.rb +0 -94
  94. data/lib/origen/tester/j750/parser/pattern_sets.rb +0 -33
  95. data/lib/origen/tester/j750/parser/test_instance.rb +0 -322
  96. data/lib/origen/tester/j750/parser/test_instances.rb +0 -26
  97. data/lib/origen/tester/j750/parser/timeset.rb +0 -15
  98. data/lib/origen/tester/j750/parser/timesets.rb +0 -0
  99. data/lib/origen/tester/jlink/jlink.rb +0 -33
  100. data/lib/origen/tester/parser.rb +0 -24
  101. data/lib/origen/tester/parser/description_lookup.rb +0 -64
  102. data/lib/origen/tester/parser/searchable_array.rb +0 -32
  103. data/lib/origen/tester/parser/searchable_hash.rb +0 -32
  104. data/lib/origen/tester/time.rb +0 -338
  105. data/lib/origen/tester/timing.rb +0 -253
  106. data/lib/origen/tester/ultraflex/files.rb +0 -45
  107. data/lib/origen/tester/ultraflex/generator.rb +0 -200
  108. data/lib/origen/tester/ultraflex/generator/flow.rb +0 -119
  109. data/lib/origen/tester/ultraflex/generator/flow_line.rb +0 -269
  110. data/lib/origen/tester/ultraflex/generator/patgroup.rb +0 -111
  111. data/lib/origen/tester/ultraflex/generator/patgroups.rb +0 -41
  112. data/lib/origen/tester/ultraflex/generator/patset.rb +0 -111
  113. data/lib/origen/tester/ultraflex/generator/patsets.rb +0 -41
  114. data/lib/origen/tester/ultraflex/generator/templates/flow.txt.erb +0 -9
  115. data/lib/origen/tester/ultraflex/generator/templates/instances.txt.erb +0 -16
  116. data/lib/origen/tester/ultraflex/generator/templates/patgroups.txt.erb +0 -8
  117. data/lib/origen/tester/ultraflex/generator/templates/patsets.txt.erb +0 -10
  118. data/lib/origen/tester/ultraflex/generator/test_instance.rb +0 -622
  119. data/lib/origen/tester/ultraflex/generator/test_instance_group.rb +0 -60
  120. data/lib/origen/tester/ultraflex/generator/test_instances.rb +0 -174
  121. data/lib/origen/tester/ultraflex/parser.rb +0 -104
  122. data/lib/origen/tester/ultraflex/parser/ac_spec.rb +0 -11
  123. data/lib/origen/tester/ultraflex/parser/ac_specs.rb +0 -0
  124. data/lib/origen/tester/ultraflex/parser/dc_spec.rb +0 -36
  125. data/lib/origen/tester/ultraflex/parser/dc_specs.rb +0 -50
  126. data/lib/origen/tester/ultraflex/parser/descriptions.rb +0 -342
  127. data/lib/origen/tester/ultraflex/parser/flow.rb +0 -111
  128. data/lib/origen/tester/ultraflex/parser/flow_line.rb +0 -207
  129. data/lib/origen/tester/ultraflex/parser/flows.rb +0 -23
  130. data/lib/origen/tester/ultraflex/parser/pattern_set.rb +0 -94
  131. data/lib/origen/tester/ultraflex/parser/pattern_sets.rb +0 -33
  132. data/lib/origen/tester/ultraflex/parser/test_instance.rb +0 -262
  133. data/lib/origen/tester/ultraflex/parser/test_instances.rb +0 -26
  134. data/lib/origen/tester/ultraflex/parser/timeset.rb +0 -15
  135. data/lib/origen/tester/ultraflex/parser/timesets.rb +0 -0
  136. data/lib/origen/tester/ultraflex/ultraflex.rb +0 -759
  137. data/lib/origen/tester/v93k/generator.rb +0 -80
  138. data/lib/origen/tester/v93k/generator/flow.rb +0 -63
  139. data/lib/origen/tester/v93k/generator/flow_node.rb +0 -17
  140. data/lib/origen/tester/v93k/generator/flow_node/print.rb +0 -10
  141. data/lib/origen/tester/v93k/generator/pattern.rb +0 -16
  142. data/lib/origen/tester/v93k/generator/pattern_master.rb +0 -54
  143. data/lib/origen/tester/v93k/generator/templates/_test_method.txt.erb +0 -6
  144. data/lib/origen/tester/v93k/generator/templates/_test_suite.txt.erb +0 -11
  145. data/lib/origen/tester/v93k/generator/templates/template.flow.erb +0 -121
  146. data/lib/origen/tester/v93k/generator/templates/template.pmfl.erb +0 -9
  147. data/lib/origen/tester/v93k/generator/test_function.rb +0 -103
  148. data/lib/origen/tester/v93k/generator/test_functions.rb +0 -79
  149. data/lib/origen/tester/v93k/generator/test_method.rb +0 -46
  150. data/lib/origen/tester/v93k/generator/test_methods.rb +0 -75
  151. data/lib/origen/tester/v93k/generator/test_suite.rb +0 -54
  152. data/lib/origen/tester/v93k/generator/test_suites.rb +0 -65
  153. data/lib/origen/tester/v93k/v93k.rb +0 -420
  154. data/lib/origen/tester/vector.rb +0 -86
  155. data/lib/origen/tester/vector_generator.rb +0 -637
  156. data/lib/origen/tester/vector_pipeline.rb +0 -150
  157. data/lib/origen/utility/design_sync.rb +0 -494
  158. data/lib/origen/version_checker.rb +0 -117
@@ -1,25 +0,0 @@
1
- module Origen
2
- module Tester
3
- module Generator
4
- class IdentityMap
5
- def initialize
6
- @store = {}
7
- @versions = {}
8
- end
9
-
10
- def current_version_of(obj)
11
- map = map_for(obj)
12
- if map
13
- map[:replaced_by] || map[:instance]
14
- else
15
- obj
16
- end
17
- end
18
-
19
- def map_for(obj)
20
- @store[obj.object_id]
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,13 +0,0 @@
1
- module Origen
2
- module Tester
3
- module Generator
4
- class Placeholder
5
- attr_accessor :type, :file, :options, :id
6
-
7
- def initialize(type, file, options = {})
8
- @type, @file, @options = type, file, options
9
- end
10
- end
11
- end
12
- end
13
- end
@@ -1,25 +0,0 @@
1
- module Origen
2
- module Tester
3
- module Generator
4
- class TestNumberer
5
- # Will return a test number for the given test.
6
- #
7
- # @param [Hash] options Options to customize the number generation
8
- # @option options [Integer] :bits (6) The number of bits in the DAC code
9
- # @option options [Float] :range (1.26) The range parameter, see code formula
10
- # @option options [Integer] :offset (0) The o
11
- def test_number_for(_test_name, options = {})
12
- options = {
13
-
14
- }.merge(options)
15
- end
16
-
17
- private
18
-
19
- def store_file
20
- @store_file ||= Pathname.new "#{Origen.root}/.test_program/test_numbers"
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,154 +0,0 @@
1
- require 'active_support/concern'
2
-
3
- module Origen
4
- module Tester
5
- # Include this module in any class you define as a test interface
6
- module Interface
7
- extend ActiveSupport::Concern
8
-
9
- included do
10
- Origen.add_interface(self)
11
- end
12
-
13
- # This identifier will be used to make labels and other references unique to the
14
- # current application. This will help to avoid name duplication if a program is
15
- # comprised of many modules generated by Origen.
16
- #
17
- # Override in the application interface to customize, by default the identifier
18
- # will be Origen.config.initials
19
- def app_identifier
20
- Origen.config.initials || 'Anon App'
21
- end
22
-
23
- def close(options = {})
24
- sheet_generators.each do |generator|
25
- generator.close(options)
26
- end
27
- end
28
-
29
- # Compile a template file
30
- def compile(file, options = {})
31
- Origen.file_handler.preserve_state do
32
- begin
33
- file = Origen.file_handler.clean_path_to_template(file)
34
- Origen.generator.compile_file_or_directory(file, initial_options: options)
35
- rescue
36
- file = Origen.file_handler.clean_path_to(file)
37
- Origen.generator.compile_file_or_directory(file, initial_options: options)
38
- end
39
- end
40
- end
41
-
42
- def import(file, options = {})
43
- # Attach the import request to the first generator, when it imports
44
- # it any generated resources will automatically find their way to the
45
- # correct generator/collection
46
- generator = flow || sheet_generators.first
47
- generator.import(file, options)
48
- end
49
-
50
- def render(file, options = {})
51
- if sheet_generators.size > 1
52
- fail "You must specify which generator to render content to! e.g. i.test_instances.render '#{file}'"
53
- else
54
- sheet_generators.first.render(file, options)
55
- end
56
- end
57
-
58
- def write_files(options = {})
59
- sheet_generators.each do |generator|
60
- generator.finalize(options)
61
- end
62
- sheet_generators.each do |generator|
63
- generator.write_to_file(options) if generator.to_be_written?
64
- end
65
- reset_globals
66
- end
67
-
68
- # All generators should push to this array whenever they reference a pattern
69
- # so that it is captured in the pattern list, e.g.
70
- # Origen.interface.referenced_patterns << pattern
71
- def referenced_patterns
72
- @@referenced_patterns ||= []
73
- end
74
-
75
- # Add a comment line into the buffer
76
- def comment(text)
77
- comments << text
78
- end
79
-
80
- def comments
81
- @@comments ||= []
82
- end
83
-
84
- def discard_comments
85
- @@comments = nil
86
- end
87
-
88
- # Returns the buffered description comments and clears the buffer
89
- def consume_comments
90
- c = comments
91
- discard_comments
92
- c
93
- end
94
-
95
- def top_level_flow
96
- @@top_level_flow ||= nil
97
- end
98
- alias_method :top_level_flow_filename, :top_level_flow
99
-
100
- def flow_generator
101
- flow
102
- end
103
-
104
- def set_top_level_flow
105
- @@top_level_flow = flow_generator.output_file
106
- end
107
-
108
- def clear_top_level_flow
109
- @@top_level_flow = nil
110
- end
111
-
112
- # A storage Hash that all generators can push comment descriptions
113
- # into when generating.
114
- # At the end of a generation run this will contain all descriptions
115
- # for all flows that were just created.
116
- #
117
- # Access via Origen.interface.descriptions
118
- def descriptions
119
- @@descriptions ||= Parser::DescriptionLookup.new
120
- end
121
-
122
- # Any tests generated within the given block will be generated in resources mode.
123
- # Generally this means that all resources for a given test will be generated but
124
- # flow entries will be inhibited.
125
- def resources_mode
126
- orig = @resources_mode
127
- @resources_mode = true
128
- yield
129
- @resources_mode = orig
130
- end
131
-
132
- def resources_mode?
133
- @resources_mode
134
- end
135
-
136
- def identity_map # :nodoc:
137
- @@identity_map ||= Origen::Tester::Generator::IdentityMap.new
138
- end
139
-
140
- module ClassMethods
141
- # Returns true if the interface class supports the
142
- # given tester instance
143
- def supports?(tester_instance)
144
- # Testers uses different platform check than Origen core
145
- if self.respond_to?('platform')
146
- tester_instance.is_a?(platform)
147
- else
148
- tester_instance.is_a?(self::PLATFORM)
149
- end
150
- end
151
- end
152
- end
153
- end
154
- end
@@ -1,45 +0,0 @@
1
- module Origen
2
- module Tester
3
- class J750
4
- # Methods for handling all J750 file parsing, e.g. datalogs,
5
- # test time profiles, etc.
6
- module Files
7
- # Reads all lines from a J750 detailed execution time file, returning the lines
8
- # as an array like this:
9
- #
10
- # [
11
- # {:name => "power_cycle", :index => 1, :group => 3, :time => 0.00461},
12
- # {:name => "power_cycle", :index => 2, :group => 3, :time => 0.00481},
13
- # {:name => "power_cycle", :index => 3, :group => 3, :time => 0.00438},
14
- # {:name => "nvm_mass_erase", :index => nil, :group => nil, :time => 0.19863},
15
- # ]
16
- def read_test_times(file, _options = {})
17
- tests = []
18
- File.readlines(file).each do |line|
19
- unless line.strip.empty? || line =~ /Entire Job/
20
- # http://rubular.com/r/vZOcqovTsf
21
- if line =~ /(\w+) ?(\(.*?\))? \d\d\d\d (\d+\.\d+).*/
22
- t = { name: Regexp.last_match[1], time: Regexp.last_match[3].to_f.round(6) }
23
- # If an indexed test
24
- if Regexp.last_match[2]
25
- str = Regexp.last_match[2].gsub('(', '').gsub(')', '')
26
- fields = str.split('/')
27
- i = fields[0].to_i
28
- g = fields[1].to_i
29
- t[:index] = i
30
- t[:group] = g
31
-
32
- else
33
- t[:index] = nil
34
- t[:group] = nil
35
- end
36
- tests << t
37
- end
38
- end
39
- end
40
- tests
41
- end
42
- end
43
- end
44
- end
45
- end
@@ -1,203 +0,0 @@
1
- require 'active_support/concern'
2
-
3
- module Origen
4
- module Tester
5
- class J750
6
- module Generator
7
- extend ActiveSupport::Concern
8
-
9
- autoload :TestInstance, 'origen/tester/j750/generator/test_instance'
10
- autoload :TestInstanceGroup, 'origen/tester/j750/generator/test_instance_group'
11
- autoload :TestInstances, 'origen/tester/j750/generator/test_instances'
12
- autoload :Patset, 'origen/tester/j750/generator/patset'
13
- autoload :Patsets, 'origen/tester/j750/generator/patsets'
14
- autoload :Patgroup, 'origen/tester/j750/generator/patgroup'
15
- autoload :Patgroups, 'origen/tester/j750/generator/patgroups'
16
- autoload :Flow, 'origen/tester/j750/generator/flow'
17
- autoload :FlowLine, 'origen/tester/j750/generator/flow_line'
18
- autoload :Placeholder, 'origen/tester/generator/placeholder'
19
-
20
- included do
21
- include Origen::Tester::Interface # adds the interface helpers/Origen hook-up
22
- include Origen::Tester::Generator::FlowControlAPI::Interface
23
- PLATFORM = Origen::Tester::J750
24
- end
25
-
26
- # @api private
27
- def at_flow_start
28
- @@test_instances_filename = nil
29
- @@patsets_filename = nil
30
- @@patgroups_filename = nil
31
- end
32
-
33
- # @api private
34
- def at_run_start
35
- flow.at_run_start
36
- @@test_instance_sheets = nil
37
- @@patset_sheets = nil
38
- @@flow_sheets = nil
39
- @@patgroup_sheets = nil
40
- end
41
- alias_method :reset_globals, :at_run_start
42
-
43
- # Convenience method to allow the current name for the test instance,
44
- # patsets and patgroups sheets to be set to the same value.
45
- #
46
- # # my j750 interface
47
- #
48
- # resources_filename = "common"
49
- #
50
- # # The above is equivalent to:
51
- #
52
- # test_instances_filename = "common"
53
- # patsets_filename = "common"
54
- # patgroups_filename = "common"
55
- def resources_filename=(name)
56
- self.test_instances_filename = name
57
- self.patsets_filename = name
58
- self.patgroups_filename = name
59
- end
60
-
61
- # Set the name of the current test instances sheet. This does not change
62
- # the name of the current sheet, but rather sets the name of the sheet that
63
- # will be generated the next time you access test_instances.
64
- def test_instances_filename=(name)
65
- @@test_instances_filename = name
66
- end
67
-
68
- # Set the name of the current pattern sets sheet. This does not change
69
- # the name of the current sheet, but rather sets the name of the sheet that
70
- # will be generated the next time you access patsets.
71
- def patsets_filename=(name)
72
- @@patsets_filename = name
73
- end
74
-
75
- # Set the name of the current pattern groups sheet. This does not change
76
- # the name of the current sheet, but rather sets the name of the sheet that
77
- # will be generated the next time you access patgroups.
78
- def patgroups_filename=(name)
79
- @@patgroups_filename = name
80
- end
81
-
82
- # Returns the name of the current test instances sheet
83
- def test_instances_filename
84
- @@test_instances_filename ||= 'global'
85
- end
86
-
87
- # Returns the name of the current pat sets sheet
88
- def patsets_filename
89
- @@patsets_filename ||= 'global'
90
- end
91
-
92
- # Returns the name of the current pat groups sheet
93
- def patgroups_filename
94
- @@patgroups_filename ||= 'global'
95
- end
96
-
97
- # Returns a hash containing all test instance sheets
98
- def test_instance_sheets
99
- @@test_instance_sheets ||= {}
100
- end
101
-
102
- # Returns a hash containing all pat set sheets
103
- def patset_sheets
104
- @@patset_sheets ||= {}
105
- end
106
-
107
- # Returns a hash containing all flow sheets
108
- def flow_sheets
109
- @@flow_sheets ||= {}
110
- end
111
-
112
- # Returns a hash containing all pat group sheets
113
- def patgroup_sheets
114
- @@patgroup_sheets ||= {}
115
- end
116
-
117
- # Returns an array containing all sheet generators where a sheet generator is a flow,
118
- # test instance, patset or pat group sheet.
119
- # All Origen program generators must implement this method
120
- def sheet_generators # :nodoc:
121
- g = []
122
- [flow_sheets, test_instance_sheets, patset_sheets, patgroup_sheets].each do |sheets|
123
- sheets.each do |_name, sheet|
124
- g << sheet
125
- end
126
- end
127
- g
128
- end
129
-
130
- # Returns an array containing all flow sheet generators.
131
- # All Origen program generators must implement this method
132
- def flow_generators
133
- g = []
134
- flow_sheets.each do |_name, sheet|
135
- g << sheet
136
- end
137
- g
138
- end
139
-
140
- # Returns the current test instances sheet (as defined by the current value of
141
- # test_instances_filename).
142
- #
143
- # Pass in a filename argument to have a specific sheet returned instead.
144
- #
145
- # If the sheet does not exist yet it will be created.
146
- def test_instances(filename = test_instances_filename)
147
- f = filename.to_sym
148
- return test_instance_sheets[f] if test_instance_sheets[f]
149
- t = TestInstances.new
150
- t.filename = f
151
- test_instance_sheets[f] = t
152
- end
153
-
154
- # Returns the current pattern sets sheet (as defined by the current value of
155
- # patsets_filename).
156
- #
157
- # Pass in a filename argument to have a specific sheet returned instead.
158
- #
159
- # If the sheet does not exist yet it will be created.
160
- def patsets(filename = patsets_filename)
161
- f = filename.to_sym
162
- return patset_sheets[f] if patset_sheets[f]
163
- p = Patsets.new
164
- p.filename = f
165
- patset_sheets[f] = p
166
- end
167
- alias_method :pat_sets, :patsets
168
- alias_method :pattern_sets, :patsets
169
-
170
- # Returns the current flow sheet (as defined by the name of the current top
171
- # level flow source file).
172
- #
173
- # Pass in a filename argument to have a specific sheet returned instead.
174
- #
175
- # If the sheet does not exist yet it will be created.
176
- def flow(filename = Origen.file_handler.current_file.basename('.rb').to_s)
177
- f = filename.to_sym
178
- return flow_sheets[f] if flow_sheets[f]
179
- p = Flow.new
180
- p.inhibit_output if Origen.interface.resources_mode?
181
- p.filename = f
182
- flow_sheets[f] = p
183
- end
184
-
185
- # Returns the current pattern groups sheet (as defined by the current value of
186
- # patgroups_filename).
187
- #
188
- # Pass in a filename argument to have a specific sheet returned instead.
189
- #
190
- # If the sheet does not exist yet it will be created.
191
- def patgroups(filename = patgroups_filename)
192
- f = filename.to_sym
193
- return patgroup_sheets[f] if patgroup_sheets[f]
194
- p = Patgroups.new
195
- p.filename = f
196
- patgroup_sheets[f] = p
197
- end
198
- alias_method :pat_groups, :patgroups
199
- alias_method :pattern_groups, :patgroups
200
- end
201
- end
202
- end
203
- end