HDLRuby 2.11.12 → 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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/README.html +3274 -0
  3. data/README.md +556 -84
  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/mei8_bench.rb +1 -1
  8. data/lib/HDLRuby/hdr_samples/with_bram.rb +3 -3
  9. data/lib/HDLRuby/hdr_samples/with_bram_frame_stack.rb +105 -0
  10. data/lib/HDLRuby/hdr_samples/with_bram_stack.rb +69 -0
  11. data/lib/HDLRuby/hdr_samples/with_register_stack.rb +150 -0
  12. data/lib/HDLRuby/hdr_samples/with_sequencer.rb +190 -0
  13. data/lib/HDLRuby/hdr_samples/with_sequencer_deep.rb +91 -0
  14. data/lib/HDLRuby/hdr_samples/with_sequencer_enumerable.rb +405 -0
  15. data/lib/HDLRuby/hdr_samples/with_sequencer_enumerator.rb +89 -0
  16. data/lib/HDLRuby/hdr_samples/with_sequencer_sync.rb +120 -0
  17. data/lib/HDLRuby/hdrcc.rb +15 -2
  18. data/lib/HDLRuby/hdrlib.rb +1 -1
  19. data/lib/HDLRuby/hruby_db.rb +2 -2
  20. data/lib/HDLRuby/hruby_high.rb +38 -20
  21. data/lib/HDLRuby/hruby_high_fullname.rb +3 -1
  22. data/lib/HDLRuby/hruby_low.rb +2 -2
  23. data/lib/HDLRuby/hruby_low2c.rb +58 -43
  24. data/lib/HDLRuby/hruby_low2hdr.rb +66 -40
  25. data/lib/HDLRuby/hruby_low2high.rb +86 -44
  26. data/lib/HDLRuby/hruby_low2seq.rb +26 -18
  27. data/lib/HDLRuby/hruby_low2sym.rb +14 -13
  28. data/lib/HDLRuby/hruby_low2vhd.rb +78 -43
  29. data/lib/HDLRuby/hruby_low_bool2select.rb +61 -46
  30. data/lib/HDLRuby/hruby_low_casts_without_expression.rb +56 -44
  31. data/lib/HDLRuby/hruby_low_cleanup.rb +18 -16
  32. data/lib/HDLRuby/hruby_low_fix_types.rb +64 -32
  33. data/lib/HDLRuby/hruby_low_mutable.rb +53 -118
  34. data/lib/HDLRuby/hruby_low_resolve.rb +26 -31
  35. data/lib/HDLRuby/hruby_low_with_bool.rb +33 -16
  36. data/lib/HDLRuby/hruby_low_with_port.rb +3 -3
  37. data/lib/HDLRuby/hruby_low_with_var.rb +23 -9
  38. data/lib/HDLRuby/hruby_low_without_concat.rb +19 -13
  39. data/lib/HDLRuby/hruby_low_without_namespace.rb +47 -32
  40. data/lib/HDLRuby/hruby_low_without_parinseq.rb +18 -12
  41. data/lib/HDLRuby/hruby_low_without_select.rb +36 -23
  42. data/lib/HDLRuby/hruby_low_without_subsignals.rb +29 -28
  43. data/lib/HDLRuby/hruby_rcsim.rb +79 -64
  44. data/lib/HDLRuby/hruby_rsim.rb +64 -15
  45. data/lib/HDLRuby/hruby_rsim_mute.rb +2 -3
  46. data/lib/HDLRuby/hruby_rsim_vcd.rb +28 -25
  47. data/lib/HDLRuby/hruby_values.rb +13 -2
  48. data/lib/HDLRuby/hruby_verilog.rb +90 -48
  49. data/lib/HDLRuby/soft/stacks.rb +219 -0
  50. data/lib/HDLRuby/std/bram.rb +9 -5
  51. data/lib/HDLRuby/std/clocks.rb +1 -1
  52. data/lib/HDLRuby/std/fsm.rb +29 -9
  53. data/lib/HDLRuby/std/sequencer.rb +1857 -0
  54. data/lib/HDLRuby/std/sequencer_sync.rb +400 -0
  55. data/lib/HDLRuby/std/std.rb +12 -0
  56. data/lib/HDLRuby/version.rb +1 -1
  57. data/tuto/adder_sat_flags_vcd.png +0 -0
  58. data/tuto/addsub_vcd.png +0 -0
  59. data/tuto/alu_vcd.png +0 -0
  60. data/tuto/bit_pong_vcd.png +0 -0
  61. data/tuto/checksum_vcd.png +0 -0
  62. data/tuto/circuit_hdr.odg +0 -0
  63. data/tuto/circuit_hdr.png +0 -0
  64. data/tuto/circuit_hie.odg +0 -0
  65. data/tuto/circuit_hie.png +0 -0
  66. data/tuto/circuit_view.odg +0 -0
  67. data/tuto/circuit_view.png +0 -0
  68. data/tuto/clock_counter_vcd.png +0 -0
  69. data/tuto/counter_ext_vcd.png +0 -0
  70. data/tuto/fact_vcd.png +0 -0
  71. data/tuto/hw_flow.odg +0 -0
  72. data/tuto/hw_flow.png +0 -0
  73. data/tuto/maxxer_vcd.png +0 -0
  74. data/tuto/pingpong0_vcd.png +0 -0
  75. data/tuto/pingpong1_vcd.png +0 -0
  76. data/tuto/pingpong2_vcd.png +0 -0
  77. data/tuto/ram_vcd.png +0 -0
  78. data/tuto/serializer_vcd.png +0 -0
  79. data/tuto/sw_flow.odg +0 -0
  80. data/tuto/sw_flow.png +0 -0
  81. data/tuto/the_counter_vcd.png +0 -0
  82. data/tuto/tutorial_sw.html +2359 -0
  83. data/tuto/tutorial_sw.md +2684 -0
  84. data/tuto/tutorial_sw.pdf +0 -0
  85. data/tuto/tutorial_sw_jp.md +417 -0
  86. metadata +44 -2
