HDLRuby 2.11.11 → 3.0.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 (119) hide show
  1. checksums.yaml +4 -4
  2. data/README.html +3274 -0
  3. data/README.md +608 -99
  4. data/ext/hruby_sim/hruby_rcsim_build.c +27 -0
  5. data/ext/hruby_sim/hruby_sim.h +3 -0
  6. data/ext/hruby_sim/hruby_sim_calc.c +2 -0
  7. data/ext/hruby_sim/hruby_sim_core.c +17 -5
  8. data/ext/hruby_sim/hruby_sim_stack_calc.c +1 -1
  9. data/ext/hruby_sim/hruby_sim_tree_calc.c +8 -1
  10. data/ext/hruby_sim/hruby_sim_vcd.c +24 -7
  11. data/ext/hruby_sim/hruby_sim_vizualize.c +9 -1
  12. data/lib/HDLRuby/backend/hruby_allocator.rb +2 -2
  13. data/lib/HDLRuby/backend/hruby_c_allocator.rb +7 -7
  14. data/lib/HDLRuby/hdr_samples/constant_in_function.rb +3 -1
  15. data/lib/HDLRuby/hdr_samples/counter_dff_bench.rb +3 -1
  16. data/lib/HDLRuby/hdr_samples/huge_rom.rb +1 -1
  17. data/lib/HDLRuby/hdr_samples/mei8.rb +11 -11
  18. data/lib/HDLRuby/hdr_samples/mei8_bench.rb +12 -12
  19. data/lib/HDLRuby/hdr_samples/neg_arith_bench.rb +4 -4
  20. data/lib/HDLRuby/hdr_samples/rom_nest.rb +1 -1
  21. data/lib/HDLRuby/hdr_samples/ruby_fir_hw.rb +4 -4
  22. data/lib/HDLRuby/hdr_samples/struct.rb +44 -10
  23. data/lib/HDLRuby/hdr_samples/with_bram.rb +45 -0
  24. data/lib/HDLRuby/hdr_samples/with_bram_frame_stack.rb +105 -0
  25. data/lib/HDLRuby/hdr_samples/with_bram_stack.rb +69 -0
  26. data/lib/HDLRuby/hdr_samples/with_casts.rb +3 -3
  27. data/lib/HDLRuby/hdr_samples/with_concat.rb +6 -6
  28. data/lib/HDLRuby/hdr_samples/with_connector_memory.rb +2 -2
  29. data/lib/HDLRuby/hdr_samples/with_def.rb +10 -3
  30. data/lib/HDLRuby/hdr_samples/with_define_operator.rb +44 -0
  31. data/lib/HDLRuby/hdr_samples/with_fixpoint.rb +12 -12
  32. data/lib/HDLRuby/hdr_samples/with_init.rb +3 -3
  33. data/lib/HDLRuby/hdr_samples/with_leftright.rb +21 -0
  34. data/lib/HDLRuby/hdr_samples/with_reduce.rb +13 -13
  35. data/lib/HDLRuby/hdr_samples/with_ref_array.rb +6 -6
  36. data/lib/HDLRuby/hdr_samples/with_register_stack.rb +150 -0
  37. data/lib/HDLRuby/hdr_samples/with_sequencer.rb +190 -0
  38. data/lib/HDLRuby/hdr_samples/with_sequencer_deep.rb +91 -0
  39. data/lib/HDLRuby/hdr_samples/with_sequencer_enumerable.rb +405 -0
  40. data/lib/HDLRuby/hdr_samples/with_sequencer_enumerator.rb +89 -0
  41. data/lib/HDLRuby/hdr_samples/with_sequencer_sync.rb +120 -0
  42. data/lib/HDLRuby/hdr_samples/with_subsums.rb +3 -3
  43. data/lib/HDLRuby/hdr_samples/with_terminate.rb +3 -3
  44. data/lib/HDLRuby/hdr_samples/with_to_a.rb +10 -10
  45. data/lib/HDLRuby/hdr_samples/with_values.rb +3 -3
  46. data/lib/HDLRuby/hdrcc.rb +29 -3
  47. data/lib/HDLRuby/hdrlib.rb +1 -1
  48. data/lib/HDLRuby/hruby_bstr.rb +10 -5
  49. data/lib/HDLRuby/hruby_db.rb +2 -2
  50. data/lib/HDLRuby/hruby_high.rb +152 -47
  51. data/lib/HDLRuby/hruby_high_fullname.rb +3 -1
  52. data/lib/HDLRuby/hruby_low.rb +189 -18
  53. data/lib/HDLRuby/hruby_low2c.rb +129 -54
  54. data/lib/HDLRuby/hruby_low2hdr.rb +66 -40
  55. data/lib/HDLRuby/hruby_low2high.rb +86 -44
  56. data/lib/HDLRuby/hruby_low2seq.rb +26 -18
  57. data/lib/HDLRuby/hruby_low2sym.rb +14 -13
  58. data/lib/HDLRuby/hruby_low2vhd.rb +80 -44
  59. data/lib/HDLRuby/hruby_low_bool2select.rb +61 -46
  60. data/lib/HDLRuby/hruby_low_casts_without_expression.rb +56 -44
  61. data/lib/HDLRuby/hruby_low_cleanup.rb +18 -16
  62. data/lib/HDLRuby/hruby_low_fix_types.rb +65 -32
  63. data/lib/HDLRuby/hruby_low_mutable.rb +83 -119
  64. data/lib/HDLRuby/hruby_low_resolve.rb +38 -30
  65. data/lib/HDLRuby/hruby_low_with_bool.rb +33 -16
  66. data/lib/HDLRuby/hruby_low_with_port.rb +3 -3
  67. data/lib/HDLRuby/hruby_low_with_var.rb +23 -9
  68. data/lib/HDLRuby/hruby_low_without_concat.rb +45 -19
  69. data/lib/HDLRuby/hruby_low_without_namespace.rb +47 -32
  70. data/lib/HDLRuby/hruby_low_without_parinseq.rb +32 -16
  71. data/lib/HDLRuby/hruby_low_without_select.rb +37 -24
  72. data/lib/HDLRuby/hruby_low_without_subsignals.rb +280 -0
  73. data/lib/HDLRuby/hruby_rcsim.rb +158 -134
  74. data/lib/HDLRuby/hruby_rsim.rb +194 -20
  75. data/lib/HDLRuby/hruby_rsim_mute.rb +2 -3
  76. data/lib/HDLRuby/hruby_rsim_vcd.rb +125 -50
  77. data/lib/HDLRuby/hruby_values.rb +48 -33
  78. data/lib/HDLRuby/hruby_verilog.rb +90 -48
  79. data/lib/HDLRuby/soft/stacks.rb +219 -0
  80. data/lib/HDLRuby/std/bram.rb +26 -0
  81. data/lib/HDLRuby/std/clocks.rb +1 -1
  82. data/lib/HDLRuby/std/fixpoint.rb +2 -2
  83. data/lib/HDLRuby/std/fsm.rb +48 -11
  84. data/lib/HDLRuby/std/function_generator.rb +2 -2
  85. data/lib/HDLRuby/std/sequencer.rb +1857 -0
  86. data/lib/HDLRuby/std/sequencer_sync.rb +400 -0
  87. data/lib/HDLRuby/std/std.rb +12 -0
  88. data/lib/HDLRuby/version.rb +1 -1
  89. data/tuto/adder_sat_flags_vcd.png +0 -0
  90. data/tuto/addsub_vcd.png +0 -0
  91. data/tuto/alu_vcd.png +0 -0
  92. data/tuto/bit_pong_vcd.png +0 -0
  93. data/tuto/checksum_vcd.png +0 -0
  94. data/tuto/circuit_hdr.odg +0 -0
  95. data/tuto/circuit_hdr.png +0 -0
  96. data/tuto/circuit_hie.odg +0 -0
  97. data/tuto/circuit_hie.png +0 -0
  98. data/tuto/circuit_view.odg +0 -0
  99. data/tuto/circuit_view.png +0 -0
  100. data/tuto/clock_counter_vcd.png +0 -0
  101. data/tuto/counter_ext_vcd.png +0 -0
  102. data/tuto/fact_vcd.png +0 -0
  103. data/tuto/hw_flow.odg +0 -0
  104. data/tuto/hw_flow.png +0 -0
  105. data/tuto/maxxer_vcd.png +0 -0
  106. data/tuto/pingpong0_vcd.png +0 -0
  107. data/tuto/pingpong1_vcd.png +0 -0
  108. data/tuto/pingpong2_vcd.png +0 -0
  109. data/tuto/ram_vcd.png +0 -0
  110. data/tuto/serializer_vcd.png +0 -0
  111. data/tuto/sw_flow.odg +0 -0
  112. data/tuto/sw_flow.png +0 -0
  113. data/tuto/the_counter_vcd.png +0 -0
  114. data/tuto/tutorial_sw.html +2359 -0
  115. data/tuto/tutorial_sw.md +2684 -0
  116. data/tuto/tutorial_sw.pdf +0 -0
  117. data/tuto/tutorial_sw_jp.md +417 -0
  118. metadata +49 -3
  119. data/lib/HDLRuby/hdr_samples/sumprod.rb +0 -29
