origen 0.2.6 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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