data/lib/HDLRuby/hdrcc.rb CHANGED
@@ -263,6 +263,9 @@ module HDLRuby
263
263
  # Initialize the environment for processing the hdr file.
264
264
  bind = TOPLEVEL_BINDING.clone
265
265
  eval("require 'HDLRuby'\n\nconfigure_high\n\n",bind)
266
+ if $options[:std] then
267
+ eval("require 'std/std.rb'\n\ninclude HDLRuby::High::Std\n\n",bind)
268
+ end
266
269
  # Process it.
267
270
  eval(@texts[0],bind,@top_file_name,1)
268
271
  # Get the resulting instance
@@ -280,8 +283,8 @@ module HDLRuby
280
283
  end
281
284
 
282
285
 
283
- # Extend the Code class with generation of file for the content.
284
286
  class HDLRuby::Low::Code
287
+ ## Extends the Code class with generation of file for the content.
285
288
 
286
289
  ## Creates a file in +path+ containing the content of the code.
287
290
  def to_file(path = "")
@@ -337,6 +340,9 @@ end
337
340
  require 'optparse'
338
341
  # Process the command line options
339
342
  $options = {}
343
+ # By default the std libraries are loaded.
344
+ $options[:std] = true
345
+ # Parse the options
340
346
  $optparse = OptionParser.new do |opts|
341
347
  opts.banner = "Usage: hdrcc.rb [options] <input file> [<output directory or file>]"
342
348
 
@@ -435,6 +441,9 @@ $optparse = OptionParser.new do |opts|
435
441
  opts.on("--testall","Compile all the available unit tests.") do |t|
436
442
  $options[:testall] = t
437
443
  end
444
+ opts.on("--no-std", "Compile without the standard library.") do |t|
445
+ $options[:std] = false
446
+ end
438
447
  opts.on("-t", "--top system", "Specify the top system to process") do|t|
439
448
  $options[:top] = t
440
449
  end
@@ -445,7 +454,11 @@ $optparse = OptionParser.new do |opts|
445
454
  $options[:dump] = v
446
455
  $options[:multiple] = v
447
456
  end
448
- opts.on("--version", "Shows the version of HDLRuby.") do |v|
457
+ opts.on("--get-samples", "Copy the sample directory (hdr_samples) to current one, the exit") do
458
+ FileUtils.copy_entry(File.dirname(__FILE__) + "/hdr_samples","./hdr_samples")
459
+ exit
460
+ end
461
+ opts.on("--version", "Show the version of HDLRuby, then exit") do |v|
449
462
  puts VERSION