@@ -2,6 +2,9 @@ require "HDLRuby/hruby_error"
2
2
  require "HDLRuby/hruby_low_mutable"
3
3
 
4
4
 
5
+ module HDLRuby::Low
6
+
7
+
5
8
  ##
6
9
  # Provides a new boolean type and converts the comparison and operations
7
10
  # on it to this new type.
@@ -12,10 +15,11 @@ require "HDLRuby/hruby_low_mutable"
12
15
  # * Boolean is weak in type promotion, e.g.: boolean & bit = bit
13
16
  #
14
17
  ########################################################################
15
- module HDLRuby::Low
16
18
 
17
- # Extend Type with check telling if it is a boolean type.
19
+
18
20
  class Type
21
+ ## Extend Type with check telling if it is a boolean type.
22
+
19
23
  # Tells if it is a boolean type.
20
24
  def boolean?
21
25
  return false
@@ -50,9 +54,10 @@ module HDLRuby::Low
50
54
  end
51
55
 
52
56
 
53
- ## Extends the SystemT class for converting types of comparison and
54
- # operations on it to boolean type.
55
57
  class SystemT
58
+ ## Extends the SystemT class for converting types of comparison and
59
+ # operations on it to boolean type.
60
+
56
61
  # Converts to a variable-compatible system.
