HDLRuby 2.11.12 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/README.html +3274 -0
  3. data/README.md +660 -128
  4. data/ext/hruby_sim/hruby_sim_calc.c +2 -0
  5. data/lib/HDLRuby/backend/hruby_allocator.rb +2 -2
  6. data/lib/HDLRuby/backend/hruby_c_allocator.rb +7 -7
  7. data/lib/HDLRuby/hdr_samples/constant_in_function.rb +2 -1
  8. data/lib/HDLRuby/hdr_samples/mei8_bench.rb +1 -1
  9. data/lib/HDLRuby/hdr_samples/with_bram.rb +3 -3
  10. data/lib/HDLRuby/hdr_samples/with_bram_frame_stack.rb +105 -0
  11. data/lib/HDLRuby/hdr_samples/with_bram_stack.rb +69 -0
  12. data/lib/HDLRuby/hdr_samples/with_ref_expr.rb +30 -0
  13. data/lib/HDLRuby/hdr_samples/with_sequencer.rb +185 -0
  14. data/lib/HDLRuby/hdr_samples/with_sequencer_deep.rb +91 -0
  15. data/lib/HDLRuby/hdr_samples/with_sequencer_enumerable.rb +439 -0
  16. data/lib/HDLRuby/hdr_samples/with_sequencer_enumerator.rb +89 -0
  17. data/lib/HDLRuby/hdr_samples/with_sequencer_func.rb +63 -0
  18. data/lib/HDLRuby/hdr_samples/with_sequencer_sync.rb +120 -0
  19. data/lib/HDLRuby/hdrcc.rb +16 -3
  20. data/lib/HDLRuby/hdrlib.rb +1 -1
  21. data/lib/HDLRuby/hruby_db.rb +2 -2
  22. data/lib/HDLRuby/hruby_high.rb +61 -25
  23. data/lib/HDLRuby/hruby_high_fullname.rb +3 -1
  24. data/lib/HDLRuby/hruby_low.rb +2 -2
  25. data/lib/HDLRuby/hruby_low2c.rb +58 -43
  26. data/lib/HDLRuby/hruby_low2hdr.rb +66 -40
  27. data/lib/HDLRuby/hruby_low2high.rb +86 -44
  28. data/lib/HDLRuby/hruby_low2seq.rb +26 -18
  29. data/lib/HDLRuby/hruby_low2sym.rb +14 -13
  30. data/lib/HDLRuby/hruby_low2vhd.rb +78 -43
  31. data/lib/HDLRuby/hruby_low_bool2select.rb +61 -46
  32. data/lib/HDLRuby/hruby_low_casts_without_expression.rb +56 -44
  33. data/lib/HDLRuby/hruby_low_cleanup.rb +18 -16
  34. data/lib/HDLRuby/hruby_low_fix_types.rb +64 -32
  35. data/lib/HDLRuby/hruby_low_mutable.rb +53 -118
  36. data/lib/HDLRuby/hruby_low_resolve.rb +26 -31
  37. data/lib/HDLRuby/hruby_low_with_bool.rb +33 -16
  38. data/lib/HDLRuby/hruby_low_with_port.rb +3 -3
  39. data/lib/HDLRuby/hruby_low_with_var.rb +23 -9
  40. data/lib/HDLRuby/hruby_low_without_concat.rb +19 -13
  41. data/lib/HDLRuby/hruby_low_without_namespace.rb +47 -32
  42. data/lib/HDLRuby/hruby_low_without_parinseq.rb +18 -12
  43. data/lib/HDLRuby/hruby_low_without_select.rb +36 -23
  44. data/lib/HDLRuby/hruby_low_without_subsignals.rb +79 -39
  45. data/lib/HDLRuby/hruby_rcsim.rb +79 -64
  46. data/lib/HDLRuby/hruby_rsim.rb +64 -15
  47. data/lib/HDLRuby/hruby_rsim_mute.rb +2 -3
  48. data/lib/HDLRuby/hruby_rsim_vcd.rb +28 -25
  49. data/lib/HDLRuby/hruby_types.rb +5 -5
  50. data/lib/HDLRuby/hruby_values.rb +19 -8
  51. data/lib/HDLRuby/hruby_verilog.rb +191 -65
  52. data/lib/HDLRuby/hruby_verilog_name.rb +49 -42
  53. data/lib/HDLRuby/soft/stacks.rb +219 -0
  54. data/lib/HDLRuby/std/bram.rb +9 -5
  55. data/lib/HDLRuby/std/clocks.rb +1 -1
  56. data/lib/HDLRuby/std/fsm.rb +39 -10
  57. data/lib/HDLRuby/std/sequencer.rb +2085 -0
  58. data/lib/HDLRuby/std/sequencer_func.rb +533 -0
  59. data/lib/HDLRuby/std/sequencer_sync.rb +400 -0
  60. data/lib/HDLRuby/std/std.rb +13 -0
  61. data/lib/HDLRuby/version.rb +1 -1
  62. data/tuto/adder_sat_flags_vcd.png +0 -0
  63. data/tuto/addsub_vcd.png +0 -0
  64. data/tuto/alu_vcd.png +0 -0
  65. data/tuto/bit_pong_vcd.png +0 -0
  66. data/tuto/checksum_vcd.png +0 -0
  67. data/tuto/circuit_hdr.odg +0 -0
  68. data/tuto/circuit_hdr.png +0 -0
  69. data/tuto/circuit_hie.odg +0 -0
  70. data/tuto/circuit_hie.png +0 -0
  71. data/tuto/circuit_view.odg +0 -0
  72. data/tuto/circuit_view.png +0 -0
  73. data/tuto/clock_counter_vcd.png +0 -0
  74. data/tuto/counter_ext_vcd.png +0 -0
  75. data/tuto/fact_vcd.png +0 -0
  76. data/tuto/hw_flow.odg +0 -0
  77. data/tuto/hw_flow.png +0 -0
  78. data/tuto/maxxer_vcd.png +0 -0
  79. data/tuto/pingpong0_vcd.png +0 -0
  80. data/tuto/pingpong1_vcd.png +0 -0
  81. data/tuto/pingpong2_vcd.png +0 -0
  82. data/tuto/ram_vcd.png +0 -0
  83. data/tuto/serializer_vcd.png +0 -0
  84. data/tuto/sw_flow.odg +0 -0
  85. data/tuto/sw_flow.png +0 -0
  86. data/tuto/the_counter_vcd.png +0 -0
  87. data/tuto/tutorial_sw.html +2359 -0
  88. data/tuto/tutorial_sw.md +2890 -0
  89. data/tuto/tutorial_sw.pdf +0 -0
  90. data/tuto/tutorial_sw_jp.md +417 -0
  91. metadata +46 -2