450
463
  exit
451
464
  end
@@ -226,8 +226,8 @@ module HDLRuby
226
226
  end
227
227
 
228
228
 
229
- # Extend the Code class with generation of file for the content.
230
229
  class HDLRuby::Low::Code
230
+ ## Extends the Code class with generation of file for the content.
231
231
 
232
232
  ## Creates a file in +path+ containing the content of the code.
233
233
  def to_file(path = "")
@@ -9,7 +9,7 @@ warn "hruby_db.rb (former hruby_low.rb) is deprecated."
9
9
  ##
10
10
  # Low-level libraries for describing digital hardware.
11
11
  #######################################################
12
- module HDLRuby::Low
12
+ module HDLRuby::LowDB
13
13
 
14
14
  Base = HDLRuby::Base
15
15
 
@@ -151,7 +151,7 @@ module HDLRuby::Low
151
151
  end
152
152
 
153
153
  ##
154
- # Describes a unsigned integer data type.
154
+ # Describes an unsigned integer data type.
155
155
  class TypeUnsigned < Base::TypeUnsigned
156
156
  include Ltype
157
157
  end
@@ -2044,7 +2044,7 @@ module HDLRuby::High
2044
2044
  end
2045
2045
 
2046
2046
  ##
2047
- # Describes a unsigned integer data type.
2047
+ # Describes an unsigned integer data type.
2048
2048
  class TypeUnsigned < TypeVector
2049
2049
 
2050
2050
  # Creates a new vector type named +name+ from +base+ type and with
@@ -2855,17 +2855,17 @@ module HDLRuby::High
2855
2855
 
2856
2856
  # Casts to a bit vector type.
2857
2857
  def to_bit
2858
- return self.as(bit[self.width])
2858
+ return self.as(HDLRuby::High.top_user.bit[self.type.width])
2859
2859
  end
2860
2860
 
2861
2861
  # Casts to an unsigned bit vector type.
2862
2862
  def to_unsigned
2863
- return self.as(unsigned[self.width])
2863
+ return self.as(HDLRuby::High.top_user.unsigned[self.type.width])
2864
2864
  end
2865
2865
 
2866
2866
  # Casts to a signed bit vector type.
2867
- def to_unsigned
2868
- return self.as(signed[self.width])
2867
+ def to_signed
2868
+ return self.as(HDLRuby::High.top_user.signed[self.type.width])
2869
2869
  end
2870
2870
 
2871
2871
  # Extends on the left to +n+ bits filling with +v+ bit values.
@@ -2997,6 +2997,12 @@ module HDLRuby::High
2997
2997
  define_method(orig_operator(operator),&meth)
2998
2998
  end
2999
2999
 
3000
+ # The <=> operator is also supported by is transformed into a sub
3001
+ # with a signed result.
3002
+ def <=>(expr)
3003
+ return (self.as(self.type.base[self.type.width+1])-expr).to_signed
3004
+ end
3005
+
3000
3006
 
3001
3007
  # Creates an access to elements of range +rng+ of the signal.
3002
3008
  #
@@ -3188,7 +3194,7 @@ module HDLRuby::High
3188
3194
 
3189
3195
 
3190
3196
  ##
3191
- # Describes a section operation (generalization of the ternary operator).
3197
+ # Describes a selection operation (generalization of the ternary operator).
3192
3198
  #
3193
3199
  # NOTE: choice is using the value of +select+ as an index.
3194
3200
  class Select < Low::Select
@@ -3344,6 +3350,12 @@ module HDLRuby::High
3344
3350
  end
3345
3351
  end
3346
3352
 
3353
+ # Get the refered objects.
3354
+ def objects
3355
+ return [ self.object] if self.is_a?(RefObject)
3356
+ return self.each.map { |ref| ref.objects }.flatten
3357
+ end
3358
+
3347
3359
  # Reference can be used like enumerator
3348
3360
  include Enumerable
3349
3361
  end
@@ -4410,14 +4422,14 @@ module HDLRuby::High
4410
4422
  super(nil)
4411
4423
  # # Save the Location for debugging information
4412
4424
  # @location = caller_locations