57
62
  #
58
63
  # NOTE: the result is the same systemT.
@@ -65,9 +70,11 @@ module HDLRuby::Low
65
70
  end
66
71
  end
67
72
 
68
- ## Extends the Behaviour class for converting types of comparison and
69
- # operations on it to boolean type.
73
+
70
74
  class Behavior
75
+ ## Extends the Behaviour class for converting types of comparison and
76
+ # operations on it to boolean type.
77
+
71
78
  # Converts to a variable-compatible system.
72
79
  #
73
80
  # NOTE: the result is the same Behaviour.
@@ -76,9 +83,11 @@ module HDLRuby::Low
76
83
  end
77
84
  end
78
85
 
79
- ## Extends the Statement class for converting types of comparison and
80
- # operations on it to boolean type.
86
+
81
87
  class Statement
88
+ ## Extends the Statement class for converting types of comparison and
89
+ # operations on it to boolean type.
90
+
82
91
  # Converts to a variable-compatible system.
83
92
  #
84
93
  # NOTE: the result is the same Behaviour.
@@ -91,27 +100,33 @@ module HDLRuby::Low
91
100
  end
92
101
  end
93
102
 
94
- ## Extends the Expression class for checking if it a boolean expression
95
- # or not.
103
+
96
104
  class Expression