@@ -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!
@@ -34,9 +34,10 @@ module HDLRuby::Low
34
34
  end
35
35
 
36
36
 
37
- ## Extends the Scope class with functionality for breaking assingments
38
- # to concats.
39
37
  class Scope
38
+ ## Extends the Scope class with functionality for breaking assignments
39
+ # to concats.
40
+
40
41
  # Breaks the assignments to concats.
41
42
  def break_concat_assigns!
42
43
  # Recruse on the sub scopes.
@@ -102,9 +103,11 @@ module HDLRuby::Low
102
103
  end
103
104
  end
104
105
 
105
- ## Extends the Behavior class with functionality for breaking assingments
106
- # to concats.
106
+
107
107
  class Behavior
108
+ ## Extends the Behavior class with functionality for breaking assignments
109
+ # to concats.
110
+
108
111
  # Breaks the assignments to concats.
109
112
  def break_concat_assigns!
110
113
  # Recruse on the block.
@@ -114,9 +117,10 @@ module HDLRuby::Low
114
117
 
115
118
 
116
119
 
117
- ## Extends the Block class with functionality for breaking assingments
118
- # to concats.
119
120
  class Block
121
+ ## Extends the Block class with functionality for breaking assignments
122
+ # to concats.
123
+
120
124
  # Breaks the assignments to concats.