4413
- # Sets the current behavior
4414
- @@cur_behavior = self
4425
+ # # Sets the current behavior
4426
+ # @@cur_behavior = self
4415
4427
  # Add the events (they may be hierarchical to flatten)
4416
4428
  events.flatten.each { |event| self.add_event(event) }
4417
4429
  # Create and add the block.
4418
4430
  self.block = High.make_block(mode,&ruby_block)
4419
- # Unset the current behavior
4420
- @@cur_behavior = nil
4431
+ # # Unset the current behavior
4432
+ # @@cur_behavior = nil
4421
4433
  end
4422
4434
 
4423
4435
  # Sets an event to the behavior.
@@ -4584,12 +4596,21 @@ module HDLRuby::High
4584
4596
  end
4585
4597
  end
4586
4598
 
4587
- # The current behavior: by default none.
4588
- @@cur_behavior = nil
4599
+ # # The current behavior: by default none.
4600
+ # @@cur_behavior = nil
4589
4601
 
4590
4602
  # Gets the enclosing behavior if any.
4591
4603
  def self.cur_behavior
4592
- return @@cur_behavior
4604
+ # return @@cur_behavior
4605
+ if in_behavior? then
4606
+ user = top_user
4607
+ while(user && !user.is_a?(Behavior)) do
4608
+ user = user.parent
4609
+ end
4610
+ return user
4611
+ else
4612
+ return nil
4613
+ end
4593
4614
  end
4594
4615
 
4595
4616
  # Tell if we are in a behavior.
@@ -4765,13 +4786,10 @@ module HDLRuby::High
4765
4786
  return Value.new(TypeSigned.new(:"",self.bit_length..0),self)
4766
4787
  end
4767
4788
  end
4768
- end
4769
-
4770
- # Extends the Float class for computing for conversion to expression.
4771
- class ::Float
4772
- # Converts to a new high-level expression.
4773
- def to_expr
4774
- return Value.new(Float,self)
4789
+
4790
+ # Gets the bit width
4791
+ def width
4792
+ return self.bit_length
4775
4793
  end
4776
4794
  end
4777
4795
 
@@ -5,10 +5,11 @@ require "HDLRuby/hruby_high"
5
5
  module HDLRuby::High
6
6
 
7
7
  ##
8
- # Library for describing adding the fullname method to HDLRuby::High objects.
8
+ # Library for adding the fullname method to HDLRuby::High objects.
9
9
  #
10
10
  ########################################################################
11
11
 
12
+
12
13
  class SystemT
13
14
 
14
15
  ## Returns the name of the signal with its hierarchy.
@@ -32,6 +33,7 @@ module HDLRuby::High
32
33
 
33
34
  end
34
35
 
36
+
35
37
  class Scope
36
38
  include WithFullname
37
39
  end
@@ -1919,7 +1919,7 @@ module HDLRuby::Low
1919
1919
  end
1920
1920
 
1921
1921
  ##
1922
- # Describes a unsigned integer data type.
1922
+ # Describes an unsigned integer data type.
1923
1923
  class TypeUnsigned < TypeVector
1924
1924
 
1925
1925
  # Creates a new vector type named +name+ from +base+ type and with
@@ -6117,7 +6117,7 @@ module HDLRuby::Low
6117
6117
 
6118
6118
 
6119
6119
  ##
6120
- # Describe a this reference.
6120
+ # Describes a this reference.
6121
6121
  #
6122
6122
  # This is the current system.
6123
6123
  class RefThis < Ref
@@ -165,8 +165,8 @@ module HDLRuby::Low
165
165
  end
166
166
 
167
167
 
168
- ## Extends the SystemT class with generation of C text.
169
168
  class SystemT
169
+ ## Extends the SystemT class with generation of C text.
170
170
 
171
171
  # Generates the text of the equivalent HDLRuby code.
172
172
  # +level+ is the hierachical level of the object and +hnames+
@@ -402,8 +402,8 @@ module HDLRuby::Low
402
402
  end
403
403
 
404
404
 
405
- ## Extends the Scope class with generation of C text.
406
405
  class Scope
406
+ ## Extends the Scope class with generation of C text.
407
407
 
408
408
  # Generates the C text of the equivalent HDLRuby code.
409
409
  # +level+ is the hierachical level of the object.
@@ -567,8 +567,8 @@ module HDLRuby::Low
567
567
  end