105
+ ## Extends the Expression class for checking if it a boolean expression
106
+ # or not.
107
+
97
108
  # Tells if the expression is boolean.
98
109
  def boolean?
99
110
  return false
100
111
  end
101
112
  end
102
113
 
103
- ## Extends the Unary class for checking if it is a boolean expression
104
- # or not.
114
+
105
115
  class Unary
116
+ ## Extends the Unary class for checking if it is a boolean expression
117
+ # or not.
118
+
106
119
  # Tells if the expression is boolean.
107
120
  def boolean?
108
121
  return self.child.boolean?
109
122
  end
110
123
  end
111
124
 
112
- ## Extends the Binary class for checking if it is a boolean expression
113
- # or not.
125
+
114
126
  class Binary
127
+ ## Extends the Binary class for checking if it is a boolean expression
128
+ # or not.
129
+
115
130
  # Tells if the expression is boolean.
116
131
  def boolean?
117
132
  case(self.operator)
@@ -128,9 +143,11 @@ module HDLRuby::Low
128
143
  end
129
144
  end
130
145
 
131
- ## Extends the Select class for checking if it a boolean epression
132
- # or not.
146
+
133
147
  class Select
148
+ ## Extends the Select class for checking if it a boolean epression
149
+ # or not.
150
+
134
151
  # Tells if the expression is boolean.
135
152
  def boolean?
136
153
  # Boolean if all the choices are boolean.
@@ -20,8 +20,8 @@ module HDLRuby::Low
20
20
 
21
21
 
22
22
 
23
- ## Extends SystemT with generation of port wires.
24
23
  class SystemT
24
+ ## Extends SystemT with generation of port wires.
25
25
 
26
26
  # Converts to a port-compatible system.
27
27
  #
@@ -33,8 +33,8 @@ module HDLRuby::Low
33
33
  end
34
34
 
35
35
 
36
- ## Extends the Scope class with retrival conversion to symbol.
37
36
  class Scope
37
+ ## Extends the Scope class with retrival conversion to symbol.
38
38
 
39
39
  # Converts a port wire to a reference to it.
40
40
  def portw2ref(portw)
@@ -170,8 +170,8 @@ module HDLRuby::Low
170
170
 
171
171
 
172
172
 
173
- ## Extends SystemT with generation of port wires.
174
173
  class SystemI
174
+ ## Extends SystemT with generation of port wires.
175
175
 
176
176
  def with_port!
177
177
  self.systemT.with_port!
@@ -4,6 +4,8 @@ require "HDLRuby/hruby_low2sym"
4
4
  require "HDLRuby/hruby_low2seq"
5
5
 
6
6
 
7
+ module HDLRuby::Low
8
+
7
9
  ##
8
10
  # Explicitely seperate variables from signals in an HDLRuby::Low
9
11
  # description.
@@ -11,10 +13,12 @@ require "HDLRuby/hruby_low2seq"
11
13
  # NOTE: variable and signal are to be taken in the VHDL meaning.
12
14
  #
13
15
  ########################################################################
14
- module HDLRuby::Low
15
16
 
16
- ## Extends the SystemT class with separation between signals and variables.
17
+
17
18
  class SystemT
19
+ ## Extends the SystemT class with separation between signals and
20
+ # variables.
21
+
18
22
  # Converts to a variable-compatible system.
19
23
  #
20
24
  # NOTE: the result is the same systemT.
@@ -25,8 +29,10 @@ module HDLRuby::Low
25
29
  end
26
30
 
27
31
 
28
- ## Extends the SystemI class with separation between signals and variables.
29
32
  class SystemI
33
+ ## Extends the SystemI class with separation between signals and
34
+ # variables.
35
+
30
36
  # Converts to a variable-compatible system.
31
37
  #
32
38
  # NOTE: the result is the same systemT.
