HDLRuby 2.11.12 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.html +3274 -0
- data/README.md +556 -84
- data/ext/hruby_sim/hruby_sim_calc.c +2 -0
- data/lib/HDLRuby/backend/hruby_allocator.rb +2 -2
- data/lib/HDLRuby/backend/hruby_c_allocator.rb +7 -7
- data/lib/HDLRuby/hdr_samples/mei8_bench.rb +1 -1
- data/lib/HDLRuby/hdr_samples/with_bram.rb +3 -3
- data/lib/HDLRuby/hdr_samples/with_bram_frame_stack.rb +105 -0
- data/lib/HDLRuby/hdr_samples/with_bram_stack.rb +69 -0
- data/lib/HDLRuby/hdr_samples/with_register_stack.rb +150 -0
- data/lib/HDLRuby/hdr_samples/with_sequencer.rb +190 -0
- data/lib/HDLRuby/hdr_samples/with_sequencer_deep.rb +91 -0
- data/lib/HDLRuby/hdr_samples/with_sequencer_enumerable.rb +405 -0
- data/lib/HDLRuby/hdr_samples/with_sequencer_enumerator.rb +89 -0
- data/lib/HDLRuby/hdr_samples/with_sequencer_sync.rb +120 -0
- data/lib/HDLRuby/hdrcc.rb +15 -2
- data/lib/HDLRuby/hdrlib.rb +1 -1
- data/lib/HDLRuby/hruby_db.rb +2 -2
- data/lib/HDLRuby/hruby_high.rb +38 -20
- data/lib/HDLRuby/hruby_high_fullname.rb +3 -1
- data/lib/HDLRuby/hruby_low.rb +2 -2
- data/lib/HDLRuby/hruby_low2c.rb +58 -43
- data/lib/HDLRuby/hruby_low2hdr.rb +66 -40
- data/lib/HDLRuby/hruby_low2high.rb +86 -44
- data/lib/HDLRuby/hruby_low2seq.rb +26 -18
- data/lib/HDLRuby/hruby_low2sym.rb +14 -13
- data/lib/HDLRuby/hruby_low2vhd.rb +78 -43
- data/lib/HDLRuby/hruby_low_bool2select.rb +61 -46
- data/lib/HDLRuby/hruby_low_casts_without_expression.rb +56 -44
- data/lib/HDLRuby/hruby_low_cleanup.rb +18 -16
- data/lib/HDLRuby/hruby_low_fix_types.rb +64 -32
- data/lib/HDLRuby/hruby_low_mutable.rb +53 -118
- data/lib/HDLRuby/hruby_low_resolve.rb +26 -31
- data/lib/HDLRuby/hruby_low_with_bool.rb +33 -16
- data/lib/HDLRuby/hruby_low_with_port.rb +3 -3
- data/lib/HDLRuby/hruby_low_with_var.rb +23 -9
- data/lib/HDLRuby/hruby_low_without_concat.rb +19 -13
- data/lib/HDLRuby/hruby_low_without_namespace.rb +47 -32
- data/lib/HDLRuby/hruby_low_without_parinseq.rb +18 -12
- data/lib/HDLRuby/hruby_low_without_select.rb +36 -23
- data/lib/HDLRuby/hruby_low_without_subsignals.rb +29 -28
- data/lib/HDLRuby/hruby_rcsim.rb +79 -64
- data/lib/HDLRuby/hruby_rsim.rb +64 -15
- data/lib/HDLRuby/hruby_rsim_mute.rb +2 -3
- data/lib/HDLRuby/hruby_rsim_vcd.rb +28 -25
- data/lib/HDLRuby/hruby_values.rb +13 -2
- data/lib/HDLRuby/hruby_verilog.rb +90 -48
- data/lib/HDLRuby/soft/stacks.rb +219 -0
- data/lib/HDLRuby/std/bram.rb +9 -5
- data/lib/HDLRuby/std/clocks.rb +1 -1
- data/lib/HDLRuby/std/fsm.rb +29 -9
- data/lib/HDLRuby/std/sequencer.rb +1857 -0
- data/lib/HDLRuby/std/sequencer_sync.rb +400 -0
- data/lib/HDLRuby/std/std.rb +12 -0
- data/lib/HDLRuby/version.rb +1 -1
- data/tuto/adder_sat_flags_vcd.png +0 -0
- data/tuto/addsub_vcd.png +0 -0
- data/tuto/alu_vcd.png +0 -0
- data/tuto/bit_pong_vcd.png +0 -0
- data/tuto/checksum_vcd.png +0 -0
- data/tuto/circuit_hdr.odg +0 -0
- data/tuto/circuit_hdr.png +0 -0
- data/tuto/circuit_hie.odg +0 -0
- data/tuto/circuit_hie.png +0 -0
- data/tuto/circuit_view.odg +0 -0
- data/tuto/circuit_view.png +0 -0
- data/tuto/clock_counter_vcd.png +0 -0
- data/tuto/counter_ext_vcd.png +0 -0
- data/tuto/fact_vcd.png +0 -0
- data/tuto/hw_flow.odg +0 -0
- data/tuto/hw_flow.png +0 -0
- data/tuto/maxxer_vcd.png +0 -0
- data/tuto/pingpong0_vcd.png +0 -0
- data/tuto/pingpong1_vcd.png +0 -0
- data/tuto/pingpong2_vcd.png +0 -0
- data/tuto/ram_vcd.png +0 -0
- data/tuto/serializer_vcd.png +0 -0
- data/tuto/sw_flow.odg +0 -0
- data/tuto/sw_flow.png +0 -0
- data/tuto/the_counter_vcd.png +0 -0
- data/tuto/tutorial_sw.html +2359 -0
- data/tuto/tutorial_sw.md +2684 -0
- data/tuto/tutorial_sw.pdf +0 -0
- data/tuto/tutorial_sw_jp.md +417 -0
- metadata +44 -2
@@ -340,8 +340,8 @@ module HDLRuby::Low
|
|
340
340
|
end
|
341
341
|
|
342
342
|
|
343
|
-
## Extends the SystemT class with generation of HDLRuby::High text.
|
344
343
|
class SystemT
|
344
|
+
## Extends the SystemT class with generation of HDLRuby::High text.
|
345
345
|
|
346
346
|
# Generates the text of the equivalent HDLRuby::High code.
|
347
347
|
# +level+ is the hierachical level of the object.
|
@@ -403,8 +403,8 @@ module HDLRuby::Low
|
|
403
403
|
end
|
404
404
|
|
405
405
|
|
406
|
-
## Extends the Scope class with generation of HDLRuby::High text.
|
407
406
|
class Scope
|
407
|
+
## Extends the Scope class with generation of HDLRuby::High text.
|
408
408
|
|
409
409
|
## Tells if an expression is a reference to port +systemI.signal+.
|
410
410
|
def port_assign?(expr, systemI, signal)
|
@@ -611,8 +611,8 @@ module HDLRuby::Low
|
|
611
611
|
end
|
612
612
|
|
613
613
|
|
614
|
-
## Extends the Type class with generation of HDLRuby::High text.
|
615
614
|
class Type
|
615
|
+
## Extends the Type class with generation of HDLRuby::High text.
|
616
616
|
|
617
617
|
# Generates the text of the equivalent HDLRuby::High code.
|
618
618
|
# +level+ is the hierachical level of the object.
|
@@ -621,8 +621,9 @@ module HDLRuby::Low
|
|
621
621
|
end
|
622
622
|
end
|
623
623
|
|
624
|
-
|
624
|
+
|
625
625
|
class TypeDef
|
626
|
+
## Extends the TypeDef class with generation of HDLRuby::High text.
|
626
627
|
|
627
628
|
# Generates the text of the equivalent HDLRuby::High code.
|
628
629
|
# +level+ is the hierachical level of the object.
|
@@ -644,8 +645,9 @@ module HDLRuby::Low
|
|
644
645
|
end
|
645
646
|
end
|
646
647
|
|
647
|
-
|
648
|
+
|
648
649
|
class TypeVector
|
650
|
+
## Extends the TypeVector class with generation of HDLRuby::High text.
|
649
651
|
|
650
652
|
# Generates the text of the equivalent HDLRuby::High code.
|
651
653
|
# +level+ is the hierachical level of the object.
|
@@ -703,8 +705,9 @@ module HDLRuby::Low
|
|
703
705
|
end
|
704
706
|
end
|
705
707
|
|
706
|
-
|
708
|
+
|
707
709
|
class TypeTuple
|
710
|
+
## Extends the TypeTuple class with generation of HDLRuby::High text.
|
708
711
|
|
709
712
|
# Generates the text of the equivalent HDLRuby::High code.
|
710
713
|
# +level+ is the hierachical level of the object.
|
@@ -716,8 +719,9 @@ module HDLRuby::Low
|
|
716
719
|
end
|
717
720
|
end
|
718
721
|
|
719
|
-
|
722
|
+
|
720
723
|
class TypeStruct
|
724
|
+
## Extends the TypeStruct class with generation of HDLRuby::High text.
|
721
725
|
|
722
726
|
# Generates the text of the equivalent HDLRuby::High code.
|
723
727
|
# +level+ is the hierachical level of the object.
|
@@ -740,8 +744,8 @@ module HDLRuby::Low
|
|
740
744
|
end
|
741
745
|
|
742
746
|
|
743
|
-
## Extends the Behavior class with generation of HDLRuby::High text.
|
744
747
|
class Behavior
|
748
|
+
## Extends the Behavior class with generation of HDLRuby::High text.
|
745
749
|
|
746
750
|
# Generates the text of the equivalent HDLRuby::High code.
|
747
751
|
# +level+ is the hierachical level of the object.
|
@@ -845,20 +849,24 @@ module HDLRuby::Low
|
|
845
849
|
end
|
846
850
|
end
|
847
851
|
|
848
|
-
|
852
|
+
|
849
853
|
class TimeBehavior
|
854
|
+
## Extends the TimeBehavior class with generation of HDLRuby::High text.
|
855
|
+
|
850
856
|
# TimeBehavior is identical to Behavior in VHDL
|
851
857
|
end
|
852
858
|
|
853
859
|
|
854
|
-
## Extends the Event class with generation of HDLRuby::High text.
|
855
860
|
class Event
|
861
|
+
## Extends the Event class with generation of HDLRuby::High text.
|
862
|
+
|
856
863
|
# Events are not directly generated.
|
857
864
|
end
|
858
865
|
|
859
866
|
|
860
|
-
## Extends the SignalI class with generation of HDLRuby::High text.
|
861
867
|
class SignalI
|
868
|
+
## Extends the SignalI class with generation of HDLRuby::High text.
|
869
|
+
|
862
870
|
# Signals are not directly generated.
|
863
871
|
|
864
872
|
# Generates the text of the equivalent HDLRuby::High code.
|
@@ -870,8 +878,9 @@ module HDLRuby::Low
|
|
870
878
|
end
|
871
879
|
|
872
880
|
|
873
|
-
## Extends the SystemI class with generation of HDLRuby::High text.
|
874
881
|
class SystemI
|
882
|
+
## Extends the SystemI class with generation of HDLRuby::High text.
|
883
|
+
|
875
884
|
# Instances are not directly generated.
|
876
885
|
|
877
886
|
# Generates the text of the equivalent HDLRuby::High code.
|
@@ -883,8 +892,8 @@ module HDLRuby::Low
|
|
883
892
|
end
|
884
893
|
|
885
894
|
|
886
|
-
## Extends the Statement class with generation of HDLRuby::High text.
|
887
895
|
class Statement
|
896
|
+
## Extends the Statement class with generation of HDLRuby::High text.
|
888
897
|
|
889
898
|
# Generates the text of the equivalent HDLRuby::High code.
|
890
899
|
# +vars+ is the list of the variables and
|
@@ -895,8 +904,9 @@ module HDLRuby::Low
|
|
895
904
|
end
|
896
905
|
end
|
897
906
|
|
898
|
-
|
907
|
+
|
899
908
|
class Transmit
|
909
|
+
## Extends the Transmit class with generation of HDLRuby::High text.
|
900
910
|
|
901
911
|
# Generates the text of the equivalent HDLRuby::High code.
|
902
912
|
# +vars+ is the list of the variables and
|
@@ -913,8 +923,9 @@ module HDLRuby::Low
|
|
913
923
|
end
|
914
924
|
end
|
915
925
|
|
916
|
-
|
926
|
+
|
917
927
|
class Print
|
928
|
+
## Extends the Print class with generation of HDLRuby::High text.
|
918
929
|
|
919
930
|
# Generates the text of the equivalent HDLRuby::High code.
|
920
931
|
# +vars+ is the list of the variables and
|
@@ -927,8 +938,9 @@ module HDLRuby::Low
|
|
927
938
|
end
|
928
939
|
end
|
929
940
|
|
930
|
-
|
941
|
+
|
931
942
|
class TimeTerminate
|
943
|
+
## Extends the TimeTerminate class with generation of HDLRuby::High text.
|
932
944
|
|
933
945
|
# Generates the text of the equivalent HDLRuby::High code.
|
934
946
|
# +vars+ is the list of the variables and
|
@@ -938,9 +950,10 @@ module HDLRuby::Low
|
|
938
950
|
return " " * (level*3) + "finish;\n"
|
939
951
|
end
|
940
952
|
end
|
941
|
-
|
942
|
-
|
953
|
+
|
954
|
+
|
943
955
|
class If
|
956
|
+
## Extends the If class with generation of HDLRuby::High text.
|
944
957
|
|
945
958
|
# Generates the text of the equivalent HDLRuby::High code.
|
946
959
|
# +vars+ is the list of the variables and
|
@@ -972,8 +985,9 @@ module HDLRuby::Low
|
|
972
985
|
end
|
973
986
|
end
|
974
987
|
|
975
|
-
|
988
|
+
|
976
989
|
class When
|
990
|
+
## Extends the When class with generation of HDLRuby::High text.
|
977
991
|
|
978
992
|
# Generates the text of the equivalent HDLRuby::High code ensuring
|
979
993
|
# the match is of +type+.
|
@@ -991,8 +1005,9 @@ module HDLRuby::Low
|
|
991
1005
|
end
|
992
1006
|
end
|
993
1007
|
|
994
|
-
|
1008
|
+
|
995
1009
|
class Case
|
1010
|
+
## Extends the Case class with generation of HDLRuby::High text.
|
996
1011
|
|
997
1012
|
# Generates the text of the equivalent HDLRuby::High code.
|
998
1013
|
# +vars+ is the list of the variables and
|
@@ -1027,8 +1042,8 @@ module HDLRuby::Low
|
|
1027
1042
|
end
|
1028
1043
|
|
1029
1044
|
|
1030
|
-
## Extends the Delay class with generation of HDLRuby::High text.
|
1031
1045
|
class Delay
|
1046
|
+
## Extends the Delay class with generation of HDLRuby::High text.
|
1032
1047
|
|
1033
1048
|
# Generates the text of the equivalent HDLRuby::High code.
|
1034
1049
|
# +level+ is the hierachical level of the object.
|
@@ -1038,8 +1053,8 @@ module HDLRuby::Low
|
|
1038
1053
|
end
|
1039
1054
|
|
1040
1055
|
|
1041
|
-
## Extends the TimeWait class with generation of HDLRuby::High text.
|
1042
1056
|
class TimeWait
|
1057
|
+
## Extends the TimeWait class with generation of HDLRuby::High text.
|
1043
1058
|
|
1044
1059
|
# Generates the text of the equivalent HDLRuby::High code.
|
1045
1060
|
# +vars+ is the list of the variables and
|
@@ -1054,8 +1069,10 @@ module HDLRuby::Low
|
|
1054
1069
|
end
|
1055
1070
|
end
|
1056
1071
|
|
1057
|
-
|
1072
|
+
|
1058
1073
|
class TimeRepeat
|
1074
|
+
## Extends the TimeRepeat class with generation of HDLRuby::High text.
|
1075
|
+
|
1059
1076
|
# Generates the text of the equivalent HDLRuby::High code.
|
1060
1077
|
# +vars+ is the list of the variables and
|
1061
1078
|
# +level+ is the hierachical level of the object.
|
@@ -1094,8 +1111,9 @@ module HDLRuby::Low
|
|
1094
1111
|
end
|
1095
1112
|
end
|
1096
1113
|
|
1097
|
-
|
1114
|
+
|
1098
1115
|
class Block
|
1116
|
+
## Extends the Block class with generation of HDLRuby::High text.
|
1099
1117
|
|
1100
1118
|
# Generates the text of the equivalent HDLRuby::High code.
|
1101
1119
|
# +vars+ is the list of variables and
|
@@ -1115,14 +1133,16 @@ module HDLRuby::Low
|
|
1115
1133
|
end
|
1116
1134
|
end
|
1117
1135
|
|
1118
|
-
|
1136
|
+
|
1119
1137
|
class TimeBlock
|
1138
|
+
## Extends the TimeBlock class with generation of HDLRuby::High text.
|
1139
|
+
|
1120
1140
|
# TimeBlock is identical to Block in VHDL
|
1121
1141
|
end
|
1122
1142
|
|
1123
1143
|
|
1124
|
-
## Extends the Code class with generation of HDLRuby::High text.
|
1125
1144
|
class Code
|
1145
|
+
## Extends the Code class with generation of HDLRuby::High text.
|
1126
1146
|
|
1127
1147
|
# Generates the text of the equivalent HDLRuby::High code.
|
1128
1148
|
# +level+ is the hierachical level of the object.
|
@@ -1131,14 +1151,16 @@ module HDLRuby::Low
|
|
1131
1151
|
end
|
1132
1152
|
end
|
1133
1153
|
|
1134
|
-
|
1154
|
+
|
1135
1155
|
class Connection
|
1156
|
+
## Extends the Connection class with generation of HDLRuby::High text.
|
1157
|
+
|
1136
1158
|
# Nothing required, Transmit is generated identically.
|
1137
1159
|
end
|
1138
1160
|
|
1139
1161
|
|
1140
|
-
## Extends the Expression class with generation of HDLRuby::High text.
|
1141
1162
|
class Expression
|
1163
|
+
## Extends the Expression class with generation of HDLRuby::High text.
|
1142
1164
|
|
1143
1165
|
# Generates the text of the equivalent HDLRuby::High code.
|
1144
1166
|
# +level+ is the hierachical level of the object.
|
@@ -1148,8 +1170,9 @@ module HDLRuby::Low
|
|
1148
1170
|
end
|
1149
1171
|
end
|
1150
1172
|
|
1151
|
-
|
1173
|
+
|
1152
1174
|
class Value
|
1175
|
+
## Extends the Value class with generation of HDLRuby::High text.
|
1153
1176
|
|
1154
1177
|
# Generate the text of the equivalent VHDL is case of arithmetic
|
1155
1178
|
# expression.
|
@@ -1209,8 +1232,9 @@ module HDLRuby::Low
|
|
1209
1232
|
end
|
1210
1233
|
end
|
1211
1234
|
|
1212
|
-
|
1235
|
+
|
1213
1236
|
class Cast
|
1237
|
+
## Extends the Cast class with generation of HDLRuby::High text.
|
1214
1238
|
|
1215
1239
|
# Generates the text of the equivalent HDLRuby::High code.
|
1216
1240
|
# +level+ is the hierachical level of the object.
|
@@ -1241,8 +1265,9 @@ module HDLRuby::Low
|
|
1241
1265
|
end
|
1242
1266
|
end
|
1243
1267
|
|
1244
|
-
|
1268
|
+
|
1245
1269
|
class Operation
|
1270
|
+
## Extends the Operation class with generation of HDLRuby::High text.
|
1246
1271
|
|
1247
1272
|
# Generates the text of the equivalent HDLRuby::High code.
|
1248
1273
|
# +level+ is the hierachical level of the object.
|
@@ -1252,8 +1277,9 @@ module HDLRuby::Low
|
|
1252
1277
|
end
|
1253
1278
|
end
|
1254
1279
|
|
1255
|
-
|
1280
|
+
|
1256
1281
|
class Unary
|
1282
|
+
## Extends the Unary class with generation of HDLRuby::High text.
|
1257
1283
|
|
1258
1284
|
# Generates the text of the equivalent HDLRuby::High code.
|
1259
1285
|
# +level+ is the hierachical level of the object.
|
@@ -1277,8 +1303,9 @@ module HDLRuby::Low
|
|
1277
1303
|
end
|
1278
1304
|
end
|
1279
1305
|
|
1280
|
-
|
1306
|
+
|
1281
1307
|
class Binary
|
1308
|
+
## Extends the Binary class with generation of HDLRuby::High text.
|
1282
1309
|
|
1283
1310
|
# Generates the text of the equivalent HDLRuby::High code.
|
1284
1311
|
# +level+ is the hierachical level of the object.
|
@@ -1352,8 +1379,9 @@ module HDLRuby::Low
|
|
1352
1379
|
end
|
1353
1380
|
end
|
1354
1381
|
|
1355
|
-
|
1382
|
+
|
1356
1383
|
class Select
|
1384
|
+
## Extends the Select class with generation of HDLRuby::High text.
|
1357
1385
|
|
1358
1386
|
# Generates the text of the equivalent HDLRuby::High code.
|
1359
1387
|
# +level+ is the hierachical level of the object.
|
@@ -1378,8 +1406,9 @@ module HDLRuby::Low
|
|
1378
1406
|
end
|
1379
1407
|
end
|
1380
1408
|
|
1381
|
-
|
1409
|
+
|
1382
1410
|
class Concat
|
1411
|
+
## Extends the Concat class with generation of HDLRuby::High text.
|
1383
1412
|
|
1384
1413
|
# Generates the text of the equivalent HDLRuby::High code.
|
1385
1414
|
# +type+ is the expected type of the content.
|
@@ -1417,8 +1446,8 @@ module HDLRuby::Low
|
|
1417
1446
|
end
|
1418
1447
|
|
1419
1448
|
|
1420
|
-
## Extends the Ref class with generation of HDLRuby::High text.
|
1421
1449
|
class Ref
|
1450
|
+
## Extends the Ref class with generation of HDLRuby::High text.
|
1422
1451
|
|
1423
1452
|
# Generates the text of the equivalent HDLRuby::High code.
|
1424
1453
|
# +level+ is the hierachical level of the object.
|
@@ -1428,8 +1457,9 @@ module HDLRuby::Low
|
|
1428
1457
|
end
|
1429
1458
|
end
|
1430
1459
|
|
1431
|
-
|
1460
|
+
|
1432
1461
|
class RefConcat
|
1462
|
+
## Extends the RefConcat class with generation of HDLRuby::High text.
|
1433
1463
|
|
1434
1464
|
# Generates the text of the equivalent HDLRuby::High code.
|
1435
1465
|
# +level+ is the hierachical level of the object.
|
@@ -1449,8 +1479,9 @@ module HDLRuby::Low
|
|
1449
1479
|
end
|
1450
1480
|
end
|
1451
1481
|
|
1452
|
-
|
1482
|
+
|
1453
1483
|
class RefIndex
|
1484
|
+
## Extends the RefIndex class with generation of HDLRuby::High text.
|
1454
1485
|
|
1455
1486
|
# Generates the text of the equivalent HDLRuby::High code.
|
1456
1487
|
# +level+ is the hierachical level of the object.
|
@@ -1466,8 +1497,9 @@ module HDLRuby::Low
|
|
1466
1497
|
end
|
1467
1498
|
end
|
1468
1499
|
|
1469
|
-
|
1500
|
+
|
1470
1501
|
class RefRange
|
1502
|
+
## Extends the RefRange class with generation of HDLRuby::High text.
|
1471
1503
|
|
1472
1504
|
# Generates the text of the equivalent HDLRuby::High code.
|
1473
1505
|
# +level+ is the hierachical level of the object.
|
@@ -1499,8 +1531,9 @@ module HDLRuby::Low
|
|
1499
1531
|
end
|
1500
1532
|
end
|
1501
1533
|
|
1502
|
-
|
1534
|
+
|
1503
1535
|
class RefName
|
1536
|
+
## Extends the RefName class with generation of HDLRuby::High text.
|
1504
1537
|
|
1505
1538
|
# Generates the text of the equivalent HDLRuby::High code.
|
1506
1539
|
# +level+ is the hierachical level of the object.
|
@@ -1520,13 +1553,15 @@ module HDLRuby::Low
|
|
1520
1553
|
end
|
1521
1554
|
end
|
1522
1555
|
|
1523
|
-
|
1556
|
+
|
1524
1557
|
class RefThis
|
1558
|
+
## Extends the RefThis class with generation of HDLRuby::High text.
|
1525
1559
|
# Nothing to generate.
|
1526
1560
|
end
|
1527
1561
|
|
1528
|
-
|
1562
|
+
|
1529
1563
|
class StringE
|
1564
|
+
## Extends the StringE class with generation of HDLRuby::High text.
|
1530
1565
|
|
1531
1566
|
# Generates the text of the equivalent HDLRuby::High code.
|
1532
1567
|
# +level+ is the hierachical level of the object.
|
@@ -1537,8 +1572,8 @@ module HDLRuby::Low
|
|
1537
1572
|
end
|
1538
1573
|
end
|
1539
1574
|
|
1540
|
-
## Extends the Numeric class with generation of HDLRuby::High text.
|
1541
1575
|
class ::Numeric
|
1576
|
+
## Extends the Numeric class with generation of HDLRuby::High text.
|
1542
1577
|
|
1543
1578
|
# Generates the text of the equivalent HDLRuby::High code.
|
1544
1579
|
# +level+ is the hierachical level of the object.
|
@@ -14,9 +14,9 @@ module HDLRuby::Low
|
|
14
14
|
########################################################################
|
15
15
|
|
16
16
|
|
17
|
-
## Extends the SystemT class with functionality for converting booleans
|
18
|
-
# in assignments to select operators.
|
19
17
|
class SystemT
|
18
|
+
## Extends the SystemT class with functionality for converting booleans
|
19
|
+
# in assignments to select operators.
|
20
20
|
|
21
21
|
# Converts booleans in assignments to select operators.
|
22
22
|
def boolean_in_assign2select!
|
@@ -27,9 +27,9 @@ module HDLRuby::Low
|
|
27
27
|
end
|
28
28
|
|
29
29
|
|
30
|
-
## Extends the Scope class with functionality for converting booleans
|
31
|
-
# in assignments to select operators.
|
32
30
|
class Scope
|
31
|
+
## Extends the Scope class with functionality for converting booleans
|
32
|
+
# in assignments to select operators.
|
33
33
|
|
34
34
|
# Converts booleans in assignments to select operators.
|
35
35
|
def boolean_in_assign2select!
|
@@ -48,9 +48,9 @@ module HDLRuby::Low
|
|
48
48
|
end
|
49
49
|
|
50
50
|
|
51
|
-
## Extends the Transmit class with functionality for converting booleans
|
52
|
-
# in assignments to select operators.
|
53
51
|
class Transmit
|
52
|
+
## Extends the Transmit class with functionality for converting booleans
|
53
|
+
# in assignments to select operators.
|
54
54
|
|
55
55
|
# Converts booleans in assignments to select operators.
|
56
56
|
def boolean_in_assign2select!
|
@@ -63,9 +63,9 @@ module HDLRuby::Low
|
|
63
63
|
end
|
64
64
|
|
65
65
|
|
66
|
-
## Extends the Print class with functionality for converting booleans
|
67
|
-
# in assignments to select operators.
|
68
66
|
class Print
|
67
|
+
## Extends the Print class with functionality for converting booleans
|
68
|
+
# in assignments to select operators.
|
69
69
|
|
70
70
|
# Converts booleans in assignments to select operators.
|
71
71
|
def boolean_in_assign2select!
|
@@ -76,9 +76,9 @@ module HDLRuby::Low
|
|
76
76
|
end
|
77
77
|
|
78
78
|
|
79
|
-
## Extends the TimeTerminate class with functionality for converting booleans
|
80
|
-
# in assignments to select operators.
|
81
79
|
class TimeTerminate
|
80
|
+
## Extends the TimeTerminate class with functionality for converting
|
81
|
+
# booleans in assignments to select operators.
|
82
82
|
|
83
83
|
# Converts booleans in assignments to select operators.
|
84
84
|
def boolean_in_assign2select!
|
@@ -88,9 +88,9 @@ module HDLRuby::Low
|
|
88
88
|
end
|
89
89
|
|
90
90
|
|
91
|
-
## Extends the If class with functionality for converting booleans
|
92
|
-
# in assignments to select operators.
|
93
91
|
class If
|
92
|
+
## Extends the If class with functionality for converting booleans
|
93
|
+
# in assignments to select operators.
|
94
94
|
|
95
95
|
# Converts booleans in assignments to select operators.
|
96
96
|
def boolean_in_assign2select!
|
@@ -111,9 +111,10 @@ module HDLRuby::Low
|
|
111
111
|
end
|
112
112
|
end
|
113
113
|
|
114
|
-
|
115
|
-
# in assignments to select operators.
|
114
|
+
|
116
115
|
class When
|
116
|
+
## Extends the When class with functionality for converting booleans
|
117
|
+
# in assignments to select operators.
|
117
118
|
|
118
119
|
# Converts booleans in assignments to select operators.
|
119
120
|
def boolean_in_assign2select!
|
@@ -127,9 +128,9 @@ module HDLRuby::Low
|
|
127
128
|
end
|
128
129
|
|
129
130
|
|
130
|
-
## Extends the Case class with functionality for converting booleans
|
131
|
-
# in assignments to select operators.
|
132
131
|
class Case
|
132
|
+
## Extends the Case class with functionality for converting booleans
|
133
|
+
# in assignments to select operators.
|
133
134
|
|
134
135
|
# Converts booleans in assignments to select operators.
|
135
136
|
def boolean_in_assign2select!
|
@@ -145,9 +146,10 @@ module HDLRuby::Low
|
|
145
146
|
end
|
146
147
|
|
147
148
|
|
148
|
-
## Extends the TimeWait class with functionality for converting booleans
|
149
|
-
# in assignments to select operators.
|
150
149
|
class TimeWait
|
150
|
+
## Extends the TimeWait class with functionality for converting booleans
|
151
|
+
# in assignments to select operators.
|
152
|
+
|
151
153
|
# Converts booleans in assignments to select operators.
|
152
154
|
def boolean_in_assign2select!
|
153
155
|
# Nothing to do.
|
@@ -155,9 +157,11 @@ module HDLRuby::Low
|
|
155
157
|
end
|
156
158
|
end
|
157
159
|
|
158
|
-
|
159
|
-
# in assignments to setlect operators.
|
160
|
+
|
160
161
|
class TimeRepeat
|
162
|
+
## Extends the TimeRepeat class with functionality for converting
|
163
|
+
# booleans in assignments to setlect operators.
|
164
|
+
|
161
165
|
# Converts booleans in assignments to select operators.
|
162
166
|
def boolean_in_assign2select!
|
163
167
|
# Simply recurse on the stamtement.
|
@@ -167,9 +171,9 @@ module HDLRuby::Low
|
|
167
171
|
end
|
168
172
|
|
169
173
|
|
170
|
-
## Extends the Block class with functionality for converting booleans
|
171
|
-
# in assignments to select operators.
|
172
174
|
class Block
|
175
|
+
## Extends the Block class with functionality for converting booleans
|
176
|
+
# in assignments to select operators.
|
173
177
|
|
174
178
|
# Converts booleans in assignments to select operators.
|
175
179
|
def boolean_in_assign2select!
|
@@ -180,9 +184,10 @@ module HDLRuby::Low
|
|
180
184
|
end
|
181
185
|
|
182
186
|
|
183
|
-
## Extends the Value class with functionality for converting booleans
|
184
|
-
# in assignments to select operators.
|
185
187
|
class Value
|
188
|
+
## Extends the Value class with functionality for converting booleans
|
189
|
+
# in assignments to select operators.
|
190
|
+
|
186
191
|
# Converts booleans in assignments to select operators.
|
187
192
|
def boolean_in_assign2select
|
188
193
|
# Simple clones.
|
@@ -191,9 +196,10 @@ module HDLRuby::Low
|
|
191
196
|
end
|
192
197
|
|
193
198
|
|
194
|
-
## Extends the Cast class with functionality for converting booleans
|
195
|
-
# in assignments to select operators.
|
196
199
|
class Cast
|
200
|
+
## Extends the Cast class with functionality for converting booleans
|
201
|
+
# in assignments to select operators.
|
202
|
+
|
197
203
|
# Converts booleans in assignments to select operators.
|
198
204
|
def boolean_in_assign2select
|
199
205
|
# Recurse on the child.
|
@@ -201,9 +207,11 @@ module HDLRuby::Low
|
|
201
207
|
end
|
202
208
|
end
|
203
209
|
|
204
|
-
|
205
|
-
# in assignments to select operators.
|
210
|
+
|
206
211
|
class Unary
|
212
|
+
## Extends the Unary class with functionality for converting booleans
|
213
|
+
# in assignments to select operators.
|
214
|
+
|
207
215
|
|
208
216
|
# Converts booleans in assignments to select operators.
|
209
217
|
def boolean_in_assign2select
|
@@ -215,9 +223,9 @@ module HDLRuby::Low
|
|
215
223
|
end
|
216
224
|
|
217
225
|
|
218
|
-
## Extends the Binary class with functionality for converting booleans
|
219
|
-
# in assignments to select operators.
|
220
226
|
class Binary
|
227
|
+
## Extends the Binary class with functionality for converting booleans
|
228
|
+
# in assignments to select operators.
|
221
229
|
|
222
230
|
# Converts booleans in assignments to select operators.
|
223
231
|
def boolean_in_assign2select
|
@@ -249,9 +257,9 @@ module HDLRuby::Low
|
|
249
257
|
end
|
250
258
|
|
251
259
|
|
252
|
-
## Extends the Select class with functionality for converting booleans
|
253
|
-
# in assignments to select operators.
|
254
260
|
class Select
|
261
|
+
## Extends the Select class with functionality for converting booleans
|
262
|
+
# in assignments to select operators.
|
255
263
|
|
256
264
|
# Converts booleans in assignments to select operators.
|
257
265
|
def boolean_in_assign2select
|
@@ -266,9 +274,10 @@ module HDLRuby::Low
|
|
266
274
|
end
|
267
275
|
|
268
276
|
|
269
|
-
## Extends the Concat class with functionality for converting booleans
|
270
|
-
# in assignments to select operators.
|
271
277
|
class Concat
|
278
|
+
## Extends the Concat class with functionality for converting booleans
|
279
|
+
# in assignments to select operators.
|
280
|
+
|
272
281
|
# Converts booleans in assignments to select operators.
|
273
282
|
def boolean_in_assign2select
|
274
283
|
# Recurse on the sub expressions.
|
@@ -279,9 +288,10 @@ module HDLRuby::Low
|
|
279
288
|
end
|
280
289
|
|
281
290
|
|
282
|
-
## Extends the Ref class with functionality for converting booleans
|
283
|
-
# in assignments to select operators.
|
284
291
|
class RefConcat
|
292
|
+
## Extends the RefConcat class with functionality for converting booleans
|
293
|
+
# in assignments to select operators.
|
294
|
+
|
285
295
|
# Converts booleans in assignments to select operators.
|
286
296
|
def boolean_in_assign2select
|
287
297
|
# Recurse on the sub references.
|
@@ -292,9 +302,10 @@ module HDLRuby::Low
|
|
292
302
|
end
|
293
303
|
|
294
304
|
|
295
|
-
## Extends the RefIndex class with functionality for converting booleans
|
296
|
-
# in assignments to select operators.
|
297
305
|
class RefIndex
|
306
|
+
## Extends the RefIndex class with functionality for converting booleans
|
307
|
+
# in assignments to select operators.
|
308
|
+
|
298
309
|
# Converts booleans in assignments to select operators.
|
299
310
|
def boolean_in_assign2select
|
300
311
|
# Recurse on the sub references.
|
@@ -305,9 +316,10 @@ module HDLRuby::Low
|
|
305
316
|
end
|
306
317
|
|
307
318
|
|
308
|
-
## Extends the RefRange class with functionality for converting booleans
|
309
|
-
# in assignments to select operators.
|
310
319
|
class RefRange
|
320
|
+
## Extends the RefRange class with functionality for converting booleans
|
321
|
+
# in assignments to select operators.
|
322
|
+
|
311
323
|
# Converts booleans in assignments to select operators.
|
312
324
|
def boolean_in_assign2select
|
313
325
|
# Recurse on the sub references.
|
@@ -319,9 +331,10 @@ module HDLRuby::Low
|
|
319
331
|
end
|
320
332
|
|
321
333
|
|
322
|
-
## Extends the RefName class with functionality for converting booleans
|
323
|
-
# in assignments to select operators.
|
324
334
|
class RefName
|
335
|
+
## Extends the RefName class with functionality for converting booleans
|
336
|
+
# in assignments to select operators.
|
337
|
+
|
325
338
|
# Converts booleans in assignments to select operators.
|
326
339
|
def boolean_in_assign2select
|
327
340
|
# Recurse on the sub references.
|
@@ -332,9 +345,10 @@ module HDLRuby::Low
|
|
332
345
|
end
|
333
346
|
|
334
347
|
|
335
|
-
## Extends the RefName class with functionality for converting booleans
|
336
|
-
# in assignments to select operators.
|
337
348
|
class RefThis
|
349
|
+
## Extends the RefName class with functionality for converting booleans
|
350
|
+
# in assignments to select operators.
|
351
|
+
|
338
352
|
# Converts booleans in assignments to select operators.
|
339
353
|
def boolean_in_assign2select
|
340
354
|
# Simply clone.
|
@@ -343,9 +357,10 @@ module HDLRuby::Low
|
|
343
357
|
end
|
344
358
|
|
345
359
|
|
346
|
-
## Extends the StringE class with functionality for converting booleans
|
347
|
-
# in assignments to select operators.
|
348
360
|
class StringE
|
361
|
+
## Extends the StringE class with functionality for converting booleans
|
362
|
+
# in assignments to select operators.
|
363
|
+
|
349
364
|
|
350
365
|
# Converts booleans in assignments to select operators.
|
351
366
|
def boolean_in_assign2select
|