568
568
 
569
569
 
570
- ## Extends the Type class with generation of C text.
571
570
  class Type
571
+ ## Extends the Type class with generation of C text.
572
572
 
573
573
  # Generates the C text of the equivalent HDLRuby code.
574
574
  # +level+ is the hierachical level of the object.
@@ -587,8 +587,9 @@ module HDLRuby::Low
587
587
  end
588
588
  end
589
589
 
590
- ## Extends the TypeDef class with generation of C text.
590
+
591
591
  class TypeDef
592
+ ## Extends the TypeDef class with generation of C text.
592
593
 
593
594
  # Generates the C text of the equivalent HDLRuby code.
594
595
  # +level+ is the hierachical level of the object.
@@ -601,8 +602,9 @@ module HDLRuby::Low
601
602
  end
602
603
  end
603
604
 
604
- ## Extends the TypeVector class with generation of C text.
605
+
605
606
  class TypeVector
607
+ ## Extends the TypeVector class with generation of C text.
606
608
 
607
609
  # Generates the C text of the equivalent HDLRuby code.
608
610
  # +level+ is the hierachical level of the object.
@@ -618,8 +620,9 @@ module HDLRuby::Low
618
620
  end
619
621
  end
620
622
 
621
- ## Extends the TypeTuple class with generation of C text.
623
+
622
624
  class TypeTuple
625
+ ## Extends the TypeTuple class with generation of C text.
623
626
 
624
627
  # Generates the C text of the equivalent HDLRuby code.
625
628
  # +level+ is the hierachical level of the object.
@@ -634,8 +637,8 @@ module HDLRuby::Low
634
637
  end
635
638
 
636
639
 
637
- ## Extends the TypeStruct class with generation of C text.
638
640
  class TypeStruct
641
+ ## Extends the TypeStruct class with generation of C text.
639
642
 
640
643
  # Generates the text of the equivalent HDLRuby code.
641
644
  # +level+ is the hierachical level of the object.
@@ -650,8 +653,8 @@ module HDLRuby::Low
650
653
  end
651
654
 
652
655
 
653
- ## Extends the Behavior class with generation of C text.
654
656
  class Behavior
657
+ ## Extends the Behavior class with generation of C text.
655
658
 
656
659
  # Generates the text of the equivalent HDLRuby code.
657
660
  # +level+ is the hierachical level of the object and
@@ -837,8 +840,9 @@ module HDLRuby::Low
837
840
  end
838
841
  end
839
842
 
840
- ## Extends the TimeBehavior class with generation of C text.
843
+
841
844
  class TimeBehavior
845
+ ## Extends the TimeBehavior class with generation of C text.
842
846
 
843
847
  # Generates the C text of the equivalent HDLRuby code.
844
848
  # +level+ is the hierachical level of the object.
@@ -850,8 +854,8 @@ module HDLRuby::Low
850
854
  end
851
855
 
852
856
 
853
- ## Extends the Event class with generation of C text.
854
857
  class Event
858
+ ## Extends the Event class with generation of C text.
855
859
 
856
860
  # Generates the C text of the equivalent HDLRuby code.
857
861
  # +level+ is the hierachical level of the object.
@@ -870,8 +874,8 @@ module HDLRuby::Low
870
874
  end
871
875
 
872
876
 
873
- ## Extends the SignalI class with generation of C text.
874
877
  class SignalI
878
+ ## Extends the SignalI class with generation of C text.
875
879
 
876
880
  # The id of a signal in the simulator.
877
881
  @@signal_id = 0
@@ -1085,8 +1089,8 @@ module HDLRuby::Low
1085
1089
  end
1086
1090
 
1087
1091
 
1088
- ## Extends the SystemI class with generation of C text.
1089
1092
  class SystemI
1093
+ ## Extends the SystemI class with generation of C text.
1090
1094
 
1091
1095
  ## Generates the C text of the equivalent HDLRuby code.
1092
1096
  # +level+ is the hierachical level of the object.
@@ -1166,8 +1170,8 @@ module HDLRuby::Low
1166
1170
  end
1167
1171
 
1168
1172
 
1169
- # Extend the Chunk cass with generation of text code.
1170
1173
  class HDLRuby::Low::Chunk