@@ -37,8 +43,10 @@ module HDLRuby::Low
37
43
  end
38
44
 
39
45
 
40
- ## Extends the Behavior class with separation between signals and variables.
41
46
  class Behavior
47
+ ## Extends the Behavior class with separation between signals and
48
+ # variables.
49
+
42
50
  # Converts to a variable-compatible behavior.
43
51
  #
44
52
  # NOTE: the result is the same systemT.
@@ -50,8 +58,9 @@ module HDLRuby::Low
50
58
  end
51
59
 
52
60
 
53
- ## Extends the Block class with separation between signals and variables.
54
61
  class Block
62
+ ## Extends the Block class with separation between signals and variables.
63
+
55
64
 
56
65
  # Converts a variable to a reference to it.
57
66
  def var2ref(var)
@@ -248,8 +257,10 @@ module HDLRuby::Low
248
257
  end
249
258
 
250
259
 
251
- ## Extends the TimeBlock class with separation between signals and variables.
252
260
  class TimeBlock
261
+ ## Extends the TimeBlock class with separation between signals and
262
+ # variables.
263
+
253
264
  # Converts to a variable-compatible block where +upper+ is
254
265
  # the upper block if any.
255
266
  #
@@ -262,8 +273,9 @@ module HDLRuby::Low
262
273
  end
263
274
 
264
275
 
265
- ## Extends the If class with separation between signals and variables.
266
276
  class If
277
+ ## Extends the If class with separation between signals and variables.
278
+
267
279
  # Converts to a variable-compatible if where +upper+ is
268
280
  # the upper block if any.
269
281
  #
@@ -290,8 +302,9 @@ module HDLRuby::Low
290
302
  end
291
303
 
292
304
 
293
- ## Extends the When class with separation between signals and variables.
294
305
  class When
306
+ ## Extends the When class with separation between signals and variables.
307
+
295
308
  # Converts to a variable-compatible case where +upper+ is
296
309
  # the upper block if any.
297
310
  #
@@ -302,8 +315,9 @@ module HDLRuby::Low
302
315
  end
303
316
 
304
317
 
305
- ## Extends the Case class with separation between signals and variables.
306
318
  class Case
319
+ ## Extends the Case class with separation between signals and variables.
320
+
307
321
  # Converts to a variable-compatible case where +upper+ is
308
322
  # the upper block if any.
309
323
  #
@@ -7,15 +7,15 @@ module HDLRuby::Low
7
7
 
8
8
 
9
9
  ##
10
- # Breaks the concat assigments.
10
+ # Breaks the concat assignments.
11
11
  # Makes handling by some synthesis tools easier.
12
12
  #
13
13
  ########################################################################
14
14
 
15
15
 
16
- ## Extends the SystemT class with functionality for breaking assingments
17
- # to concats.
18
16
  class SystemT
17
+ ## Extends the SystemT class with functionality for breaking assignments
18
+ # to concats.
19
19
 
20
20
  # Breaks the assignments to concats.
21
21
  def break_concat_assigns!
@@ -33,16 +33,19 @@ module HDLRuby::Low
33
33
 
34
34
  end
35
35
 
36
- ## Extends the Scope class with functionality for breaking assingments
37
- # to concats.
36
+
38
37
  class Scope
38
+ ## Extends the Scope class with functionality for breaking assignments
39
+ # to concats.
40
+
39
41
  # Breaks the assignments to concats.
40
42
  def break_concat_assigns!
41
43
  # Recruse on the sub scopes.
42
44
  self.each_scope(&:break_concat_assigns!)
43
45
  # Recurse on the statements.
44
46
  self.each_behavior do |behavior|
45
- behavior.block.each_block_deep(&:break_concat_assigns!)
47
+ # behavior.block.each_block_deep(&:break_concat_assigns!)
48
+ behavior.break_concat_assigns!
46
49
  end
47
50
  # Work on the connections.
48
51
  self.each_connection.to_a.each do |connection|