121
125
  #
122
126
  # NOTE: work on the direct sub statement only, not deeply.
@@ -142,9 +146,10 @@ module HDLRuby::Low
142
146
  end
143
147
 
144
148
 
145
- ## Extends the Transmit class with functionality for breaking assingments
146
- # to concats.
147
149
  class Transmit
150
+ ## Extends the Transmit class with functionality for breaking assignments
151
+ # to concats.
152
+
148
153
  # Break the assignments to concats.
149
154
  #
150
155
  # NOTE: when breaking generates a new Block containing the broken
@@ -235,9 +240,10 @@ module HDLRuby::Low
235
240
  end
236
241
 
237
242
 
238
- ## Extends the Connection class with functionality for breaking assingments
239
- # to concats.
240
243
  class Connection
244
+ ## Extends the Connection class with functionality for breaking
245
+ # assignments to concats.
246
+
241
247
  # Break the assignments to concats.
242
248
  #
243
249
  # NOTE: when breaking generates a new Block containing the broken
@@ -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
 
@@ -13,9 +13,9 @@ module HDLRuby::Low
13
13
  ########################################################################
14
14
 
15
15
 
16
- ## Extends the SystemT class with functionality for converting par blocks
17
- # within seq blocks to seq blocks.
18
16
  class SystemT
17
+ ## Extends the SystemT class with functionality for converting par blocks
18
+ # within seq blocks to seq blocks.
19
19
 
20
20
  # Converts par blocks within seq blocks to seq blocks.
21
21
  def par_in_seq2seq!
@@ -23,9 +23,11 @@ module HDLRuby::Low
23
23
  end
24
24
  end
25
25
 
26
- ## Extends the Scope class with functionality for breaking assingments
27
- # to concats.
26
+
28
27
  class Scope
28
+ ## Extends the Scope class with functionality for converting par blocks
29
+ # within seq blocks to seq blocks.
30
+
29
31
  # Converts par blocks within seq blocks to seq blocks.
30
32
  def par_in_seq2seq!
31
33
  # Recruse on the sub scopes.
@@ -38,9 +40,10 @@ module HDLRuby::Low
38
40
  end
39
41
 
40
42
 
41
- ## Extends the Statement class with functionality for breaking assingments
42
- # to concats.
43
43
  class Statement
44
+ ## Extends the Statement class with functionality for converting par
45
+ # blocks within seq blocks to seq blocks.
46
+
44
47
  # Converts par blocks within seq blocks to seq blocks.
45
48
  def par_in_seq2seq!
46
49
  # By default nothing to do.
@@ -55,9 +58,10 @@ module HDLRuby::Low
55
58
  end
56
59
 
57
60
 
58
- ## Extends the If class with functionality for breaking assingments
59
- # to concats.
60
61
  class If
62
+ ## Extends the If class with functionality for converting par blocks
63
+ # within seq blocks to seq blocks.
64
+
61
65
  # Converts par blocks within seq blocks to seq blocks.
62
66
  def par_in_seq2seq!
63
67
  self.yes.par_in_seq2seq!
@@ -78,9 +82,10 @@ module HDLRuby::Low
78
82
  end
79
83
 
80
84
 
81
- ## Extends the Case class with functionality for breaking assingments
82
- # to concats.
83
85
  class Case
86
+ ## Extends the Case class with functionality for converting par blocks
87
+ # within seq blocks to seq blocks.
88
+
84
89
  # Converts par blocks within seq blocks to seq blocks.
85
90
  def par_in_seq2seq!
86
91
  self.each_when do |w|
@@ -99,9 +104,10 @@ module HDLRuby::Low
99
104
  end
100
105
 
101
106
 
102
- ## Extends the Block class with functionality for breaking assingments
103
- # to concats.
104
107
  class Block
108
+ ## Extends the Block class with functionality for converting par blocks
109
+ # within seq blocks to seq blocks.
110
+
105
111
  # Converts par blocks within seq blocks to seq blocks.
106
112
  def par_in_seq2seq!
107
113
  # Recurse on the sub blocks.