1174
+ # Extend the Chunk cass with generation of text code.
1171
1175
 
1172
1176
  # Generates the C text of the equivalent HDLRuby code.
1173
1177
  # +level+ is the hierachical level of the object.
@@ -1198,8 +1202,9 @@ module HDLRuby::Low
1198
1202
  end
1199
1203
 
1200
1204
 
1201
- ## Extends the SystemI class with generation of C text.
1202
1205
  class Code
1206
+ ## Extends the SystemI class with generation of C text.
1207
+
1203
1208
  # Generates the C text of the equivalent HDLRuby code.
1204
1209
  # +level+ is the hierachical level of the object.
1205
1210
  # def to_c(level = 0)
@@ -1320,8 +1325,8 @@ module HDLRuby::Low
1320
1325
  end
1321
1326
 
1322
1327
 
1323
- ## Extends the Statement class with generation of C text.
1324
1328
  class Statement
1329
+ ## Extends the Statement class with generation of C text.
1325
1330
 
1326
1331
  # Generates the C text of the equivalent HDLRuby code.
1327
1332
  # +level+ is the hierachical level of the object.
@@ -1362,8 +1367,8 @@ module HDLRuby::Low
1362
1367
  end
1363
1368
  end
1364
1369
 
1365
- ## Extends the Transmit class with generation of C text.
1366
1370
  class Transmit
1371
+ ## Extends the Transmit class with generation of C text.
1367
1372
 
1368
1373
  # # Generates the C text of the equivalent HDLRuby code.
1369
1374
  # # +level+ is the hierachical level of the object.
@@ -1464,8 +1469,8 @@ module HDLRuby::Low
1464
1469
  end
1465
1470
 
1466
1471
 
1467
- ## Extends the Print class with generation of C text.
1468
1472
  class Print
1473
+ ## Extends the Print class with generation of C text.
1469
1474
 
1470
1475
  # # Generates the C text of the equivalent HDLRuby code.
1471
1476
  # # +level+ is the hierachical level of the object.
@@ -1533,8 +1538,9 @@ module HDLRuby::Low
1533
1538
  end
1534
1539
  end
1535
1540
 
1536
- ## Extends the TimeTerminate class with generation of C text.
1541
+
1537
1542
  class TimeTerminate
1543
+ ## Extends the TimeTerminate class with generation of C text.
1538
1544
 
1539
1545
  # Generates the C text of the equivalent HDLRuby code.
1540
1546
  # +level+ is the hierachical level of the object.
@@ -1544,8 +1550,9 @@ module HDLRuby::Low
1544
1550
  end
1545
1551
  end
1546
1552
 
1547
- ## Extends the Configure class with generation of C text.
1553
+
1548
1554
  class Configure
1555
+ ## Extends the Configure class with generation of C text.
1549
1556
 
1550
1557
  # Generates the C text of the equivalent HDLRuby code.
1551
1558
  # +level+ is the hierachical level of the object.
@@ -1556,8 +1563,8 @@ module HDLRuby::Low
1556
1563
  end
1557
1564
 
1558
1565
 
1559
- ## Extends the If class with generation of C text.
1560
1566
  class If
1567
+ ## Extends the If class with generation of C text.
1561
1568
 
1562
1569
  # # Generates the C text of the equivalent HDLRuby code.
1563
1570
  # # +level+ is the hierachical level of the object.
@@ -1677,8 +1684,8 @@ module HDLRuby::Low
1677
1684
  end
1678
1685
  end
1679
1686
 
1680
- ## Extends the When class with generation of C text.
1681
1687
  class When
1688
+ ## Extends the When class with generation of C text.
1682
1689
 
1683
1690
  # Generates the C text of the equivalent HDLRuby code.
1684
1691
  # +level+ is the hierachical level of the object.
@@ -1721,8 +1728,9 @@ module HDLRuby::Low
1721
1728
  end
1722
1729
  end
1723
1730
 
1724
- ## Extends the Case class with generation of C text.
1731
+
1725
1732
  class Case
1733
+ ## Extends the Case class with generation of C text.
1726
1734
 
1727
1735
  # # Generates the text of the equivalent HDLRuby code.
1728
1736
  # # +level+ is the hierachical level of the object.
@@ -1855,8 +1863,8 @@ module HDLRuby::Low
1855
1863
  end