@@ -100,32 +103,53 @@ module HDLRuby::Low
100
103
  end
101
104
  end
102
105
 
103
- ## Extends the Block class with functionality for breaking assingments
104
- # to concats.
106
+
107
+ class Behavior
108
+ ## Extends the Behavior class with functionality for breaking assignments
109
+ # to concats.
110
+
111
+ # Breaks the assignments to concats.
112
+ def break_concat_assigns!
113
+ # Recruse on the block.
114
+ self.block.each_block_deep(&:break_concat_assigns!)
115
+ end
116
+ end
117
+
118
+
119
+
105
120
  class Block
121
+ ## Extends the Block class with functionality for breaking assignments
122
+ # to concats.
123
+
106
124
  # Breaks the assignments to concats.
107
125
  #
108
126
  # NOTE: work on the direct sub statement only, not deeply.
109
127
  def break_concat_assigns!
128
+ # puts "breack_concat_assigns! with block=#{self} with #{self.each_statement.count} statements"
110
129
  # Check each transmit.
111
- self.each_statement.each.with_index do |stmnt,i|
130
+ self.each_statement.to_a.each_with_index do |stmnt|
131
+ # puts "stmnt=#{stmnt}"
112
132
  if stmnt.is_a?(Transmit) then
113
133
  # Transmit, breaking may be necessary.
114
134
  nstmnt = stmnt.break_concat_assigns
115
135
  if nstmnt.is_a?(Block) then
116
136
  # The transmit has been broken, remove the former
117
137
  # version and add the generated block as a behavior.
118
- self.set_statement!(i,nstmnt)
138
+ # self.set_statement!(i,nstmnt)
139
+ self.replace_statement!(stmnt,nstmnt)
140
+ # puts "nstmnt.parent=#{nstmnt.parent}"
119
141
  end
120
142
  end
121
143
  end
144
+ return self
122
145
  end
123
146
  end
124
147
 
125
148
 
126
- ## Extends the Transmit class with functionality for breaking assingments
127
- # to concats.
128
149
  class Transmit
150
+ ## Extends the Transmit class with functionality for breaking assignments
151
+ # to concats.
152
+
129
153
  # Break the assignments to concats.
130
154
  #
131
155
  # NOTE: when breaking generates a new Block containing the broken
@@ -144,11 +168,12 @@ module HDLRuby::Low
144
168
  top_scope = top_block.top_scope
145
169
  aux = top_scope.add_inner(
146
170
  SignalI.new(HDLRuby.uniq_name,self.right.type) )
147
- # puts "new signal: #{aux.name}"
148
171
  aux = RefName.new(aux.type,RefThis.new,aux.name)
149
172
  # Is a default value required to avoid latch generation?
150
- unless top_block.parent.each_event.
151
- find {|ev| ev.type!=:change} then
173
+ unless top_block.is_a?(TimeBlock) ||
174
+ top_block.parent.each_event.
175
+ # find {|ev| ev.type!=:change} then
176
+ find {|ev| ev.type!=:anyedge} then
152
177
  # Yes, generate it.
153
178
  top_block.insert_statement!(0,
154
179
  Transmit.new(aux.clone,Value.new(aux.type,0)))
@@ -204,8 +229,8 @@ module HDLRuby::Low
204
229
  end
205
230
  pos += ref.type.width
206
231
  end
207
- # puts "Resulting block=#{block.to_vhdl}"
208
232
  # Return the resulting block
233
+ # puts "new block=#{block}"
209
234
  return block
210
235
  end
211
236
  end
@@ -215,9 +240,10 @@ module HDLRuby::Low
215
240
  end
216
241
 
217
242
 
218
- ## Extends the Connection class with functionality for breaking assingments
219
- # to concats.
220
243
  class Connection
244
+ ## Extends the Connection class with functionality for breaking
245
+ # assignments to concats.
246
+
221
247
  # Break the assignments to concats.
222
248
  #
