|
995 | 995 | reg [32-1:0] _myaxi_read_local_stride_buf;
|
996 | 996 | reg [33-1:0] _myaxi_read_local_size_buf;
|
997 | 997 | reg [32-1:0] _myaxi_read_local_blocksize_buf;
|
998 |
| - reg _myaxi_read_req_idle; |
999 |
| - reg _myaxi_read_data_idle; |
| 998 | + reg _myaxi_read_req_busy; |
| 999 | + reg _myaxi_read_data_busy; |
| 1000 | + wire _myaxi_read_req_idle; |
| 1001 | + wire _myaxi_read_data_idle; |
1000 | 1002 | wire _myaxi_read_idle;
|
1001 |
| - assign _myaxi_read_idle = !_myaxi_read_start && _myaxi_read_req_idle && _myaxi_read_req_fifo_empty && _myaxi_read_data_idle; |
| 1003 | + assign _myaxi_read_req_idle = !_myaxi_read_start && !_myaxi_read_req_busy; |
| 1004 | + assign _myaxi_read_data_idle = _myaxi_read_req_fifo_empty && !_myaxi_read_data_busy; |
| 1005 | + assign _myaxi_read_idle = _myaxi_read_req_idle && _myaxi_read_data_idle; |
1002 | 1006 | reg _myaxi_write_start;
|
1003 | 1007 | reg [8-1:0] _myaxi_write_op_sel;
|
1004 | 1008 | reg [32-1:0] _myaxi_write_global_addr;
|
|
1057 | 1061 | reg [32-1:0] _myaxi_write_local_stride_buf;
|
1058 | 1062 | reg [33-1:0] _myaxi_write_size_buf;
|
1059 | 1063 | reg [32-1:0] _myaxi_write_local_blocksize_buf;
|
1060 |
| - reg _myaxi_write_req_idle; |
1061 |
| - reg _myaxi_write_data_idle; |
| 1064 | + reg _myaxi_write_req_busy; |
| 1065 | + reg _myaxi_write_data_busy; |
| 1066 | + wire _myaxi_write_req_idle; |
| 1067 | + wire _myaxi_write_data_idle; |
1062 | 1068 | wire _myaxi_write_idle;
|
1063 |
| - assign _myaxi_write_idle = !_myaxi_write_start && _myaxi_write_req_idle && _myaxi_write_req_fifo_empty && _myaxi_write_data_idle; |
| 1069 | + assign _myaxi_write_req_idle = !_myaxi_write_start && !_myaxi_write_req_busy; |
| 1070 | + assign _myaxi_write_data_idle = _myaxi_write_req_fifo_empty && !_myaxi_write_data_busy; |
| 1071 | + assign _myaxi_write_idle = _myaxi_write_req_idle && _myaxi_write_data_idle; |
1064 | 1072 | reg [32-1:0] th_matmul;
|
1065 | 1073 | localparam th_matmul_init = 0;
|
1066 | 1074 | reg signed [32-1:0] _th_matmul_matrix_size_0;
|
|
1257 | 1265 | wire [32-1:0] read_burst_rdata_86;
|
1258 | 1266 | assign read_burst_rdata_86 = ram_c_0_rdata;
|
1259 | 1267 | assign _myaxi_write_req_fifo_deq = ((_myaxi_write_data_fsm == 2) && (!_myaxi_write_req_fifo_empty && (_myaxi_write_size_buf == 0)) && !_myaxi_write_req_fifo_empty)? 1 :
|
1260 |
| - ((_myaxi_write_data_fsm == 0) && (_myaxi_write_data_idle && !_myaxi_write_req_fifo_empty && (_myaxi_write_op_sel_fifo == 1)) && !_myaxi_write_req_fifo_empty)? 1 : 0; |
| 1268 | + ((_myaxi_write_data_fsm == 0) && (!_myaxi_write_data_busy && !_myaxi_write_req_fifo_empty && (_myaxi_write_op_sel_fifo == 1)) && !_myaxi_write_req_fifo_empty)? 1 : 0; |
1261 | 1269 | reg _myaxi_cond_2_1;
|
1262 | 1270 | reg signed [32-1:0] _th_matmul_end_time_18;
|
1263 | 1271 | reg signed [32-1:0] _th_matmul_time_19;
|
|
1272 | 1280 | assign mask_addr_shifted_87 = _th_matmul_c_addr_25 >> 2;
|
1273 | 1281 | wire [32-1:0] mask_addr_masked_88;
|
1274 | 1282 | assign mask_addr_masked_88 = mask_addr_shifted_87 << 2;
|
1275 |
| - assign _myaxi_read_req_fifo_deq = ((_myaxi_read_data_fsm == 0) && (_myaxi_read_data_idle && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 3)) && !_myaxi_read_req_fifo_empty)? 1 : |
1276 |
| - ((_myaxi_read_data_fsm == 0) && (_myaxi_read_data_idle && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 2)) && !_myaxi_read_req_fifo_empty)? 1 : |
1277 |
| - ((_myaxi_read_data_fsm == 0) && (_myaxi_read_data_idle && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 1)) && !_myaxi_read_req_fifo_empty)? 1 : 0; |
| 1283 | + assign _myaxi_read_req_fifo_deq = ((_myaxi_read_data_fsm == 0) && (!_myaxi_read_data_busy && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 3)) && !_myaxi_read_req_fifo_empty)? 1 : |
| 1284 | + ((_myaxi_read_data_fsm == 0) && (!_myaxi_read_data_busy && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 2)) && !_myaxi_read_req_fifo_empty)? 1 : |
| 1285 | + ((_myaxi_read_data_fsm == 0) && (!_myaxi_read_data_busy && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 1)) && !_myaxi_read_req_fifo_empty)? 1 : 0; |
1278 | 1286 | reg [32-1:0] write_burst_fsm_3;
|
1279 | 1287 | localparam write_burst_fsm_3_init = 0;
|
1280 | 1288 | reg [10-1:0] write_burst_addr_89;
|
|
1352 | 1360 | _myaxi_read_local_stride <= 0;
|
1353 | 1361 | _myaxi_read_local_size <= 0;
|
1354 | 1362 | _myaxi_read_local_blocksize <= 0;
|
1355 |
| - _myaxi_read_req_idle <= 1; |
| 1363 | + _myaxi_read_req_busy <= 0; |
1356 | 1364 | _myaxi_read_cur_global_size <= 0;
|
1357 | 1365 | myaxi_araddr <= 0;
|
1358 | 1366 | myaxi_arlen <= 0;
|
1359 | 1367 | myaxi_arvalid <= 0;
|
1360 | 1368 | _myaxi_cond_0_1 <= 0;
|
1361 |
| - _myaxi_read_data_idle <= 1; |
| 1369 | + _myaxi_read_data_busy <= 0; |
1362 | 1370 | _myaxi_read_op_sel_buf <= 0;
|
1363 | 1371 | _myaxi_read_local_addr_buf <= 0;
|
1364 | 1372 | _myaxi_read_local_stride_buf <= 0;
|
|
1371 | 1379 | _myaxi_write_local_stride <= 0;
|
1372 | 1380 | _myaxi_write_local_size <= 0;
|
1373 | 1381 | _myaxi_write_local_blocksize <= 0;
|
1374 |
| - _myaxi_write_req_idle <= 1; |
| 1382 | + _myaxi_write_req_busy <= 0; |
1375 | 1383 | _myaxi_write_cur_global_size <= 0;
|
1376 | 1384 | myaxi_awaddr <= 0;
|
1377 | 1385 | myaxi_awlen <= 0;
|
1378 | 1386 | myaxi_awvalid <= 0;
|
1379 | 1387 | _myaxi_cond_1_1 <= 0;
|
1380 |
| - _myaxi_write_data_idle <= 1; |
| 1388 | + _myaxi_write_data_busy <= 0; |
1381 | 1389 | _myaxi_write_op_sel_buf <= 0;
|
1382 | 1390 | _myaxi_write_local_addr_buf <= 0;
|
1383 | 1391 | _myaxi_write_local_stride_buf <= 0;
|
|
1418 | 1426 | _myaxi_read_local_blocksize <= 1;
|
1419 | 1427 | end
|
1420 | 1428 | if((_myaxi_read_req_fsm == 0) && _myaxi_read_start) begin
|
1421 |
| - _myaxi_read_req_idle <= 0; |
| 1429 | + _myaxi_read_req_busy <= 1; |
1422 | 1430 | end
|
1423 | 1431 | if(_myaxi_read_start && _myaxi_read_req_fifo_almost_full) begin
|
1424 | 1432 | _myaxi_read_start <= 1;
|
|
1449 | 1457 | _myaxi_read_global_addr <= _myaxi_read_global_addr + (_myaxi_read_cur_global_size << 2);
|
1450 | 1458 | end
|
1451 | 1459 | if((_myaxi_read_req_fsm == 1) && (myaxi_arready || !myaxi_arvalid) && (_myaxi_read_global_size == 0)) begin
|
1452 |
| - _myaxi_read_req_idle <= 1; |
| 1460 | + _myaxi_read_req_busy <= 0; |
1453 | 1461 | end
|
1454 |
| - if((_myaxi_read_data_fsm == 0) && (_myaxi_read_data_idle && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 1))) begin |
1455 |
| - _myaxi_read_data_idle <= 0; |
| 1462 | + if((_myaxi_read_data_fsm == 0) && (!_myaxi_read_data_busy && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 1))) begin |
| 1463 | + _myaxi_read_data_busy <= 1; |
1456 | 1464 | _myaxi_read_op_sel_buf <= _myaxi_read_op_sel_fifo;
|
1457 | 1465 | _myaxi_read_local_addr_buf <= _myaxi_read_local_addr_fifo;
|
1458 | 1466 | _myaxi_read_local_stride_buf <= _myaxi_read_local_stride_fifo;
|
|
1463 | 1471 | _myaxi_read_local_size_buf <= _myaxi_read_local_size_buf - 1;
|
1464 | 1472 | end
|
1465 | 1473 | if((_myaxi_read_data_fsm == 2) && myaxi_rvalid && (_myaxi_read_local_size_buf <= 1)) begin
|
1466 |
| - _myaxi_read_data_idle <= 1; |
| 1474 | + _myaxi_read_data_busy <= 0; |
1467 | 1475 | end
|
1468 | 1476 | if((th_matmul == 11) && _myaxi_read_req_idle) begin
|
1469 | 1477 | _myaxi_read_start <= 1;
|
|
1475 | 1483 | _myaxi_read_local_size <= _th_matmul_matrix_size_5;
|
1476 | 1484 | _myaxi_read_local_blocksize <= 1;
|
1477 | 1485 | end
|
1478 |
| - if((_myaxi_read_data_fsm == 0) && (_myaxi_read_data_idle && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 2))) begin |
1479 |
| - _myaxi_read_data_idle <= 0; |
| 1486 | + if((_myaxi_read_data_fsm == 0) && (!_myaxi_read_data_busy && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 2))) begin |
| 1487 | + _myaxi_read_data_busy <= 1; |
1480 | 1488 | _myaxi_read_op_sel_buf <= _myaxi_read_op_sel_fifo;
|
1481 | 1489 | _myaxi_read_local_addr_buf <= _myaxi_read_local_addr_fifo;
|
1482 | 1490 | _myaxi_read_local_stride_buf <= _myaxi_read_local_stride_fifo;
|
|
1487 | 1495 | _myaxi_read_local_size_buf <= _myaxi_read_local_size_buf - 1;
|
1488 | 1496 | end
|
1489 | 1497 | if((_myaxi_read_data_fsm == 2) && myaxi_rvalid && (_myaxi_read_local_size_buf <= 1)) begin
|
1490 |
| - _myaxi_read_data_idle <= 1; |
| 1498 | + _myaxi_read_data_busy <= 0; |
1491 | 1499 | end
|
1492 | 1500 | if((th_matmul == 25) && _myaxi_write_req_idle) begin
|
1493 | 1501 | _myaxi_write_start <= 1;
|
|
1500 | 1508 | _myaxi_write_local_blocksize <= 1;
|
1501 | 1509 | end
|
1502 | 1510 | if((_myaxi_write_req_fsm == 0) && _myaxi_write_start) begin
|
1503 |
| - _myaxi_write_req_idle <= 0; |
| 1511 | + _myaxi_write_req_busy <= 1; |
1504 | 1512 | end
|
1505 | 1513 | if(_myaxi_write_start && _myaxi_write_req_fifo_almost_full) begin
|
1506 | 1514 | _myaxi_write_start <= 1;
|
|
1534 | 1542 | _myaxi_write_global_addr <= _myaxi_write_global_addr + (_myaxi_write_cur_global_size << 2);
|
1535 | 1543 | end
|
1536 | 1544 | if((_myaxi_write_req_fsm == 1) && ((_myaxi_write_req_fsm == 1) && !_myaxi_write_req_fifo_almost_full && (myaxi_awready || !myaxi_awvalid) && (outstanding_wcount_0 < 6)) && (_myaxi_write_global_size == 0)) begin
|
1537 |
| - _myaxi_write_req_idle <= 1; |
| 1545 | + _myaxi_write_req_busy <= 0; |
1538 | 1546 | end
|
1539 |
| - if((_myaxi_write_data_fsm == 0) && (_myaxi_write_data_idle && !_myaxi_write_req_fifo_empty && (_myaxi_write_op_sel_fifo == 1))) begin |
1540 |
| - _myaxi_write_data_idle <= 0; |
| 1547 | + if((_myaxi_write_data_fsm == 0) && (!_myaxi_write_data_busy && !_myaxi_write_req_fifo_empty && (_myaxi_write_op_sel_fifo == 1))) begin |
| 1548 | + _myaxi_write_data_busy <= 1; |
1541 | 1549 | _myaxi_write_op_sel_buf <= _myaxi_write_op_sel_fifo;
|
1542 | 1550 | _myaxi_write_local_addr_buf <= _myaxi_write_local_addr_fifo;
|
1543 | 1551 | _myaxi_write_local_stride_buf <= _myaxi_write_local_stride_fifo;
|
|
1565 | 1573 | _myaxi_write_size_buf <= _myaxi_write_size_buf - 1;
|
1566 | 1574 | end
|
1567 | 1575 | if((_myaxi_write_data_fsm == 2) && ((_myaxi_write_op_sel_buf == 1) && read_burst_rvalid_82 && ((myaxi_wready || !myaxi_wvalid) && (_myaxi_write_size_buf > 0))) && read_burst_rlast_83) begin
|
1568 |
| - _myaxi_write_data_idle <= 1; |
| 1576 | + _myaxi_write_data_busy <= 0; |
1569 | 1577 | end
|
1570 | 1578 | if((th_matmul == 38) && _myaxi_read_req_idle) begin
|
1571 | 1579 | _myaxi_read_start <= 1;
|
|
1577 | 1585 | _myaxi_read_local_size <= _th_matmul_matrix_size_20;
|
1578 | 1586 | _myaxi_read_local_blocksize <= 1;
|
1579 | 1587 | end
|
1580 |
| - if((_myaxi_read_data_fsm == 0) && (_myaxi_read_data_idle && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 3))) begin |
1581 |
| - _myaxi_read_data_idle <= 0; |
| 1588 | + if((_myaxi_read_data_fsm == 0) && (!_myaxi_read_data_busy && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 3))) begin |
| 1589 | + _myaxi_read_data_busy <= 1; |
1582 | 1590 | _myaxi_read_op_sel_buf <= _myaxi_read_op_sel_fifo;
|
1583 | 1591 | _myaxi_read_local_addr_buf <= _myaxi_read_local_addr_fifo;
|
1584 | 1592 | _myaxi_read_local_stride_buf <= _myaxi_read_local_stride_fifo;
|
|
1589 | 1597 | _myaxi_read_local_size_buf <= _myaxi_read_local_size_buf - 1;
|
1590 | 1598 | end
|
1591 | 1599 | if((_myaxi_read_data_fsm == 2) && myaxi_rvalid && (_myaxi_read_local_size_buf <= 1)) begin
|
1592 |
| - _myaxi_read_data_idle <= 1; |
| 1600 | + _myaxi_read_data_busy <= 0; |
1593 | 1601 | end
|
1594 | 1602 | end
|
1595 | 1603 | end
|
|
2051 | 2059 | end else begin
|
2052 | 2060 | case(_myaxi_read_data_fsm)
|
2053 | 2061 | _myaxi_read_data_fsm_init: begin
|
2054 |
| - if(_myaxi_read_data_idle && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 1)) begin |
| 2062 | + if(!_myaxi_read_data_busy && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 1)) begin |
2055 | 2063 | _myaxi_read_data_fsm <= _myaxi_read_data_fsm_1;
|
2056 | 2064 | end
|
2057 |
| - if(_myaxi_read_data_idle && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 2)) begin |
| 2065 | + if(!_myaxi_read_data_busy && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 2)) begin |
2058 | 2066 | _myaxi_read_data_fsm <= _myaxi_read_data_fsm_1;
|
2059 | 2067 | end
|
2060 |
| - if(_myaxi_read_data_idle && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 3)) begin |
| 2068 | + if(!_myaxi_read_data_busy && !_myaxi_read_req_fifo_empty && (_myaxi_read_op_sel_fifo == 3)) begin |
2061 | 2069 | _myaxi_read_data_fsm <= _myaxi_read_data_fsm_1;
|
2062 | 2070 | end
|
2063 | 2071 | end
|
|
2210 | 2218 | end else begin
|
2211 | 2219 | case(_myaxi_write_data_fsm)
|
2212 | 2220 | _myaxi_write_data_fsm_init: begin
|
2213 |
| - if(_myaxi_write_data_idle && !_myaxi_write_req_fifo_empty && (_myaxi_write_op_sel_fifo == 1)) begin |
| 2221 | + if(!_myaxi_write_data_busy && !_myaxi_write_req_fifo_empty && (_myaxi_write_op_sel_fifo == 1)) begin |
2214 | 2222 | _myaxi_write_data_fsm <= _myaxi_write_data_fsm_1;
|
2215 | 2223 | end
|
2216 | 2224 | end
|
|
0 commit comments