|
299 | 299 | assign _saxi_bready = 1;
|
300 | 300 | assign _saxi_arcache = 3;
|
301 | 301 | assign _saxi_arprot = 0;
|
302 |
| - reg [32-1:0] outstanding_wreq_count_9; |
| 302 | + reg [3-1:0] outstanding_wcount_9; |
303 | 303 | wire [32-1:0] _tmp_10;
|
304 | 304 | assign _tmp_10 = _saxi_awaddr;
|
305 | 305 |
|
|
465 | 465 | _saxi_wvalid = 0;
|
466 | 466 | _saxi_araddr = 0;
|
467 | 467 | _saxi_arvalid = 0;
|
468 |
| - outstanding_wreq_count_9 = 0; |
| 468 | + outstanding_wcount_9 = 0; |
469 | 469 | counter = 0;
|
470 | 470 | th_ctrl = th_ctrl_init;
|
471 | 471 | _th_ctrl_i_11 = 0;
|
|
744 | 744 |
|
745 | 745 | always @(posedge uut_CLK) begin
|
746 | 746 | if(uut_RST) begin
|
747 |
| - outstanding_wreq_count_9 <= 0; |
| 747 | + outstanding_wcount_9 <= 0; |
748 | 748 | _saxi_awaddr <= 0;
|
749 | 749 | _saxi_awvalid <= 0;
|
750 | 750 | __saxi_cond_0_1 <= 0;
|
|
793 | 793 | if(__saxi_cond_9_1) begin
|
794 | 794 | _saxi_arvalid <= 0;
|
795 | 795 | end
|
796 |
| - if(_saxi_wvalid && _saxi_wready && !(_saxi_bvalid && _saxi_bready)) begin |
797 |
| - outstanding_wreq_count_9 <= outstanding_wreq_count_9 + 1; |
| 796 | + if(_saxi_wvalid && _saxi_wready && !(_saxi_bvalid && _saxi_bready) && (outstanding_wcount_9 < 7)) begin |
| 797 | + outstanding_wcount_9 <= outstanding_wcount_9 + 1; |
798 | 798 | end
|
799 |
| - if(!(_saxi_wvalid && _saxi_wready) && (_saxi_bvalid && _saxi_bready) && (outstanding_wreq_count_9 > 0)) begin |
800 |
| - outstanding_wreq_count_9 <= outstanding_wreq_count_9 - 1; |
| 799 | + if(!(_saxi_wvalid && _saxi_wready) && (_saxi_bvalid && _saxi_bready) && (outstanding_wcount_9 > 0)) begin |
| 800 | + outstanding_wcount_9 <= outstanding_wcount_9 - 1; |
801 | 801 | end
|
802 | 802 | if((th_ctrl == 6) && (_saxi_awready || !_saxi_awvalid)) begin
|
803 | 803 | _saxi_awaddr <= _th_ctrl_awaddr_12;
|
|
807 | 807 | if(_saxi_awvalid && !_saxi_awready) begin
|
808 | 808 | _saxi_awvalid <= _saxi_awvalid;
|
809 | 809 | end
|
810 |
| - if((th_ctrl == 7) && (_saxi_wready || !_saxi_wvalid)) begin |
| 810 | + if((th_ctrl == 7) && ((outstanding_wcount_9 < 6) && (_saxi_wready || !_saxi_wvalid))) begin |
811 | 811 | _saxi_wdata <= 4096;
|
812 | 812 | _saxi_wvalid <= 1;
|
813 | 813 | _saxi_wstrb <= { 4{ 1'd1 } };
|
|
824 | 824 | if(_saxi_awvalid && !_saxi_awready) begin
|
825 | 825 | _saxi_awvalid <= _saxi_awvalid;
|
826 | 826 | end
|
827 |
| - if((th_ctrl == 12) && (_saxi_wready || !_saxi_wvalid)) begin |
| 827 | + if((th_ctrl == 12) && ((outstanding_wcount_9 < 6) && (_saxi_wready || !_saxi_wvalid))) begin |
828 | 828 | _saxi_wdata <= _th_ctrl_src_offset_13;
|
829 | 829 | _saxi_wvalid <= 1;
|
830 | 830 | _saxi_wstrb <= { 4{ 1'd1 } };
|
|
841 | 841 | if(_saxi_awvalid && !_saxi_awready) begin
|
842 | 842 | _saxi_awvalid <= _saxi_awvalid;
|
843 | 843 | end
|
844 |
| - if((th_ctrl == 17) && (_saxi_wready || !_saxi_wvalid)) begin |
| 844 | + if((th_ctrl == 17) && ((outstanding_wcount_9 < 6) && (_saxi_wready || !_saxi_wvalid))) begin |
845 | 845 | _saxi_wdata <= _th_ctrl_dst_offset_14;
|
846 | 846 | _saxi_wvalid <= 1;
|
847 | 847 | _saxi_wstrb <= { 4{ 1'd1 } };
|
|
858 | 858 | if(_saxi_awvalid && !_saxi_awready) begin
|
859 | 859 | _saxi_awvalid <= _saxi_awvalid;
|
860 | 860 | end
|
861 |
| - if((th_ctrl == 22) && (_saxi_wready || !_saxi_wvalid)) begin |
| 861 | + if((th_ctrl == 22) && ((outstanding_wcount_9 < 6) && (_saxi_wready || !_saxi_wvalid))) begin |
862 | 862 | _saxi_wdata <= 1;
|
863 | 863 | _saxi_wvalid <= 1;
|
864 | 864 | _saxi_wstrb <= { 4{ 1'd1 } };
|
|
980 | 980 | end
|
981 | 981 | end
|
982 | 982 | th_ctrl_7: begin
|
983 |
| - if(_saxi_wready || !_saxi_wvalid) begin |
| 983 | + if((outstanding_wcount_9 < 6) && (_saxi_wready || !_saxi_wvalid)) begin |
984 | 984 | th_ctrl <= th_ctrl_8;
|
985 | 985 | end
|
986 | 986 | end
|
|
1002 | 1002 | end
|
1003 | 1003 | end
|
1004 | 1004 | th_ctrl_12: begin
|
1005 |
| - if(_saxi_wready || !_saxi_wvalid) begin |
| 1005 | + if((outstanding_wcount_9 < 6) && (_saxi_wready || !_saxi_wvalid)) begin |
1006 | 1006 | th_ctrl <= th_ctrl_13;
|
1007 | 1007 | end
|
1008 | 1008 | end
|
|
1024 | 1024 | end
|
1025 | 1025 | end
|
1026 | 1026 | th_ctrl_17: begin
|
1027 |
| - if(_saxi_wready || !_saxi_wvalid) begin |
| 1027 | + if((outstanding_wcount_9 < 6) && (_saxi_wready || !_saxi_wvalid)) begin |
1028 | 1028 | th_ctrl <= th_ctrl_18;
|
1029 | 1029 | end
|
1030 | 1030 | end
|
|
1046 | 1046 | end
|
1047 | 1047 | end
|
1048 | 1048 | th_ctrl_22: begin
|
1049 |
| - if(_saxi_wready || !_saxi_wvalid) begin |
| 1049 | + if((outstanding_wcount_9 < 6) && (_saxi_wready || !_saxi_wvalid)) begin |
1050 | 1050 | th_ctrl <= th_ctrl_23;
|
1051 | 1051 | end
|
1052 | 1052 | end
|
|
1216 | 1216 | assign maxi_arprot = 0;
|
1217 | 1217 | assign maxi_arqos = 0;
|
1218 | 1218 | assign maxi_aruser = 0;
|
1219 |
| - reg [32-1:0] outstanding_wreq_count_0; |
| 1219 | + reg [3-1:0] outstanding_wcount_0; |
1220 | 1220 | reg _maxi_read_start;
|
1221 | 1221 | reg [8-1:0] _maxi_read_op_sel;
|
1222 | 1222 | reg [32-1:0] _maxi_read_local_addr;
|
|
1393 | 1393 | wire [32-1:0] _dataflow__variable_odata_1;
|
1394 | 1394 | wire _dataflow__variable_ovalid_1;
|
1395 | 1395 | wire _dataflow__variable_oready_1;
|
1396 |
| - assign _dataflow__variable_oready_1 = (_maxi_write_fsm == 3) && (_maxi_write_op_sel == 1) && ((counter_30 > 0) && (maxi_wready || !maxi_wvalid)); |
| 1396 | + assign _dataflow__variable_oready_1 = (_maxi_write_fsm == 3) && (_maxi_write_op_sel == 1) && ((counter_30 > 0) && (outstanding_wcount_0 < 6) && (maxi_wready || !maxi_wvalid)); |
1397 | 1397 | reg _maxi_cond_2_1;
|
1398 | 1398 | assign _maxi_write_data_done = (last_31 && maxi_wvalid && maxi_wready)? 1 : 0;
|
1399 | 1399 | reg axim_flag_32;
|
|
1476 | 1476 |
|
1477 | 1477 | always @(posedge CLK) begin
|
1478 | 1478 | if(RST) begin
|
1479 |
| - outstanding_wreq_count_0 <= 0; |
| 1479 | + outstanding_wcount_0 <= 0; |
1480 | 1480 | _maxi_read_start <= 0;
|
1481 | 1481 | _maxi_write_start <= 0;
|
1482 | 1482 | _maxi_ram_a_0_read_start <= 0;
|
|
1531 | 1531 | maxi_wlast <= 0;
|
1532 | 1532 | last_31 <= 0;
|
1533 | 1533 | end
|
1534 |
| - if(maxi_wlast && maxi_wvalid && maxi_wready && !(maxi_bvalid && maxi_bready)) begin |
1535 |
| - outstanding_wreq_count_0 <= outstanding_wreq_count_0 + 1; |
| 1534 | + if(maxi_wlast && maxi_wvalid && maxi_wready && !(maxi_bvalid && maxi_bready) && (outstanding_wcount_0 < 7)) begin |
| 1535 | + outstanding_wcount_0 <= outstanding_wcount_0 + 1; |
1536 | 1536 | end
|
1537 |
| - if(!(maxi_wlast && maxi_wvalid && maxi_wready) && (maxi_bvalid && maxi_bready) && (outstanding_wreq_count_0 > 0)) begin |
1538 |
| - outstanding_wreq_count_0 <= outstanding_wreq_count_0 - 1; |
| 1537 | + if(!(maxi_wlast && maxi_wvalid && maxi_wready) && (maxi_bvalid && maxi_bready) && (outstanding_wcount_0 > 0)) begin |
| 1538 | + outstanding_wcount_0 <= outstanding_wcount_0 - 1; |
1539 | 1539 | end
|
1540 | 1540 | _maxi_read_start <= 0;
|
1541 | 1541 | _maxi_write_start <= 0;
|
|
1608 | 1608 | if(maxi_awvalid && !maxi_awready) begin
|
1609 | 1609 | maxi_awvalid <= maxi_awvalid;
|
1610 | 1610 | end
|
1611 |
| - if(_dataflow__variable_ovalid_1 && ((_maxi_write_fsm == 3) && (_maxi_write_op_sel == 1) && ((counter_30 > 0) && (maxi_wready || !maxi_wvalid))) && ((counter_30 > 0) && (maxi_wready || !maxi_wvalid) && (counter_30 > 0))) begin |
| 1611 | + if(_dataflow__variable_ovalid_1 && ((_maxi_write_fsm == 3) && (_maxi_write_op_sel == 1) && ((counter_30 > 0) && (outstanding_wcount_0 < 6) && (maxi_wready || !maxi_wvalid))) && ((counter_30 > 0) && (outstanding_wcount_0 < 6) && (maxi_wready || !maxi_wvalid) && (counter_30 > 0))) begin |
1612 | 1612 | maxi_wdata <= _dataflow__variable_odata_1;
|
1613 | 1613 | maxi_wvalid <= 1;
|
1614 | 1614 | maxi_wlast <= 0;
|
1615 | 1615 | maxi_wstrb <= { 4{ 1'd1 } };
|
1616 | 1616 | counter_30 <= counter_30 - 1;
|
1617 | 1617 | end
|
1618 |
| - if(_dataflow__variable_ovalid_1 && ((_maxi_write_fsm == 3) && (_maxi_write_op_sel == 1) && ((counter_30 > 0) && (maxi_wready || !maxi_wvalid))) && ((counter_30 > 0) && (maxi_wready || !maxi_wvalid) && (counter_30 > 0)) && (counter_30 == 1)) begin |
| 1618 | + if(_dataflow__variable_ovalid_1 && ((_maxi_write_fsm == 3) && (_maxi_write_op_sel == 1) && ((counter_30 > 0) && (outstanding_wcount_0 < 6) && (maxi_wready || !maxi_wvalid))) && ((counter_30 > 0) && (outstanding_wcount_0 < 6) && (maxi_wready || !maxi_wvalid) && (counter_30 > 0)) && (counter_30 == 1)) begin |
1619 | 1619 | maxi_wlast <= 1;
|
1620 | 1620 | last_31 <= 1;
|
1621 | 1621 | end
|
|
2030 | 2030 | th_memcpy <= th_memcpy_23;
|
2031 | 2031 | end
|
2032 | 2032 | th_memcpy_23: begin
|
2033 |
| - if(_maxi_write_idle && (outstanding_wreq_count_0 == 0)) begin |
| 2033 | + if(_maxi_write_idle && (outstanding_wcount_0 == 0)) begin |
2034 | 2034 | th_memcpy <= th_memcpy_24;
|
2035 | 2035 | end
|
2036 | 2036 | end
|
|
0 commit comments