Skip to content

Commit 0ecae52

Browse files
committed
Merge branch 'feature_multicycle' into develop
2 parents 2a40fd4 + 680c059 commit 0ecae52

File tree

21 files changed

+1482
-283
lines changed

21 files changed

+1482
-283
lines changed

examples/thread_stream_axi_stream_fifo/test_thread_stream_axi_stream_fifo.py

Lines changed: 103 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -287,13 +287,13 @@
287287
localparam _mystream_reduce_fsm_init = 0;
288288
wire _mystream_reduce_run_flag;
289289
reg _mystream_reduce_source_start;
290-
reg _mystream_reduce_source_stop;
290+
wire _mystream_reduce_source_stop;
291291
reg _mystream_reduce_source_busy;
292292
wire _mystream_reduce_sink_start;
293293
wire _mystream_reduce_sink_stop;
294294
wire _mystream_reduce_sink_busy;
295295
wire _mystream_reduce_busy;
296-
reg _mystream_reduce_busy_buf;
296+
reg _mystream_reduce_busy_reg;
297297
wire _mystream_reduce_is_root;
298298
assign _mystream_reduce_is_root = 1;
299299
reg _mystream_reduce_a_idle;
@@ -354,13 +354,13 @@
354354
localparam _mystream_bias_fsm_init = 0;
355355
wire _mystream_bias_run_flag;
356356
reg _mystream_bias_source_start;
357-
reg _mystream_bias_source_stop;
357+
wire _mystream_bias_source_stop;
358358
reg _mystream_bias_source_busy;
359359
wire _mystream_bias_sink_start;
360360
wire _mystream_bias_sink_stop;
361361
wire _mystream_bias_sink_busy;
362362
wire _mystream_bias_busy;
363-
reg _mystream_bias_busy_buf;
363+
reg _mystream_bias_busy_reg;
364364
wire _mystream_bias_is_root;
365365
assign _mystream_bias_is_root = 1;
366366
reg _mystream_bias_x_idle;
@@ -648,6 +648,7 @@
648648
reg _tmp_72;
649649
reg _tmp_73;
650650
reg _tmp_74;
651+
assign _mystream_reduce_source_stop = _mystream_reduce_stream_oready && (_mystream_reduce_a_idle && (_mystream_reduce_fsm == 3));
651652
localparam _tmp_75 = 1;
652653
wire [_tmp_75-1:0] _tmp_76;
653654
assign _tmp_76 = _mystream_reduce_a_idle && (_mystream_reduce_fsm == 3);
@@ -667,38 +668,43 @@
667668
reg _tmp_88;
668669
reg _tmp_89;
669670
reg _tmp_90;
670-
assign _mystream_reduce_sink_stop = _tmp_90;
671671
reg _tmp_91;
672672
reg _tmp_92;
673+
assign _mystream_reduce_sink_stop = _tmp_92;
673674
reg _tmp_93;
674675
reg _tmp_94;
675676
reg _tmp_95;
676677
reg _tmp_96;
677-
assign _mystream_reduce_sink_busy = _tmp_96;
678-
reg __mystream_reduce_sink_busy_1;
679-
assign _mystream_reduce_busy = _mystream_reduce_source_busy || _mystream_reduce_sink_busy || _mystream_reduce_busy_buf;
680-
wire _set_flag_97;
681-
assign _set_flag_97 = th_comp == 33;
682-
assign _mystream_bias_run_flag = (_set_flag_97)? 1 : 0;
678+
reg _tmp_97;
683679
reg _tmp_98;
680+
assign _mystream_reduce_sink_busy = _tmp_98;
684681
reg _tmp_99;
685-
reg _tmp_100;
686-
localparam _tmp_101 = 1;
687-
wire [_tmp_101-1:0] _tmp_102;
688-
assign _tmp_102 = _mystream_bias_x_idle && _mystream_bias_y_idle && (_mystream_bias_fsm == 3);
689-
reg [_tmp_101-1:0] _tmp_103;
690-
reg _tmp_104;
691-
reg _tmp_105;
692-
reg _tmp_106;
693-
assign _mystream_bias_sink_start = _tmp_106;
682+
assign _mystream_reduce_busy = _mystream_reduce_source_busy || _mystream_reduce_sink_busy || _mystream_reduce_busy_reg;
683+
wire _set_flag_100;
684+
assign _set_flag_100 = th_comp == 33;
685+
assign _mystream_bias_run_flag = (_set_flag_100)? 1 : 0;
686+
reg _tmp_101;
687+
reg _tmp_102;
688+
reg _tmp_103;
689+
assign _mystream_bias_source_stop = _mystream_bias_stream_oready && (_mystream_bias_x_idle && _mystream_bias_y_idle && (_mystream_bias_fsm == 3));
690+
localparam _tmp_104 = 1;
691+
wire [_tmp_104-1:0] _tmp_105;
692+
assign _tmp_105 = _mystream_bias_x_idle && _mystream_bias_y_idle && (_mystream_bias_fsm == 3);
693+
reg [_tmp_104-1:0] _tmp_106;
694694
reg _tmp_107;
695-
assign _mystream_bias_sink_stop = _tmp_107;
696695
reg _tmp_108;
697696
reg _tmp_109;
697+
assign _mystream_bias_sink_start = _tmp_109;
698698
reg _tmp_110;
699-
assign _mystream_bias_sink_busy = _tmp_110;
700-
reg __mystream_bias_sink_busy_1;
701-
assign _mystream_bias_busy = _mystream_bias_source_busy || _mystream_bias_sink_busy || _mystream_bias_busy_buf;
699+
reg _tmp_111;
700+
reg _tmp_112;
701+
assign _mystream_bias_sink_stop = _tmp_112;
702+
reg _tmp_113;
703+
reg _tmp_114;
704+
reg _tmp_115;
705+
assign _mystream_bias_sink_busy = _tmp_115;
706+
reg _tmp_116;
707+
assign _mystream_bias_busy = _mystream_bias_source_busy || _mystream_bias_sink_busy || _mystream_bias_busy_reg;
702708
703709
always @(posedge CLK) begin
704710
if(RST) begin
@@ -1283,8 +1289,10 @@
12831289
_tmp_94 <= 0;
12841290
_tmp_95 <= 0;
12851291
_tmp_96 <= 0;
1286-
__mystream_reduce_sink_busy_1 <= 0;
1287-
_mystream_reduce_busy_buf <= 0;
1292+
_tmp_97 <= 0;
1293+
_tmp_98 <= 0;
1294+
_tmp_99 <= 0;
1295+
_mystream_reduce_busy_reg <= 0;
12881296
end else begin
12891297
if(_mystream_reduce_stream_oready) begin
12901298
_mystream_reduce_a_source_ram_renable <= 0;
@@ -1382,6 +1390,10 @@
13821390
_mystream_reduce_a_source_fifo_deq <= 0;
13831391
_mystream_reduce_a_idle <= 1;
13841392
end
1393+
if((_mystream_reduce_a_source_fsm_0 == 2) && _mystream_reduce_source_stop && _mystream_reduce_stream_oready) begin
1394+
_mystream_reduce_a_source_fifo_deq <= 0;
1395+
_mystream_reduce_a_idle <= 1;
1396+
end
13851397
if(_set_flag_33) begin
13861398
_mystream_reduce_reduce_size_next_parameter_data <= _th_comp_reduce_size_2;
13871399
end
@@ -1519,13 +1531,13 @@
15191531
_tmp_90 <= _tmp_89;
15201532
end
15211533
if(_mystream_reduce_stream_oready) begin
1522-
_tmp_91 <= _mystream_reduce_source_busy;
1534+
_tmp_91 <= _tmp_90;
15231535
end
15241536
if(_mystream_reduce_stream_oready) begin
15251537
_tmp_92 <= _tmp_91;
15261538
end
15271539
if(_mystream_reduce_stream_oready) begin
1528-
_tmp_93 <= _tmp_92;
1540+
_tmp_93 <= _mystream_reduce_source_busy;
15291541
end
15301542
if(_mystream_reduce_stream_oready) begin
15311543
_tmp_94 <= _tmp_93;
@@ -1536,12 +1548,20 @@
15361548
if(_mystream_reduce_stream_oready) begin
15371549
_tmp_96 <= _tmp_95;
15381550
end
1539-
__mystream_reduce_sink_busy_1 <= _mystream_reduce_sink_busy;
1540-
if(!_mystream_reduce_sink_busy && __mystream_reduce_sink_busy_1) begin
1541-
_mystream_reduce_busy_buf <= 0;
1551+
if(_mystream_reduce_stream_oready) begin
1552+
_tmp_97 <= _tmp_96;
1553+
end
1554+
if(_mystream_reduce_stream_oready) begin
1555+
_tmp_98 <= _tmp_97;
1556+
end
1557+
if(_mystream_reduce_stream_oready) begin
1558+
_tmp_99 <= _mystream_reduce_sink_busy;
1559+
end
1560+
if(!_mystream_reduce_sink_busy && _tmp_99) begin
1561+
_mystream_reduce_busy_reg <= 0;
15421562
end
15431563
if(_mystream_reduce_source_busy) begin
1544-
_mystream_reduce_busy_buf <= 1;
1564+
_mystream_reduce_busy_reg <= 1;
15451565
end
15461566
end
15471567
end
@@ -1555,15 +1575,11 @@
15551575
_mystream_reduce_fsm <= _mystream_reduce_fsm_init;
15561576
_mystream_reduce_source_start <= 0;
15571577
_mystream_reduce_source_busy <= 0;
1558-
_mystream_reduce_source_stop <= 0;
15591578
_mystream_reduce_stream_ivalid <= 0;
15601579
end else begin
15611580
if(_mystream_reduce_stream_oready && _tmp_67) begin
15621581
_mystream_reduce_stream_ivalid <= 1;
15631582
end
1564-
if(_mystream_reduce_stream_oready) begin
1565-
_mystream_reduce_source_stop <= 0;
1566-
end
15671583
if(_mystream_reduce_stream_oready && _tmp_77) begin
15681584
_mystream_reduce_stream_ivalid <= 0;
15691585
end
@@ -1592,7 +1608,6 @@
15921608
end
15931609
_mystream_reduce_fsm_3: begin
15941610
if(_mystream_reduce_stream_oready && (_mystream_reduce_a_idle && (_mystream_reduce_fsm == 3))) begin
1595-
_mystream_reduce_source_stop <= 1;
15961611
_mystream_reduce_source_busy <= 0;
15971612
end
15981613
if(_mystream_reduce_stream_oready && (_mystream_reduce_a_idle && (_mystream_reduce_fsm == 3)) && _mystream_reduce_run_flag) begin
@@ -1651,19 +1666,21 @@
16511666
_mystream_bias_z_sink_size_buf <= 0;
16521667
_mystream_bias_z_sink_count <= 0;
16531668
_mystream_bias_z_sink_fifo_wdata <= 0;
1654-
_tmp_98 <= 0;
1655-
_tmp_99 <= 0;
1656-
_tmp_100 <= 0;
1669+
_tmp_101 <= 0;
1670+
_tmp_102 <= 0;
16571671
_tmp_103 <= 0;
1658-
_tmp_104 <= 0;
1659-
_tmp_105 <= 0;
16601672
_tmp_106 <= 0;
16611673
_tmp_107 <= 0;
16621674
_tmp_108 <= 0;
16631675
_tmp_109 <= 0;
16641676
_tmp_110 <= 0;
1665-
__mystream_bias_sink_busy_1 <= 0;
1666-
_mystream_bias_busy_buf <= 0;
1677+
_tmp_111 <= 0;
1678+
_tmp_112 <= 0;
1679+
_tmp_113 <= 0;
1680+
_tmp_114 <= 0;
1681+
_tmp_115 <= 0;
1682+
_tmp_116 <= 0;
1683+
_mystream_bias_busy_reg <= 0;
16671684
end else begin
16681685
if(_mystream_bias_stream_oready) begin
16691686
_mystream_bias_x_source_ram_renable <= 0;
@@ -1711,6 +1728,10 @@
17111728
_mystream_bias_x_source_fifo_deq <= 0;
17121729
_mystream_bias_x_idle <= 1;
17131730
end
1731+
if((_mystream_bias_x_source_fsm_0 == 2) && _mystream_bias_source_stop && _mystream_bias_stream_oready) begin
1732+
_mystream_bias_x_source_fifo_deq <= 0;
1733+
_mystream_bias_x_idle <= 1;
1734+
end
17141735
if(_set_flag_52) begin
17151736
_mystream_bias_y_source_mode <= 4'b1;
17161737
_mystream_bias_y_source_offset <= 0;
@@ -1743,6 +1764,10 @@
17431764
_mystream_bias_y_source_ram_renable <= 0;
17441765
_mystream_bias_y_idle <= 1;
17451766
end
1767+
if((_mystream_bias_y_source_fsm_1 == 2) && _mystream_bias_source_stop && _mystream_bias_stream_oready) begin
1768+
_mystream_bias_y_source_ram_renable <= 0;
1769+
_mystream_bias_y_idle <= 1;
1770+
end
17461771
if(_mystream_bias_stream_oready) begin
17471772
_tmp_56 <= _set_flag_55;
17481773
end
@@ -1781,44 +1806,52 @@
17811806
_mystream_bias_z_sink_count <= _mystream_bias_z_sink_count - 1;
17821807
end
17831808
if(_mystream_bias_stream_oready) begin
1784-
_tmp_98 <= _mystream_bias_source_start;
1809+
_tmp_101 <= _mystream_bias_source_start;
17851810
end
17861811
if(_mystream_bias_stream_oready) begin
1787-
_tmp_99 <= _tmp_98;
1812+
_tmp_102 <= _tmp_101;
17881813
end
17891814
if(_mystream_bias_stream_oready) begin
1790-
_tmp_100 <= _tmp_99;
1815+
_tmp_103 <= _tmp_102;
17911816
end
17921817
if(_mystream_bias_stream_oready) begin
1793-
_tmp_103 <= _tmp_102;
1818+
_tmp_106 <= _tmp_105;
17941819
end
17951820
if(_mystream_bias_stream_oready) begin
1796-
_tmp_104 <= _mystream_bias_source_start;
1821+
_tmp_107 <= _mystream_bias_source_start;
17971822
end
17981823
if(_mystream_bias_stream_oready) begin
1799-
_tmp_105 <= _tmp_104;
1824+
_tmp_108 <= _tmp_107;
18001825
end
18011826
if(_mystream_bias_stream_oready) begin
1802-
_tmp_106 <= _tmp_105;
1827+
_tmp_109 <= _tmp_108;
18031828
end
18041829
if(_mystream_bias_stream_oready) begin
1805-
_tmp_107 <= _mystream_bias_source_stop;
1830+
_tmp_110 <= _mystream_bias_source_stop;
18061831
end
18071832
if(_mystream_bias_stream_oready) begin
1808-
_tmp_108 <= _mystream_bias_source_busy;
1833+
_tmp_111 <= _tmp_110;
18091834
end
18101835
if(_mystream_bias_stream_oready) begin
1811-
_tmp_109 <= _tmp_108;
1836+
_tmp_112 <= _tmp_111;
1837+
end
1838+
if(_mystream_bias_stream_oready) begin
1839+
_tmp_113 <= _mystream_bias_source_busy;
1840+
end
1841+
if(_mystream_bias_stream_oready) begin
1842+
_tmp_114 <= _tmp_113;
1843+
end
1844+
if(_mystream_bias_stream_oready) begin
1845+
_tmp_115 <= _tmp_114;
18121846
end
18131847
if(_mystream_bias_stream_oready) begin
1814-
_tmp_110 <= _tmp_109;
1848+
_tmp_116 <= _mystream_bias_sink_busy;
18151849
end
1816-
__mystream_bias_sink_busy_1 <= _mystream_bias_sink_busy;
1817-
if(!_mystream_bias_sink_busy && __mystream_bias_sink_busy_1) begin
1818-
_mystream_bias_busy_buf <= 0;
1850+
if(!_mystream_bias_sink_busy && _tmp_116) begin
1851+
_mystream_bias_busy_reg <= 0;
18191852
end
18201853
if(_mystream_bias_source_busy) begin
1821-
_mystream_bias_busy_buf <= 1;
1854+
_mystream_bias_busy_reg <= 1;
18221855
end
18231856
end
18241857
end
@@ -1832,16 +1865,12 @@
18321865
_mystream_bias_fsm <= _mystream_bias_fsm_init;
18331866
_mystream_bias_source_start <= 0;
18341867
_mystream_bias_source_busy <= 0;
1835-
_mystream_bias_source_stop <= 0;
18361868
_mystream_bias_stream_ivalid <= 0;
18371869
end else begin
1838-
if(_mystream_bias_stream_oready && _tmp_100) begin
1870+
if(_mystream_bias_stream_oready && _tmp_103) begin
18391871
_mystream_bias_stream_ivalid <= 1;
18401872
end
1841-
if(_mystream_bias_stream_oready) begin
1842-
_mystream_bias_source_stop <= 0;
1843-
end
1844-
if(_mystream_bias_stream_oready && _tmp_103) begin
1873+
if(_mystream_bias_stream_oready && _tmp_106) begin
18451874
_mystream_bias_stream_ivalid <= 0;
18461875
end
18471876
case(_mystream_bias_fsm)
@@ -1869,7 +1898,6 @@
18691898
end
18701899
_mystream_bias_fsm_3: begin
18711900
if(_mystream_bias_stream_oready && (_mystream_bias_x_idle && _mystream_bias_y_idle && (_mystream_bias_fsm == 3))) begin
1872-
_mystream_bias_source_stop <= 1;
18731901
_mystream_bias_source_busy <= 0;
18741902
end
18751903
if(_mystream_bias_stream_oready && (_mystream_bias_x_idle && _mystream_bias_y_idle && (_mystream_bias_fsm == 3)) && _mystream_bias_run_flag) begin
@@ -2348,6 +2376,9 @@
23482376
if((_mystream_reduce_a_source_count == 1) && _mystream_reduce_stream_oready) begin
23492377
_mystream_reduce_a_source_fsm_0 <= _mystream_reduce_a_source_fsm_0_init;
23502378
end
2379+
if(_mystream_reduce_source_stop && _mystream_reduce_stream_oready) begin
2380+
_mystream_reduce_a_source_fsm_0 <= _mystream_reduce_a_source_fsm_0_init;
2381+
end
23512382
end
23522383
endcase
23532384
end
@@ -2405,6 +2436,9 @@
24052436
if((_mystream_bias_x_source_count == 1) && _mystream_bias_stream_oready) begin
24062437
_mystream_bias_x_source_fsm_0 <= _mystream_bias_x_source_fsm_0_init;
24072438
end
2439+
if(_mystream_bias_source_stop && _mystream_bias_stream_oready) begin
2440+
_mystream_bias_x_source_fsm_0 <= _mystream_bias_x_source_fsm_0_init;
2441+
end
24082442
end
24092443
endcase
24102444
end
@@ -2432,6 +2466,9 @@
24322466
if((_mystream_bias_y_source_count == 1) && _mystream_bias_stream_oready) begin
24332467
_mystream_bias_y_source_fsm_1 <= _mystream_bias_y_source_fsm_1_init;
24342468
end
2469+
if(_mystream_bias_source_stop && _mystream_bias_stream_oready) begin
2470+
_mystream_bias_y_source_fsm_1 <= _mystream_bias_y_source_fsm_1_init;
2471+
end
24352472
end
24362473
endcase
24372474
end

tests/extension/thread_/stream/thread_stream.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ def mkTest(memimg_name=None):
105105
params=m.connect_params(led),
106106
ports=m.connect_ports(led))
107107

108-
# simulation.setup_waveform(m, uut)
108+
simulation.setup_waveform(m, uut)
109109
simulation.setup_clock(m, clk, hperiod=5)
110110
init = simulation.setup_reset(m, rst, m.make_reset(), period=100)
111111

0 commit comments

Comments
 (0)