223
249
  # NOTE: when breaking generates a new Block containing the broken
@@ -229,7 +255,7 @@ module HDLRuby::Low
229
255
  if node.is_a?(RefConcat) then
230
256
  # Yes, must break. Create the resulting sequential
231
257
  # block that will contain the new assignements.
232
- block = Block.new(:seq)
258
+ block = Block.new(:par)
233
259
  # Create an intermediate signal for storing the
234
260
  # right value. Put it in the top scope.
235
261
  top_scope = self.top_scope
@@ -27,9 +27,10 @@ module HDLRuby::Low
27
27
  end
28
28
  end
29
29
 
30
- ## Extends the SystemT class with functionality for moving the declarations
31
- # to the upper namespace.
30
+
32
31
  class SystemT
32
+ ## Extends the SystemT class with functionality for moving the
33
+ # declarations to the upper namespace.
33
34
 
34
35
  include ForceName
35
36
 
@@ -78,9 +79,10 @@ module HDLRuby::Low
78
79
  end
79
80
  end
80
81
 
81
- ## Extends the Scope class with functionality for moving the declarations
82
- # to the upper namespace.
82
+
83
83
  class Scope
84
+ ## Extends the Scope class with functionality for moving the declarations
85
+ # to the upper namespace.
84
86
 
85
87
  include ForceName
86
88
 
@@ -280,9 +282,10 @@ module HDLRuby::Low
280
282
  end
281
283
  end
282
284
 
283
- ## Extends the Type class with functionality for breaking hierarchical
284
- # types.
285
+
285
286
  class Type
287
+ ## Extends the Type class with functionality for breaking hierarchical
288
+ # types.
286
289
 
287
290
  # Breaks the hierarchical types into sequences of type definitions.
288
291
  # Assumes to_upper_space! has been called before.
@@ -293,9 +296,10 @@ module HDLRuby::Low
293
296
  end
294
297
  end
295
298
 
296
- ## Extends the TypeVector class with functionality for breaking hierarchical
297
- # types.
299
+
298
300
  class TypeVector
301
+ ## Extends the TypeVector class with functionality for breaking hierarchical
302
+ # types.
299
303
 
300
304
  # Breaks the hierarchical types into sequences of type definitions.
301
305
  # Assumes to_upper_space! has been called before.
@@ -333,9 +337,10 @@ module HDLRuby::Low
333
337
  end
334
338
  end
335
339
 
336
- ## Extends the TypeTuple class with functionality for breaking hierarchical
337
- # types.
340
+
338
341
  class TypeTuple
342
+ ## Extends the TypeTuple class with functionality for breaking
343
+ # hierarchical types.
339
344
 
340
345
  # Breaks the hierarchical types into sequences of type definitions.
341
346
  # Assumes to_upper_space! has been called before.
@@ -365,9 +370,10 @@ module HDLRuby::Low
365
370
  end
366
371
  end
367
372
 
368
- ## Extends the TypeStruct class with functionality for breaking hierarchical
369
- # types.
373
+
370
374
  class TypeStruct
375
+ ## Extends the TypeStruct class with functionality for breaking
376
+ # hierarchical types.
371
377
 
372
378
  # Breaks the hierarchical types into sequences of type definitions.
373
379
  # Assumes to_upper_space! has been called before.
@@ -397,9 +403,10 @@ module HDLRuby::Low
397
403
  end
398
404
  end
399
405
 
400
- ## Extends the SignalI class with functionality for moving the declarations
401
- # to the upper namespace.
406
+
402
407
  class SignalI
408
+ ## Extends the SignalI class with functionality for moving the
409
+ # declarations to the upper namespace.
403
410
 
404
411
  # Replaces recursively +former+ name by +nname+ until it is redeclared.
405
412
  def replace_names!(former,nname)
@@ -412,9 +419,10 @@ module HDLRuby::Low
412
419
  end
413
420
  end
414
421
 