1856
1864
 
1857
1865
 
1858
- ## Extends the Delay class with generation of C text.
1859
1866
  class Delay
1867
+ ## Extends the Delay class with generation of C text.
1860
1868
 
1861
1869
  # Generates the C text of the equivalent HDLRuby code.
1862
1870
  # +level+ is the hierachical level of the object.
@@ -1871,8 +1879,8 @@ module HDLRuby::Low
1871
1879
  end
1872
1880
 
1873
1881
 
1874
- ## Extends the TimeWait class with generation of C text.
1875
1882
  class TimeWait
1883
+ ## Extends the TimeWait class with generation of C text.
1876
1884
 
1877
1885
  # Generates the C text of the equivalent HDLRuby code.
1878
1886
  # +level+ is the hierachical level of the object.
@@ -1892,8 +1900,9 @@ module HDLRuby::Low
1892
1900
  end
1893
1901
  end
1894
1902
 
1895
- ## Extends the TimeRepeat class with generation of C text.
1903
+
1896
1904
  class TimeRepeat
1905
+ ## Extends the TimeRepeat class with generation of C text.
1897
1906
 
1898
1907
  # # Generates the C text of the equivalent HDLRuby code.
1899
1908
  # # +level+ is the hierachical level of the object.
@@ -1933,8 +1942,9 @@ module HDLRuby::Low
1933
1942
  end
1934
1943
  end
1935
1944
 
1936
- ## Extends the Block class with generation of C text.
1945
+
1937
1946
  class Block
1947
+ ## Extends the Block class with generation of C text.
1938
1948
 
1939
1949
  # Adds the c code of the blocks to +res+ at +level+
1940
1950
  def add_blocks_code(res,level)
@@ -2086,20 +2096,22 @@ module HDLRuby::Low
2086
2096
  end
2087
2097
 
2088
2098
 
2089
- ## Extends the Block class with generation of C text.
2090
2099
  class TimeBlock
2100
+ ## Extends the Block class with generation of C text.
2101
+
2091
2102
  # TimeBlock is identical to Block in C
2092
2103
  end
2093
2104
 
2094
2105
 
2095
- ## Extends the Connection class with generation of C text.
2096
2106
  class Connection
2107
+ ## Extends the Connection class with generation of C text.
2108
+
2097
2109
  # Nothing required, Transmit is generated identically.
2098
2110
  end
2099
2111
 
2100
2112
 
2101
- ## Extends the Expression class with generation of C text.
2102
2113
  class Expression
2114
+ ## Extends the Expression class with generation of C text.
2103
2115
 
2104
2116
  # Generates the C text of the equivalent HDLRuby code.
2105
2117
  # +level+ is the hierachical level of the object.
@@ -2121,8 +2133,8 @@ module HDLRuby::Low
2121
2133
  end
2122
2134
 
2123
2135
 
2124
- ## Extends the Value class with generation of C text.
2125
2136
  class Value
2137
+ ## Extends the Value class with generation of C text.
2126
2138
 
2127
2139
  ## Generates the C text for an access to the value.
2128
2140
  # +level+ is the hierachical level of the object.
@@ -2290,8 +2302,8 @@ module HDLRuby::Low
2290
2302
  end
2291
2303
 
2292
2304
 
2293
- ## Extends the Cast class with generation of C text.
2294
2305
  class Cast
2306
+ ## Extends the Cast class with generation of C text.
2295
2307
 
2296
2308
  # # Generates the C text of the equivalent HDLRuby code.
2297
2309
  # # +level+ is the hierachical level of the object.
@@ -2346,8 +2358,8 @@ module HDLRuby::Low
2346
2358
  end
2347
2359
 
2348
2360
 
2349
- ## Extends the Operation class with generation of C text.
2350
2361
  class Operation
2362
+ ## Extends the Operation class with generation of C text.
2351
2363
 
2352
2364
  # Generates the C text of the equivalent HDLRuby code.
2353
2365
  # +level+ is the hierachical level of the object.
@@ -2358,8 +2370,9 @@ module HDLRuby::Low
2358
2370
  end
2359
2371
  end
2360
2372
 
2361
- ## Extends the Unary class with generation of C text.
2373
+
2362
2374
  class Unary
