@@ -694,7 +694,10 @@ def write_fifo(self, name, data, when=None):
694
694
695
695
def set_source (self , fsm , name , ram , offset , size , stride = 1 , port = 0 ):
696
696
""" intrinsic method to assign RAM property to a source stream """
697
+ self ._set_source (fsm , name , ram , offset , size , stride , port )
698
+ fsm .goto_next ()
697
699
700
+ def _set_source (self , fsm , name , ram , offset , size , stride = 1 , port = 0 ):
698
701
if not self .stream_synthesized :
699
702
self ._implement_stream ()
700
703
@@ -727,11 +730,12 @@ def set_source(self, fsm, name, ram, offset, size, stride=1, port=0):
727
730
self ._setup_source_ram (ram , var , port , set_cond )
728
731
self ._synthesize_set_source (var , name )
729
732
730
- fsm .goto_next ()
731
-
732
733
def set_source_pattern (self , fsm , name , ram , offset , pattern , port = 0 ):
733
734
""" intrinsic method to assign RAM property to a source stream """
735
+ self ._set_source_pattern (fsm , name , ram , offset , pattern , port )
736
+ fsm .goto_next ()
734
737
738
+ def _set_source_pattern (self , fsm , name , ram , offset , pattern , port = 0 ):
735
739
if not self .stream_synthesized :
736
740
self ._implement_stream ()
737
741
@@ -791,20 +795,24 @@ def set_source_pattern(self, fsm, name, ram, offset, pattern, port=0):
791
795
self ._setup_source_ram (ram , var , port , set_cond )
792
796
self ._synthesize_set_source_pattern (var , name )
793
797
794
- fsm .goto_next ()
795
-
796
798
def set_source_multidim (self , fsm , name , ram , offset , shape , order = None , port = 0 ):
797
799
""" intrinsic method to assign RAM property to a source stream """
800
+ self ._set_source_multidim (fsm , name , ram , offset , shape , order , port )
801
+ fsm .goto_next ()
798
802
803
+ def _set_source_multidim (self , fsm , name , ram , offset , shape , order = None , port = 0 ):
799
804
if order is None :
800
805
order = list (reversed (range (len (shape ))))
801
806
802
807
pattern = self ._to_pattern (shape , order )
803
- return self .set_source_pattern (fsm , name , ram , offset , pattern , port )
808
+ self ._set_source_pattern (fsm , name , ram , offset , pattern , port )
804
809
805
810
def set_source_multipattern (self , fsm , name , ram , offsets , patterns , port = 0 ):
806
811
""" intrinsic method to assign multiple patterns to a RAM """
812
+ self ._set_source_multipattern (fsm , name , ram , offsets , patterns , port )
813
+ fsm .goto_next ()
807
814
815
+ def _set_source_multipattern (self , fsm , name , ram , offsets , patterns , port = 0 ):
808
816
if not self .stream_synthesized :
809
817
self ._implement_stream ()
810
818
@@ -892,10 +900,12 @@ def set_source_multipattern(self, fsm, name, ram, offsets, patterns, port=0):
892
900
self ._setup_source_ram (ram , var , port , set_cond )
893
901
self ._synthesize_set_source_multipattern (var , name )
894
902
895
- fsm .goto_next ()
896
-
897
903
def set_source_generator (self , fsm , name , ram , func , initvals , args = (), port = 0 ):
904
+ """ intrinsic method to assign address generator function to a source stream """
905
+ self ._set_source_generator (fsm , name , ram , func , initvals , args , port )
906
+ fsm .goto_next ()
898
907
908
+ def _set_source_generator (self , fsm , name , ram , func , initvals , args = (), port = 0 ):
899
909
if not isinstance (initvals , (tuple , list )):
900
910
raise TypeError ('initvals be 1 tuple or list.' )
901
911
@@ -930,11 +940,12 @@ def set_source_generator(self, fsm, name, ram, func, initvals, args=(), port=0):
930
940
self ._setup_source_ram (ram , var , port , set_cond )
931
941
self ._synthesize_set_source_generator (var , name , func , initvals , args )
932
942
933
- fsm .goto_next ()
934
-
935
943
def set_source_fifo (self , fsm , name , fifo , size ):
936
944
""" intrinsic method to assign FIFO property to a source stream """
945
+ self ._set_source_fifo (fsm , name , fifo , size )
946
+ fsm .goto_next ()
937
947
948
+ def _set_source_fifo (self , fsm , name , fifo , size ):
938
949
if not self .stream_synthesized :
939
950
self ._implement_stream ()
940
951
@@ -964,10 +975,11 @@ def set_source_fifo(self, fsm, name, fifo, size):
964
975
self ._setup_source_fifo (fifo , var , set_cond )
965
976
self ._synthesize_set_source_fifo (var , name )
966
977
967
- fsm .goto_next ()
968
-
969
978
def set_source_empty (self , fsm , name , value = 0 ):
979
+ self ._set_source_empty (fsm , name , value )
980
+ fsm .goto_next ()
970
981
982
+ def _set_source_empty (self , fsm , name , value = 0 ):
971
983
if not self .stream_synthesized :
972
984
self ._implement_stream ()
973
985
@@ -1011,11 +1023,12 @@ def set_source_empty(self, fsm, name, value=0):
1011
1023
1012
1024
var .has_source_empty = True
1013
1025
1014
- fsm .goto_next ()
1015
-
1016
1026
def set_sink (self , fsm , name , ram , offset , size , stride = 1 , port = 0 ):
1017
1027
""" intrinsic method to assign RAM property to a sink stream """
1028
+ self ._set_sink (fsm , name , ram , offset , size , stride , port )
1029
+ fsm .If (self .oready ).goto_next ()
1018
1030
1031
+ def _set_sink (self , fsm , name , ram , offset , size , stride = 1 , port = 0 ):
1019
1032
if not self .stream_synthesized :
1020
1033
self ._implement_stream ()
1021
1034
@@ -1052,11 +1065,12 @@ def set_sink(self, fsm, name, ram, offset, size, stride=1, port=0):
1052
1065
self ._setup_sink_ram (ram , var , port , set_cond )
1053
1066
self ._synthesize_set_sink (var , name )
1054
1067
1055
- fsm .If (self .oready ).goto_next ()
1056
-
1057
1068
def set_sink_pattern (self , fsm , name , ram , offset , pattern , port = 0 ):
1058
1069
""" intrinsic method to assign RAM property to a sink stream """
1070
+ self ._set_sink_pattern (fsm , name , ram , offset , pattern , port )
1071
+ fsm .If (self .oready ).goto_next ()
1059
1072
1073
+ def _set_sink_pattern (self , fsm , name , ram , offset , pattern , port = 0 ):
1060
1074
if not self .stream_synthesized :
1061
1075
self ._implement_stream ()
1062
1076
@@ -1122,20 +1136,24 @@ def set_sink_pattern(self, fsm, name, ram, offset, pattern, port=0):
1122
1136
self ._setup_sink_ram (ram , var , port , set_cond )
1123
1137
self ._synthesize_set_sink_pattern (var , name )
1124
1138
1125
- fsm .If (self .oready ).goto_next ()
1126
-
1127
1139
def set_sink_multidim (self , fsm , name , ram , offset , shape , order = None , port = 0 ):
1128
1140
""" intrinsic method to assign RAM property to a sink stream """
1141
+ self ._set_sink_multidim (fsm , name , ram , offset , shape , order , port )
1142
+ fsm .If (self .oready ).goto_next ()
1129
1143
1144
+ def _set_sink_multidim (self , fsm , name , ram , offset , shape , order = None , port = 0 ):
1130
1145
if order is None :
1131
1146
order = list (reversed (range (len (shape ))))
1132
1147
1133
1148
pattern = self ._to_pattern (shape , order )
1134
- return self .set_sink_pattern (fsm , name , ram , offset , pattern , port )
1149
+ self ._set_sink_pattern (fsm , name , ram , offset , pattern , port )
1135
1150
1136
1151
def set_sink_multipattern (self , fsm , name , ram , offsets , patterns , port = 0 ):
1137
1152
""" intrinsic method to assign multiple patterns to a RAM """
1153
+ self ._set_sink_multipattern (fsm , name , ram , offsets , patterns , port )
1154
+ fsm .If (self .oready ).goto_next ()
1138
1155
1156
+ def _set_sink_multipattern (self , fsm , name , ram , offsets , patterns , port = 0 ):
1139
1157
if not self .stream_synthesized :
1140
1158
self ._implement_stream ()
1141
1159
@@ -1231,10 +1249,12 @@ def set_sink_multipattern(self, fsm, name, ram, offsets, patterns, port=0):
1231
1249
self ._setup_sink_ram (ram , var , port , set_cond )
1232
1250
self ._synthesize_set_sink_multipattern (var , name )
1233
1251
1234
- fsm .If (self .oready ).goto_next ()
1235
-
1236
1252
def set_sink_generator (self , fsm , name , ram , func , initvals , args = (), port = 0 ):
1253
+ """ intrinsic method to assign address generator function to a sink stream """
1254
+ self ._set_sink_generator (fsm , name , ram , func , initvals , args , port )
1255
+ fsm .If (self .oready ).goto_next ()
1237
1256
1257
+ def _set_sink_generator (self , fsm , name , ram , func , initvals , args = (), port = 0 ):
1238
1258
if not self .stream_synthesized :
1239
1259
self ._implement_stream ()
1240
1260
@@ -1271,11 +1291,12 @@ def set_sink_generator(self, fsm, name, ram, func, initvals, args=(), port=0):
1271
1291
self ._setup_sink_ram (ram , var , port , set_cond )
1272
1292
self ._synthesize_set_sink_generator (var , name , func , initvals , args )
1273
1293
1274
- fsm .If (self .oready ).goto_next ()
1275
-
1276
1294
def set_sink_fifo (self , fsm , name , fifo , size ):
1277
1295
""" intrinsic method to assign FIFO property to a sink stream """
1296
+ self ._set_sink_fifo (fsm , name , fifo , size )
1297
+ fsm .If (self .oready ).goto_next ()
1278
1298
1299
+ def _set_sink_fifo (self , fsm , name , fifo , size ):
1279
1300
if not self .stream_synthesized :
1280
1301
self ._implement_stream ()
1281
1302
@@ -1307,11 +1328,12 @@ def set_sink_fifo(self, fsm, name, fifo, size):
1307
1328
self ._setup_sink_fifo (fifo , var , set_cond )
1308
1329
self ._synthesize_set_sink_fifo (var , name )
1309
1330
1310
- fsm .If (self .oready ).goto_next ()
1311
-
1312
1331
def set_sink_immediate (self , fsm , name , size ):
1313
1332
""" intrinsic method to set a sink stream as an immediate variable """
1333
+ self ._set_sink_immediate (fsm , name , size )
1334
+ fsm .If (self .oready ).goto_next ()
1314
1335
1336
+ def _set_sink_immediate (self , fsm , name , size ):
1315
1337
if not self .stream_synthesized :
1316
1338
self ._implement_stream ()
1317
1339
@@ -1348,11 +1370,12 @@ def set_sink_immediate(self, fsm, name, size):
1348
1370
1349
1371
self ._synthesize_set_sink_immediate (var , name )
1350
1372
1351
- fsm .If (self .oready ).goto_next ()
1352
-
1353
1373
def set_sink_empty (self , fsm , name ):
1354
1374
""" intrinsic method to assign RAM property to a sink stream """
1375
+ self ._set_sink_empty (fsm , name )
1376
+ fsm .If (self .oready ).goto_next ()
1355
1377
1378
+ def _set_sink_empty (self , fsm , name ):
1356
1379
if not self .stream_synthesized :
1357
1380
self ._implement_stream ()
1358
1381
@@ -1380,11 +1403,12 @@ def set_sink_empty(self, fsm, name):
1380
1403
ram_sel (0 ) # '0' is reserved for empty
1381
1404
)
1382
1405
1383
- fsm .If (self .oready ).goto_next ()
1384
-
1385
1406
def set_parameter (self , fsm , name , value , raw = False ):
1386
1407
""" intrinsic method to assign parameter value to a parameter stream """
1408
+ self ._set_parameter (fsm , name , value , raw )
1409
+ fsm .goto_next ()
1387
1410
1411
+ def _set_parameter (self , fsm , name , value , raw = False ):
1388
1412
if not self .stream_synthesized :
1389
1413
self ._implement_stream ()
1390
1414
@@ -1417,11 +1441,12 @@ def set_parameter(self, fsm, name, value, raw=False):
1417
1441
var .write (var .next_parameter_data , self .source_start )
1418
1442
var .has_parameter_data = True
1419
1443
1420
- fsm .goto_next ()
1421
-
1422
1444
def set_read_RAM (self , fsm , name , ram , port = 0 ):
1423
1445
""" intrinsic method to assign RAM property to a read_RAM interface """
1446
+ self ._set_read_RAM (fsm , name , ram , port )
1447
+ fsm .goto_next ()
1424
1448
1449
+ def _set_read_RAM (self , fsm , name , ram , port = 0 ):
1425
1450
if not self .stream_synthesized :
1426
1451
self ._implement_stream ()
1427
1452
@@ -1446,11 +1471,12 @@ def set_read_RAM(self, fsm, name, ram, port=0):
1446
1471
port = vtypes .to_int (port )
1447
1472
self ._setup_read_ram (ram , var , port , set_cond )
1448
1473
1449
- fsm .goto_next ()
1450
-
1451
1474
def set_write_RAM (self , fsm , name , ram , port = 0 ):
1452
1475
""" intrinsic method to assign RAM property to a write_RAM interface """
1476
+ self ._set_write_RAM (fsm , name , ram , port )
1477
+ fsm .goto_next ()
1453
1478
1479
+ def _set_write_RAM (self , fsm , name , ram , port = 0 ):
1454
1480
if not self .stream_synthesized :
1455
1481
self ._implement_stream ()
1456
1482
@@ -1475,10 +1501,11 @@ def set_write_RAM(self, fsm, name, ram, port=0):
1475
1501
port = vtypes .to_int (port )
1476
1502
self ._setup_write_ram (ram , var , port , set_cond )
1477
1503
1478
- fsm .goto_next ()
1479
-
1480
1504
def set_read_modify_write_RAM (self , fsm , name , ram , read_ports = None , write_port = None ):
1505
+ self ._set_read_modify_write_RAM (fsm , name , ram , read_ports , write_port )
1506
+ fsm .goto_next ()
1481
1507
1508
+ def _set_read_modify_write_RAM (self , fsm , name , ram , read_ports = None , write_port = None ):
1482
1509
if not self .stream_synthesized :
1483
1510
self ._implement_stream ()
1484
1511
@@ -1508,15 +1535,17 @@ def set_read_modify_write_RAM(self, fsm, name, ram, read_ports=None, write_port=
1508
1535
1509
1536
for i , (read_ram , read_port ) in enumerate (zip (read_rams , read_ports )):
1510
1537
read_name = read_ram
1511
- self .set_read_RAM (fsm , read_name , ram , port = read_port )
1512
- fsm ._set_index (fsm .current - 1 )
1538
+ self ._set_read_RAM (fsm , read_name , ram , port = read_port )
1513
1539
1514
1540
write_name = write_ram
1515
- self .set_write_RAM (fsm , write_name , ram , port = write_port )
1541
+ self ._set_write_RAM (fsm , write_name , ram , port = write_port )
1516
1542
1517
1543
def set_read_fifo (self , fsm , name , fifo ):
1518
1544
""" intrinsic method to assign FIFO property to a read_fifo interface """
1545
+ self ._set_read_fifo (fsm , name , fifo )
1546
+ fsm .goto_next ()
1519
1547
1548
+ def _set_read_fifo (self , fsm , name , fifo ):
1520
1549
if not self .stream_synthesized :
1521
1550
self ._implement_stream ()
1522
1551
@@ -1540,11 +1569,12 @@ def set_read_fifo(self, fsm, name, fifo):
1540
1569
1541
1570
self ._setup_read_fifo (fifo , var , set_cond )
1542
1571
1543
- fsm .goto_next ()
1544
-
1545
1572
def set_write_fifo (self , fsm , name , fifo ):
1546
1573
""" intrinsic method to assign FIFO property to a write_fifo interface """
1574
+ self ._set_write_fifo (fsm , name , fifo )
1575
+ fsm .goto_next ()
1547
1576
1577
+ def _set_write_fifo (self , fsm , name , fifo ):
1548
1578
if not self .stream_synthesized :
1549
1579
self ._implement_stream ()
1550
1580
@@ -1568,8 +1598,6 @@ def set_write_fifo(self, fsm, name, fifo):
1568
1598
1569
1599
self ._setup_write_fifo (fifo , var , set_cond )
1570
1600
1571
- fsm .goto_next ()
1572
-
1573
1601
def read_sink (self , fsm , name ):
1574
1602
""" intrinsic method to read the last output of a sink stream """
1575
1603
0 commit comments