|
868 | 868 | recv_fsm <= recv_fsm_2; |
869 | 869 | end |
870 | 870 | recv_fsm_2: begin |
871 | | - if(recv_count < 5) begin |
| 871 | + if(recv_count < 0) begin |
872 | 872 | recv_count <= recv_count + 1; |
873 | 873 | end else begin |
874 | 874 | recv_count <= 0; |
875 | 875 | end |
876 | | - if(recv_count >= 5) begin |
| 876 | + if(recv_count >= 0) begin |
877 | 877 | recv_fsm <= recv_fsm_3; |
878 | 878 | end |
879 | 879 | end |
|
1338 | 1338 | output signed [32-1:0] zdata |
1339 | 1339 | ); |
1340 | 1340 |
|
1341 | | - reg [1-1:0] _pointer_data_2; |
1342 | | - reg [5-1:0] _slice_data_8; |
1343 | | - reg [1-1:0] _eq_data_24; |
| 1341 | + wire [1-1:0] _pointer_data_2; |
| 1342 | + assign _pointer_data_2 = xdata[6'sd31]; |
| 1343 | + wire [5-1:0] _slice_data_6; |
| 1344 | + assign _slice_data_6 = ydata[4'd4:1'd0]; |
| 1345 | + wire [5-1:0] _minus_data_7; |
| 1346 | + assign _minus_data_7 = _slice_data_6 - 2'sd1; |
| 1347 | + wire signed [34-1:0] _sll_data_10; |
| 1348 | + assign _sll_data_10 = 2'sd1 << _minus_data_7; |
| 1349 | + wire signed [2-1:0] _cond_data_18; |
| 1350 | + assign _cond_data_18 = (_pointer_data_2)? -2'sd1 : 1'sd0; |
| 1351 | + wire signed [33-1:0] _plus_data_19; |
| 1352 | + assign _plus_data_19 = xdata + _sll_data_10; |
| 1353 | + wire signed [33-1:0] _plus_data_20; |
| 1354 | + assign _plus_data_20 = _plus_data_19 + _cond_data_18; |
| 1355 | + wire signed [32-1:0] _sra_data_21; |
| 1356 | + assign _sra_data_21 = _plus_data_20 >>> ydata; |
| 1357 | + reg [1-1:0] _eq_data_23; |
| 1358 | + reg signed [32-1:0] __delay_data_25; |
1344 | 1359 | reg signed [32-1:0] __delay_data_26; |
1345 | | - reg signed [32-1:0] __delay_data_31; |
1346 | | - reg [5-1:0] _minus_data_9; |
1347 | | - reg signed [2-1:0] _cond_data_19; |
1348 | | - reg signed [32-1:0] __delay_data_27; |
1349 | | - reg signed [32-1:0] __delay_data_32; |
1350 | | - reg [1-1:0] __delay_data_36; |
1351 | | - reg signed [34-1:0] _sll_data_11; |
1352 | | - reg signed [32-1:0] __delay_data_28; |
1353 | | - reg signed [2-1:0] __delay_data_29; |
1354 | | - reg signed [32-1:0] __delay_data_33; |
1355 | | - reg [1-1:0] __delay_data_37; |
1356 | | - reg signed [34-1:0] _plus_data_20; |
1357 | | - reg signed [2-1:0] __delay_data_30; |
1358 | | - reg signed [32-1:0] __delay_data_34; |
1359 | | - reg [1-1:0] __delay_data_38; |
1360 | | - reg signed [32-1:0] __delay_data_41; |
1361 | | - reg signed [34-1:0] _plus_data_21; |
1362 | | - reg signed [32-1:0] __delay_data_35; |
1363 | | - reg [1-1:0] __delay_data_39; |
1364 | | - reg signed [32-1:0] __delay_data_42; |
1365 | | - reg signed [32-1:0] _sra_data_22; |
1366 | | - reg [1-1:0] __delay_data_40; |
1367 | | - reg signed [32-1:0] __delay_data_43; |
1368 | | - reg signed [32-1:0] _cond_data_25; |
1369 | | - assign zdata = _cond_data_25; |
| 1360 | + reg signed [32-1:0] _cond_data_24; |
| 1361 | + assign zdata = _cond_data_24; |
1370 | 1362 |
|
1371 | 1363 | always @(posedge CLK) begin |
1372 | 1364 | if(RST) begin |
1373 | | - _pointer_data_2 <= 0; |
1374 | | - _slice_data_8 <= 0; |
1375 | | - _eq_data_24 <= 0; |
| 1365 | + _eq_data_23 <= 0; |
| 1366 | + __delay_data_25 <= 0; |
1376 | 1367 | __delay_data_26 <= 0; |
1377 | | - __delay_data_31 <= 0; |
1378 | | - _minus_data_9 <= 0; |
1379 | | - _cond_data_19 <= 0; |
1380 | | - __delay_data_27 <= 0; |
1381 | | - __delay_data_32 <= 0; |
1382 | | - __delay_data_36 <= 0; |
1383 | | - _sll_data_11 <= 0; |
1384 | | - __delay_data_28 <= 0; |
1385 | | - __delay_data_29 <= 0; |
1386 | | - __delay_data_33 <= 0; |
1387 | | - __delay_data_37 <= 0; |
1388 | | - _plus_data_20 <= 0; |
1389 | | - __delay_data_30 <= 0; |
1390 | | - __delay_data_34 <= 0; |
1391 | | - __delay_data_38 <= 0; |
1392 | | - __delay_data_41 <= 0; |
1393 | | - _plus_data_21 <= 0; |
1394 | | - __delay_data_35 <= 0; |
1395 | | - __delay_data_39 <= 0; |
1396 | | - __delay_data_42 <= 0; |
1397 | | - _sra_data_22 <= 0; |
1398 | | - __delay_data_40 <= 0; |
1399 | | - __delay_data_43 <= 0; |
1400 | | - _cond_data_25 <= 0; |
| 1368 | + _cond_data_24 <= 0; |
1401 | 1369 | end else begin |
1402 | | - _pointer_data_2 <= xdata[6'sd31]; |
1403 | | - _slice_data_8 <= ydata[4'd4:1'd0]; |
1404 | | - _eq_data_24 <= ydata == 1'sd0; |
1405 | | - __delay_data_26 <= xdata; |
1406 | | - __delay_data_31 <= ydata; |
1407 | | - _minus_data_9 <= _slice_data_8 - 2'sd1; |
1408 | | - _cond_data_19 <= (_pointer_data_2)? -2'sd1 : 1'sd0; |
1409 | | - __delay_data_27 <= __delay_data_26; |
1410 | | - __delay_data_32 <= __delay_data_31; |
1411 | | - __delay_data_36 <= _eq_data_24; |
1412 | | - _sll_data_11 <= 2'sd1 << _minus_data_9; |
1413 | | - __delay_data_28 <= __delay_data_27; |
1414 | | - __delay_data_29 <= _cond_data_19; |
1415 | | - __delay_data_33 <= __delay_data_32; |
1416 | | - __delay_data_37 <= __delay_data_36; |
1417 | | - _plus_data_20 <= __delay_data_28 + _sll_data_11; |
1418 | | - __delay_data_30 <= __delay_data_29; |
1419 | | - __delay_data_34 <= __delay_data_33; |
1420 | | - __delay_data_38 <= __delay_data_37; |
1421 | | - __delay_data_41 <= __delay_data_28; |
1422 | | - _plus_data_21 <= _plus_data_20 + __delay_data_30; |
1423 | | - __delay_data_35 <= __delay_data_34; |
1424 | | - __delay_data_39 <= __delay_data_38; |
1425 | | - __delay_data_42 <= __delay_data_41; |
1426 | | - _sra_data_22 <= _plus_data_21 >>> __delay_data_35; |
1427 | | - __delay_data_40 <= __delay_data_39; |
1428 | | - __delay_data_43 <= __delay_data_42; |
1429 | | - _cond_data_25 <= (__delay_data_40)? __delay_data_43 : _sra_data_22; |
| 1370 | + _eq_data_23 <= ydata == 1'sd0; |
| 1371 | + __delay_data_25 <= xdata; |
| 1372 | + __delay_data_26 <= _sra_data_21; |
| 1373 | + _cond_data_24 <= (_eq_data_23)? __delay_data_25 : __delay_data_26; |
1430 | 1374 | end |
1431 | 1375 | end |
1432 | 1376 |
|
1433 | 1377 |
|
1434 | 1378 | endmodule |
| 1379 | +
|
1435 | 1380 | """ |
1436 | 1381 |
|
1437 | 1382 |
|
@@ -1460,7 +1405,7 @@ def test(): |
1460 | 1405 | vz = list(map(lambda x: int(str.split(x,"=")[1]), filter(lambda x: "zdata" in x , str.split(rslt, "\n")))) |
1461 | 1406 | ez = list(map(lambda x,y: int( Decimal(str(x/(2.0**y))).quantize(Decimal('0'), rounding=ROUND_HALF_UP)), vx,vy)) |
1462 | 1407 |
|
1463 | | - #pprint(list(zip(lx,ly,lz,ez))) |
| 1408 | + #pprint(list(zip(vx,vy,vz,ez))) |
1464 | 1409 |
|
1465 | | - assert(all(map(lambda x ,y: x == y, vz,ez))) |
| 1410 | + assert(all(map(lambda x ,y: x == y, vz, ez))) |
1466 | 1411 |
|
0 commit comments