2375
+ ## Extends the Unary class with generation of C text.
2363
2376
 
2364
2377
  # # Generates the C text of the equivalent HDLRuby code.
2365
2378
  # # +level+ is the hierachical level of the object.
@@ -2442,8 +2455,8 @@ module HDLRuby::Low
2442
2455
  end
2443
2456
 
2444
2457
 
2445
- ## Extends the Binary class with generation of C text.
2446
2458
  class Binary
2459
+ ## Extends the Binary class with generation of C text.
2447
2460
 
2448
2461
  # # Generates the C text of the equivalent HDLRuby code.
2449
2462
  # # +level+ is the hierachical level of the object.
@@ -2591,8 +2604,9 @@ module HDLRuby::Low
2591
2604
  end
2592
2605
  end
2593
2606
 
2594
- ## Extends the Select class with generation of C text.
2607
+
2595
2608
  class Select
2609
+ ## Extends the Select class with generation of C text.
2596
2610
 
2597
2611
  # # Generates the C text of the equivalent HDLRuby code.
2598
2612
  # # +level+ is the hierachical level of the object.
@@ -2669,9 +2683,9 @@ module HDLRuby::Low
2669
2683
  end
2670
2684
  end
2671
2685
 
2672
- ## Extends the Concat class with generation of C text.
2673
- class Concat
2674
2686
 
2687
+ class Concat
2688
+ ## Extends the Concat class with generation of C text.
2675
2689
 
2676
2690
  # # Generates the C text for the equivalent HDLRuby code.
2677
2691
  # # +level+ is the hierachical level of the object.
@@ -2800,8 +2814,8 @@ module HDLRuby::Low
2800
2814
 
2801
2815
 
2802
2816
 
2803
- ## Extends the Ref class with generation of C text.
2804
2817
  class Ref
2818
+ ## Extends the Ref class with generation of C text.
2805
2819
 
2806
2820
  # Generates the C text of the equivalent HDLRuby code.
2807
2821
  # +level+ is the hierachical level of the object and
@@ -2814,8 +2828,8 @@ module HDLRuby::Low
2814
2828
  end
2815
2829
 
2816
2830
 
2817
- ## Extends the RefConcat class with generation of C text.
2818
2831
  class RefConcat
2832
+ ## Extends the RefConcat class with generation of C text.
2819
2833
 
2820
2834
  # Generates the C text of the equivalent HDLRuby code.
2821
2835
  # +level+ is the hierachical level of the object and
@@ -2848,8 +2862,8 @@ module HDLRuby::Low
2848
2862
  end
2849
2863
 
2850
2864
 
2851
- ## Extends the RefIndex class with generation of C text.
2852
2865
  class RefIndex
2866
+ ## Extends the RefIndex class with generation of C text.
2853
2867
 
2854
2868
  # # Generates the C text of the equivalent HDLRuby code.
2855
2869
  # # +level+ is thehierachical level of the object and
@@ -2958,8 +2972,8 @@ module HDLRuby::Low
2958
2972
  end
2959
2973
 
2960
2974
 
2961
- ## Extends the RefRange class with generation of C text.
2962
2975
  class RefRange
2976
+ ## Extends the RefRange class with generation of C text.
2963
2977
 
2964
2978
  # # Generates the C text of the equivalent HDLRuby code.
2965
2979
  # # +level+ is the hierachical level of the object and
@@ -3071,8 +3085,8 @@ module HDLRuby::Low
3071
3085
  end
3072
3086
 
3073
3087
 
3074
- ## Extends the RefName class with generation of C text.
3075
3088
  class RefName
3089
+ ## Extends the RefName class with generation of C text.
3076
3090
 
3077
3091
  # Generates the C text of the equivalent HDLRuby code.
3078
3092
  # +level+ is the hierachical level of the object and
@@ -3128,8 +3142,9 @@ module HDLRuby::Low
3128
3142
  end
3129
3143
 
3130
3144
 
3131
- ## Extends the RefThis class with generation of C text.
3132
3145
  class RefThis
3146
+ ## Extends the RefThis class with generation of C text.
3147
+
3133
3148
  # Generates the C text of the equivalent HDLRuby code.
3134
3149
  # +level+ is the hierachical level of the object and
3135
3150
  # +left+ tells if it is a left value or not.