HDLRuby 2.11.11 → 3.0.0

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