415
- ## Extends the SystemI class with functionality for moving the declarations
416
- # to the upper namespace.
422
+
417
423
  class SystemI
424
+ ## Extends the SystemI class with functionality for moving the
425
+ # declarations to the upper namespace.
418
426
 
419
427
  # Replaces recursively +former+ name by +nname+ until it is redeclared.
420
428
  def replace_names!(former,nname)
@@ -429,9 +437,9 @@ module HDLRuby::Low
429
437
  end
430
438
 
431
439
 
432
- ## Extends the Behavior class with functionality for moving the declarations
433
- # to the upper namespace.
434
440
  class Behavior
441
+ ## Extends the Behavior class with functionality for moving the
442
+ # declarations to the upper namespace.
435
443
 
436
444
  # Moves the declarations to the upper namespace.
437
445
  def to_upper_space!
@@ -454,9 +462,10 @@ module HDLRuby::Low
454
462
  end
455
463
  end
456
464
 
457
- ## Extends the Statement class with functionality for moving the
458
- # declarations to the upper namespace.
465
+
459
466
  class Statement
467
+ ## Extends the Statement class with functionality for moving the
468
+ # declarations to the upper namespace.
460
469
 
461
470
  # Moves the declarations to the upper namespace.
462
471
  def to_upper_space!
@@ -491,9 +500,10 @@ module HDLRuby::Low
491
500
  end
492
501
  end
493
502
 
494
- ## Extends the Expression class with functionality for moving the
495
- # declarations to the upper namespace.
503
+
496
504
  class Expression
505
+ ## Extends the Expression class with functionality for moving the
506
+ # declarations to the upper namespace.
497
507
 
498
508
  # Replaces recursively +former+ name by +nname+ until it is redeclared.
499
509
  def replace_names!(former,nname)
@@ -518,10 +528,11 @@ module HDLRuby::Low
518
528
  end
519
529
  end
520
530
  end
531
+
521
532
 
522
- ## Extends the If class with functionality for moving the declarations
523
- # to the upper namespace.
524
533
  class If
534
+ ## Extends the If class with functionality for moving the declarations
535
+ # to the upper namespace.
525
536
 
526
537
  # Moves the declarations to the upper namespace.
527
538
  def to_upper_space!
@@ -569,9 +580,10 @@ module HDLRuby::Low
569
580
  end
570
581
  end
571
582
 
572
- ## Extends the When class with functionality for moving the declarations
573
- # to the upper namespace.
583
+
574
584
  class When
585
+ ## Extends the When class with functionality for moving the declarations
586
+ # to the upper namespace.
575
587
 
576
588
  # Moves the declarations to the upper namespace.
577
589
  def to_upper_space!
@@ -608,9 +620,10 @@ module HDLRuby::Low
608
620
  end
609
621
  end
610
622
 
611
- ## Extends the When class with functionality for moving the declarations
612
- # to the upper namespace.
623
+
613
624
  class Case
625
+ ## Extends the When class with functionality for moving the declarations
626
+ # to the upper namespace.
614
627
 
615
628
  # Moves the declarations to the upper namespace.
616
629
  def to_upper_space!
@@ -644,9 +657,10 @@ module HDLRuby::Low
644
657
  end
645
658
  end
646
659
 
647
- ## Extends the When class with functionality for moving the declarations
648
- # to the upper namespace.
660
+
649
661
  class TimeRepeat
662
+ ## Extends the When class with functionality for moving the declarations
663
+ # to the upper namespace.
650
664
 
651
665
  # Moves the declarations to the upper namespace.
652
666
  def to_upper_space!
@@ -669,9 +683,10 @@ module HDLRuby::Low
669
683
  end
670
684
  end
671
685
 
672
- ## Extends the When class with functionality for moving the declarations
673
- # to the upper namespace.
686
+
674
687
  class Block
688
+ ## Extends the When class with functionality for moving the declarations
689
+ # to the upper namespace.
675
690
 
676
691
  include ForceName
677
692