Synthesis Benchmark of Common Native Floating Point Operators
This example shows how to access and generate synthesis benchmarks for common native floating-point operators with Xilinx® Vivado® and Intel® Quartus® tool.
Access Generated Synthesis Results from a MAT File
Perform synthesis and timing analysis on common operators with Xilinx Vivado and Intel Quartus tool. These operators include basic math operators such as addition and subtraction, as well as more complex operators such as log, sin, cos, and atan. In this example, you configure the Simulink® models used for synthesis with native floating-point mode in single precision with different latency strategies. The strategies include maximum, minimum, zero, and custom latency values from zero to the maximum latency of the floating-point operator.
In this example, you use benchmarking data that has already been generated for the hdl_nfp_single_ops_benchmark
model. The benchmarking data is in the hdlcoder_synthesis_benchmark
MAT file. The MAT file contains the data for subsystems whose names start with op_
. Each subsystem corresponds to a device under test (DUT).
Open the Simulink model.
addpath(fullfile(matlabroot, 'toolbox', 'hdlcoder', 'hdlcoder', 'hdlutils', 'hdlBenchMarking')) open_system('hdl_nfp_single_ops_benchmark')
To generate the synthesis result from the MAT file:
1. Make a copy of the Simulink model in a directory for which you have write permission.
2. Run the runBenchmarkNFPSingle
function by running these commands.
addpath(fullfile(matlabroot, 'toolbox', 'hdlcoder', 'hdlcoder', 'hdlutils', 'hdlBenchMarking')) Results = runBenchmarkNFPSingle;
Generating synthesis benchmarks with the hdl_nfp_single_ops_benchmark
model takes several days to finish benchmarking.
To view the MAT file that contains synthesis results.
load('hdlcoder_synthesis_benchmark.mat')
NFPSynthesisResults
NFPSynthesisResults = struct with fields: Vivado: [1x1 struct] Quartus: [1x1 struct]
The MAT file contains a structure named NFPSynthesisResults
, which has two fields. The Vivado field contains the synthesis results of the Xilinx Vivado. The Quartus field contains the synthesis results of the Intel Quartus. View synthesis results of Vivado tool.
NFPSynthesisResults.Vivado
ans = struct with fields: HardwareDetails: [1x1 struct] MaxLatency: [82x13 table] MinLatency: [82x13 table] ZeroLatency: [82x13 table] TargetFrequency: 500 CustomLatency: [369x13 table]
NFPSynthesisResults.Vivado
and NFPSynthesisResults.Quartus
contains these fields:
HardwareDetails
- Structure containing tool and device informationMaxLatency
- Table of synthesis results using the MAX latency strategyMinLatency
- Table of synthesis results using the MIN latency strategyZeroLatency
- Table of synthesis results using the ZERO latency strategyTargetFrequency
- Target frequency in MHzCustomLatency
- Table of synthesis results using the latency values from zero to the maximum latency
The NFPSynthesisResults.Vivado.CustomLatency
and NFPSynthesisResults.Quartus.CustomLatency
contains list of performance and resource utilization of the floating-point operators for latency values from zero to max latency. View the complete list of performance and resource utilization results for Xilinx Vivado:
NFPSynthesisResults.Vivado.CustomLatency
ans = 369x13 table Fmax Slices SliceRegs LUTs DSPs RAMs URAMs Latency DataPathDelay Slack LogicLevels LogicDelay RouteDelay ______ ______ _________ ____ ____ ____ _____ _______ _____________ _______ ___________ __________ __________ op_17x17Mul_vivado_latency0 109.05 123 96 372 1 0 0 0 9.17 -7.198 24 4.816 4.354 op_17x17Mul_vivado_latency1 121.36 134 164 400 1 0 0 0 8.24 Inf 18 2.191 6.049 op_17x17Mul_vivado_latency2 132.59 153 260 403 1 0 0 1 7.542 Inf 17 2.029 5.513 op_17x17Mul_vivado_latency3 272.41 158 314 375 1 0 0 2 3.671 -2.037 17 1.715 1.956 op_17x17Mul_vivado_latency4 263.99 180 357 398 1 0 0 3 3.788 Inf 5 0.534 3.254 op_17x17Mul_vivado_latency5 259.81 145 441 385 1 0 0 4 3.849 Inf 8 1.083 2.766 op_17x17Mul_vivado_latency6 735.29 148 448 399 1 0 0 5 1.36 Inf 2 0.191 1.169 op_17x17Mul_vivado_latency7 656.17 155 543 408 1 0 0 6 1.524 Inf 3 0.23 1.294 op_17x17Mul_vivado_latency8 653.59 171 673 403 1 0 0 7 1.53 Inf 3 0.129 1.401 op_AddSub_vivado_latency0 83.326 162 96 532 0 0 0 0 12.001 -10.029 36 3.097 8.904 op_AddSub_vivado_latency1 104.91 148 127 486 0 0 0 0 9.532 Inf 19 1.585 7.947 op_AddSub_vivado_latency2 161.34 144 208 426 0 0 0 1 6.198 Inf 14 1.32 4.878 op_AddSub_vivado_latency3 242.54 167 281 484 0 0 0 2 4.123 Inf 10 0.857 3.266 op_AddSub_vivado_latency4 266.95 187 338 521 0 0 0 3 3.746 Inf 10 0.927 2.819 op_AddSub_vivado_latency5 306.94 180 387 483 0 0 0 4 3.258 -1.286 12 1.242 2.016 op_AddSub_vivado_latency6 308.45 215 434 536 0 0 0 5 3.242 -1.271 10 1.056 2.186 op_AddSub_vivado_latency7 296.38 184 501 533 0 0 0 6 3.374 -1.37 8 1.037 2.337 op_AddSub_vivado_latency8 379.94 193 562 505 0 0 0 7 2.632 -0.66 7 0.936 1.696 op_AddSub_vivado_latency9 367.78 190 561 562 0 0 0 8 2.719 -0.748 7 0.969 1.75 op_AddSub_vivado_latency10 383.29 188 646 529 0 0 0 9 2.609 -0.607 9 0.983 1.626 op_AddSub_vivado_latency11 504.03 209 667 545 0 0 0 10 1.984 -0.077 4 0.456 1.528 op_Div_vivado_latency0 22.548 495 97 1542 0 0 0 0 44.349 -42.377 193 18.091 26.258 op_Div_vivado_latency1 43.588 457 210 1388 0 0 0 1 22.942 -20.939 110 11.214 11.728 op_Div_vivado_latency2 68.273 437 316 1313 0 0 0 2 14.647 -12.675 74 7.235 7.412 op_Div_vivado_latency3 85.638 405 422 1208 0 0 0 3 11.677 -9.673 61 6.365 5.312 op_Div_vivado_latency4 86.498 425 455 1201 0 0 0 4 11.561 -9.589 62 6.552 5.009 op_Div_vivado_latency5 95.529 452 542 1315 0 0 0 5 10.468 -8.496 55 5.594 4.874 op_Div_vivado_latency6 114.65 447 621 1238 0 0 0 6 8.722 -6.75 38 3.526 5.196 op_Div_vivado_latency7 135.12 474 652 1327 0 0 0 7 7.401 -5.429 36 3.977 3.424 op_Div_vivado_latency8 155.38 405 697 1290 0 0 0 8 6.436 -4.52 30 3.489 2.947 op_Div_vivado_latency9 175.59 459 753 1335 0 0 0 9 5.695 -3.783 32 3.278 2.417 op_Div_vivado_latency10 171.59 465 779 1298 0 0 0 10 5.828 -3.857 34 3.379 2.449 op_Div_vivado_latency11 219.44 462 858 1409 0 0 0 11 4.557 -2.586 24 2.601 1.956 op_Div_vivado_latency12 208.51 478 924 1417 0 0 0 12 4.796 -2.88 24 2.586 2.21 op_Div_vivado_latency13 215.52 492 950 1390 0 0 0 13 4.64 -2.633 25 2.665 1.975 op_Div_vivado_latency14 169.98 463 1012 1331 0 0 0 14 5.883 -3.876 34 3.448 2.435 op_Div_vivado_latency15 299.4 456 1082 1353 0 0 0 15 3.34 -1.368 16 1.801 1.539 op_Div_vivado_latency16 302.48 522 1138 1371 0 0 0 16 3.306 -1.335 13 1.241 2.065 op_Div_vivado_latency17 317.76 509 1164 1358 0 0 0 17 3.147 -1.235 17 1.768 1.379 op_Div_vivado_latency18 294.81 491 1248 1347 0 0 0 18 3.392 -1.48 10 1.461 1.931 op_Div_vivado_latency19 315.26 483 1316 1344 0 0 0 19 3.172 -1.265 17 1.841 1.331 op_Div_vivado_latency20 307.69 507 1345 1369 0 0 0 20 3.25 -1.349 16 1.787 1.463 op_Div_vivado_latency21 303.77 505 1396 1390 0 0 0 21 3.292 -1.38 17 1.846 1.446 op_Div_vivado_latency22 314.37 527 1447 1419 0 0 0 22 3.181 -1.279 15 1.733 1.448 op_Div_vivado_latency23 308.26 518 1497 1444 0 0 0 23 3.244 -1.237 17 1.849 1.395 op_Div_vivado_latency24 311.43 518 1548 1476 0 0 0 24 3.211 -1.295 16 1.798 1.413 op_Div_vivado_latency25 318.47 509 1599 1501 0 0 0 25 3.14 -1.232 15 1.745 1.395 op_Div_vivado_latency26 298.6 526 1650 1499 0 0 0 26 3.349 -1.433 17 1.882 1.467 op_Div_vivado_latency27 300.48 527 1687 1553 0 0 0 27 3.328 -1.426 16 1.789 1.539 op_Div_vivado_latency28 309.41 534 1763 1607 0 0 0 28 3.232 -1.225 16 1.77 1.462 op_Div_vivado_latency29 341.06 553 1795 1650 0 0 0 29 2.932 -0.925 13 1.587 1.345 op_Div_vivado_latency30 454.55 556 1862 1702 0 0 0 30 2.2 -0.228 10 1.09 1.11 op_Div_vivado_latency31 478.01 575 1872 1753 0 0 0 31 2.092 -0.12 9 0.876 1.216 op_Div_vivado_latency32 478.01 604 1956 1758 0 0 0 32 2.092 -0.088 10 0.981 1.111 op_DivRadix4_vivado_latency0 30.254 686 97 2500 0 0 0 0 33.053 -31.049 95 9.186 23.867 op_DivRadix4_vivado_latency1 47.886 559 236 1866 0 0 0 1 20.883 -18.912 76 6.968 13.915 op_DivRadix4_vivado_latency2 70.373 555 367 1914 0 0 0 2 14.21 -12.238 45 4.469 9.741 op_DivRadix4_vivado_latency3 64.779 559 484 1848 0 0 0 3 15.437 -13.465 53 5.299 10.138 op_DivRadix4_vivado_latency4 91.058 583 544 1894 0 0 0 4 10.982 -9.01 39 3.716 7.266 op_DivRadix4_vivado_latency5 121.6 581 630 1872 0 0 0 5 8.224 -6.222 29 3.027 5.197 op_DivRadix4_vivado_latency6 157.73 595 701 1918 0 0 0 6 6.34 -4.368 21 2.299 4.041 op_DivRadix4_vivado_latency7 159.36 606 772 1942 0 0 0 7 6.275 -4.303 20 2.113 4.162 op_DivRadix4_vivado_latency8 157.43 590 820 1916 0 0 0 8 6.352 -4.349 26 2.435 3.917 op_DivRadix4_vivado_latency9 236.69 607 942 1982 0 0 0 9 4.225 -2.253 14 1.619 2.606 op_DivRadix4_vivado_latency10 232.07 630 969 2013 0 0 0 10 4.309 -2.337 14 1.653 2.656 op_DivRadix4_vivado_latency11 228.99 625 1025 2030 0 0 0 11 4.367 -2.395 18 1.789 2.578 op_DivRadix4_vivado_latency12 241.95 629 1107 2015 0 0 0 12 4.133 -2.162 15 1.645 2.488 op_DivRadix4_vivado_latency13 241.49 623 1187 1988 0 0 0 13 4.141 -2.169 18 1.867 2.274 op_DivRadix4_vivado_latency14 240.5 619 1267 1958 0 0 0 14 4.158 -2.186 17 1.795 2.363 op_DivRadix4_vivado_latency15 239.41 613 1293 1973 0 0 0 15 4.177 -2.173 17 1.771 2.406 op_DivRadix4_vivado_latency16 428.27 658 1459 2061 0 0 0 16 2.335 -0.363 10 1.184 1.151 op_DivRadix4_vivado_latency17 444.05 663 1515 2104 0 0 0 17 2.252 Inf 1 0.27 1.982 op_DivRadix4_vivado_latency18 431.22 667 1583 2105 0 0 0 18 2.319 Inf 1 0.266 2.053 op_DivRadix4_vivado_latency19 447.23 670 1609 2078 0 0 0 19 2.236 -0.229 9 1.103 1.133 op_DivRadix4_vivado_latency20 429 677 1693 2063 0 0 0 20 2.331 -0.327 10 1.11 1.221 op_Div_Denorm_on_vivado_latency0 21.021 578 100 1819 0 0 0 0 47.571 -45.601 186 17.882 29.689 op_Div_Denorm_on_vivado_latency1 42.541 545 213 1741 0 0 0 1 23.507 -21.537 96 8.817 14.69 op_Div_Denorm_on_vivado_latency2 66.339 455 324 1451 0 0 0 2 15.074 -13.102 75 7.987 7.087 op_Div_Denorm_on_vivado_latency3 85.273 463 433 1468 0 0 0 3 11.727 -9.755 55 6.051 5.676 op_Div_Denorm_on_vivado_latency4 87.958 533 466 1460 0 0 0 4 11.369 -9.398 52 4.984 6.385 op_Div_Denorm_on_vivado_latency5 95.914 492 506 1561 0 0 0 5 10.426 -8.455 52 5.628 4.798 op_Div_Denorm_on_vivado_latency6 114.69 519 633 1480 0 0 0 6 8.719 -6.717 49 4.903 3.816 op_Div_Denorm_on_vivado_latency7 136.56 500 664 1542 0 0 0 7 7.323 -5.412 22 2.075 5.248 op_Div_Denorm_on_vivado_latency8 111.04 528 716 1558 0 0 0 8 9.006 -7.034 35 3.428 5.578 op_Div_Denorm_on_vivado_latency9 170.79 520 764 1540 0 0 0 9 5.855 -3.944 34 3.445 2.41 op_Div_Denorm_on_vivado_latency10 175.38 514 790 1534 0 0 0 10 5.702 -3.73 32 3.308 2.394 op_Div_Denorm_on_vivado_latency11 201.13 560 869 1656 0 0 0 11 4.972 -3 13 1.008 3.964 op_Div_Denorm_on_vivado_latency12 218.72 544 944 1644 0 0 0 12 4.572 -2.6 23 2.502 2.07 op_Div_Denorm_on_vivado_latency13 215.84 555 970 1599 0 0 0 13 4.633 -2.662 23 2.561 2.072 op_Div_Denorm_on_vivado_latency14 169.64 499 1032 1569 0 0 0 14 5.895 -3.988 32 3.385 2.51 op_Div_Denorm_on_vivado_latency15 236.8 563 1102 1627 0 0 0 15 4.223 -2.251 11 0.936 3.287 op_Div_Denorm_on_vivado_latency16 259.88 536 1158 1629 0 0 0 16 3.848 -1.876 11 0.948 2.9 op_Div_Denorm_on_vivado_latency17 287.52 551 1184 1607 0 0 0 17 3.478 -1.506 10 0.801 2.677 op_Div_Denorm_on_vivado_latency18 306.47 571 1268 1606 0 0 0 18 3.263 -1.356 15 1.741 1.522 op_Div_Denorm_on_vivado_latency19 315.06 565 1336 1570 0 0 0 19 3.174 -1.262 15 1.748 1.426 op_Div_Denorm_on_vivado_latency20 304.04 564 1365 1602 0 0 0 20 3.289 -1.377 17 1.772 1.517 op_Div_Denorm_on_vivado_latency21 318.88 576 1416 1625 0 0 0 21 3.136 -1.22 16 1.717 1.419 op_Div_Denorm_on_vivado_latency22 315.56 576 1467 1649 0 0 0 22 3.169 -1.257 17 1.776 1.393 op_Div_Denorm_on_vivado_latency23 310.27 591 1517 1674 0 0 0 23 3.223 -1.307 16 1.837 1.386 op_Div_Denorm_on_vivado_latency24 307.03 563 1568 1702 0 0 0 24 3.257 -1.355 15 1.724 1.533 op_Div_Denorm_on_vivado_latency25 316.56 582 1619 1730 0 0 0 25 3.159 -1.243 16 1.794 1.365 op_Div_Denorm_on_vivado_latency26 331.13 599 1670 1731 0 0 0 26 3.02 -1.105 16 1.798 1.222 op_Div_Denorm_on_vivado_latency27 312.79 574 1697 1807 0 0 0 27 3.197 -1.296 17 1.854 1.343 op_Div_Denorm_on_vivado_latency28 311.24 559 1773 1605 0 0 0 28 3.213 -1.241 12 1.189 2.024 op_Div_Denorm_on_vivado_latency29 298.42 546 1815 1610 0 0 0 29 3.351 -1.444 17 1.905 1.446 op_Div_Denorm_on_vivado_latency30 273.45 662 1882 1955 0 0 0 30 3.657 -1.686 10 0.877 2.78 op_Div_Denorm_on_vivado_latency31 467.51 663 1892 2020 0 0 0 31 2.139 -0.167 10 0.955 1.184 op_Div_Denorm_on_vivado_latency32 475.29 639 1976 1927 0 0 0 32 2.104 -0.133 9 0.876 1.228 op_Fixed2Single_vivado_latency0 301.93 36 38 90 0 0 0 0 3.312 -1.341 9 1.067 2.245 op_Fixed2Single_vivado_latency1 180.77 48 39 174 0 0 0 0 5.532 Inf 12 1.29 4.242 op_Fixed2Single_vivado_latency2 315.36 69 81 189 0 0 0 1 3.171 Inf 8 1.053 2.118 op_Fixed2Single_vivado_latency3 319.69 70 104 205 0 0 0 2 3.128 -1.228 12 1.603 1.525 op_Fixed2Single_vivado_latency4 325.63 69 115 210 0 0 0 3 3.071 -1.099 12 1.18 1.891 op_Fixed2Single_vivado_latency5 455.79 69 155 214 0 0 0 4 2.194 -0.222 5 0.845 1.349 op_Fixed2Single_vivado_latency6 506.07 87 180 209 0 0 0 5 1.976 -0.004 6 0.993 0.983 op_Floor_vivado_latency0 311.72 54 64 164 0 0 0 0 3.208 -1.237 14 1.546 1.662 op_Floor_vivado_latency1 310.17 61 125 183 0 0 0 0 3.224 Inf 4 0.395 2.829 op_Floor_vivado_latency2 198.85 65 115 196 0 0 0 1 5.029 Inf 13 1.692 3.337 op_Floor_vivado_latency3 422.3 63 158 163 0 0 0 2 2.368 -0.397 12 1.584 0.784 op_Floor_vivado_latency4 456 78 243 192 0 0 0 3 2.193 -0.223 11 1.175 1.018 op_Floor_vivado_latency5 552.18 78 308 208 0 0 0 4 1.811 0.159 8 1.027 0.784 op_Floor_vivado_latency6 552.18 78 308 208 0 0 0 4 1.811 0.159 8 1.027 0.784 op_GainPow2_vivado_latency0 766.87 12 64 35 0 0 0 0 1.304 0.666 1 0.327 0.977 op_GainPow2_vivado_latency1 665.34 14 64 14 0 0 0 0 1.503 0.131 2 0.372 1.131 op_GainPow2_vivado_latency2 454.13 25 97 18 0 0 0 1 2.202 -0.569 5 0.784 1.418 op_GainPow2_Denorm_on_vivado_latency0 178.48 89 64 287 0 0 0 0 5.603 -3.616 18 1.741 3.862 op_GainPow2_Denorm_on_vivado_latency1 204.16 71 97 221 0 0 0 0 4.898 Inf 6 0.587 4.311 op_GainPow2_Denorm_on_vivado_latency2 182.58 102 97 295 0 0 0 1 5.477 -3.463 19 1.739 3.738 op_Mul_FullMul_vivado_latency0 116.78 74 96 202 2 0 0 0 8.563 -6.592 10 4.559 4.004 op_Mul_FullMul_vivado_latency1 173.01 68 103 194 2 0 0 0 5.78 Inf 5 0.759 5.021 op_Mul_FullMul_vivado_latency2 196.85 72 119 201 2 0 0 1 5.08 Inf 10 1.323 3.757 op_Mul_FullMul_vivado_latency3 239.18 84 155 219 2 0 0 2 4.181 Inf 7 0.965 3.216 op_Mul_FullMul_vivado_latency4 259.81 78 191 206 2 0 0 3 3.849 Inf 9 1.126 2.723 op_Mul_FullMul_vivado_latency5 270.93 109 251 208 2 0 0 4 3.691 Inf 8 1.019 2.672 op_Mul_FullMul_vivado_latency6 580.72 86 269 200 2 0 0 5 1.722 -0.779 0 1.722 0 op_Mul_FullMul_vivado_latency7 577.7 95 353 231 2 0 0 6 1.731 Inf 1 0.043 1.688 op_Mul_FullMul_vivado_latency8 535.05 107 394 220 2 0 0 7 1.869 0.103 4 0.395 1.474 op_Mul_FullMul_Denorm_on_vivado_latency0 68.259 217 96 780 2 0 0 0 14.65 -12.679 27 5.855 8.795 op_Mul_FullMul_Denorm_on_vivado_latency1 68.078 207 102 720 2 0 0 0 14.689 Inf 26 2.623 12.066 op_Mul_FullMul_Denorm_on_vivado_latency2 81.706 198 154 681 2 0 0 1 12.239 Inf 20 2.258 9.981 op_Mul_FullMul_Denorm_on_vivado_latency3 172.59 221 190 724 2 0 0 2 5.794 -3.792 12 1.338 4.456 op_Mul_FullMul_Denorm_on_vivado_latency4 170.65 245 218 736 2 0 0 3 5.86 -3.888 14 1.403 4.457 op_Mul_FullMul_Denorm_on_vivado_latency5 258.53 287 285 772 2 0 0 4 3.868 Inf 5 0.537 3.331 op_Mul_FullMul_Denorm_on_vivado_latency6 171.79 278 320 720 2 0 0 5 5.821 -3.85 14 1.412 4.409 op_Mul_FullMul_Denorm_on_vivado_latency7 273.45 297 387 767 2 0 0 6 3.657 -1.685 7 0.524 3.133 op_Mul_FullMul_Denorm_on_vivado_latency8 286.45 285 398 769 2 0 0 7 3.491 -1.519 7 0.524 2.967 op_Mul_NoManMul_vivado_latency0 115.21 263 96 907 0 0 0 0 8.68 -6.709 31 3.907 4.773 op_Mul_NoManMul_vivado_latency1 108.3 306 302 1038 0 0 0 0 9.234 Inf 25 2.973 6.261 op_Mul_NoManMul_vivado_latency2 164.72 276 273 912 0 0 0 1 6.071 Inf 20 1.919 4.152 op_Mul_NoManMul_vivado_latency3 255.49 275 309 880 0 0 0 2 3.914 -1.927 15 1.945 1.969 op_Mul_NoManMul_vivado_latency4 267.74 301 444 961 0 0 0 3 3.735 Inf 8 1.16 2.575 op_Mul_NoManMul_vivado_latency5 313.77 303 504 950 0 0 0 4 3.187 Inf 2 0.345 2.842 op_Mul_NoManMul_vivado_latency6 378.5 303 518 883 0 0 0 5 2.642 -0.77 10 1.295 1.347 op_Mul_NoManMul_vivado_latency7 376.36 298 630 918 0 0 0 6 2.657 -0.785 10 1.193 1.464 op_Mul_NoManMul_vivado_latency8 548.25 327 850 947 0 0 0 7 1.824 -0.191 4 0.395 1.429 op_Mul_NoManMul_Denorm_on_vivado_latency0 65.656 422 96 1488 0 0 0 0 15.231 -13.227 42 4.466 10.765 op_Mul_NoManMul_Denorm_on_vivado_latency1 50.249 454 301 1546 0 0 0 0 19.901 Inf 36 3.847 16.054 op_Mul_NoManMul_Denorm_on_vivado_latency2 70.947 428 227 1442 0 0 0 1 14.095 Inf 22 2.473 11.622 op_Mul_NoManMul_Denorm_on_vivado_latency3 171.53 435 263 1462 0 0 0 2 5.83 -3.843 18 2.493 3.337 op_Mul_NoManMul_Denorm_on_vivado_latency4 175.44 464 397 1475 0 0 0 3 5.7 -3.698 13 1.348 4.352 op_Mul_NoManMul_Denorm_on_vivado_latency5 208.55 445 464 1459 0 0 0 4 4.795 -2.924 13 1.824 2.971 op_Mul_NoManMul_Denorm_on_vivado_latency6 248.76 438 479 1413 0 0 0 5 4.02 -2.181 9 1.514 2.506 op_Mul_NoManMul_Denorm_on_vivado_latency7 275.41 446 566 1401 0 0 0 6 3.631 -1.731 13 1.819 1.812 op_Mul_NoManMul_Denorm_on_vivado_latency8 264.83 516 793 1579 0 0 0 7 3.776 Inf 1 0.043 3.733 op_Mul_PartManMul_vivado_latency0 109.05 123 96 372 1 0 0 0 9.17 -7.198 24 4.816 4.354 op_Mul_PartManMul_vivado_latency1 121.36 134 164 400 1 0 0 0 8.24 Inf 18 2.191 6.049 op_Mul_PartManMul_vivado_latency2 132.59 153 260 403 1 0 0 1 7.542 Inf 17 2.029 5.513 op_Mul_PartManMul_vivado_latency3 272.41 158 314 375 1 0 0 2 3.671 -2.037 17 1.715 1.956 op_Mul_PartManMul_vivado_latency4 263.99 180 357 398 1 0 0 3 3.788 Inf 5 0.534 3.254 op_Mul_PartManMul_vivado_latency5 259.81 145 441 385 1 0 0 4 3.849 Inf 8 1.083 2.766 op_Mul_PartManMul_vivado_latency6 735.29 148 448 399 1 0 0 5 1.36 Inf 2 0.191 1.169 op_Mul_PartManMul_vivado_latency7 656.17 155 543 408 1 0 0 6 1.524 Inf 3 0.23 1.294 op_Mul_PartManMul_vivado_latency8 613.12 174 673 404 1 0 0 7 1.631 Inf 3 0.129 1.502 op_Mul_PartManMul_Denorm_on_vivado_latency0 63.654 274 96 953 1 0 0 0 15.71 -13.739 37 6.147 9.563 op_Mul_PartManMul_Denorm_on_vivado_latency1 57.571 288 163 929 1 0 0 0 17.37 Inf 28 3.201 14.169 op_Mul_PartManMul_Denorm_on_vivado_latency2 81.407 284 210 803 1 0 0 1 12.284 Inf 16 2.021 10.263 op_Mul_PartManMul_Denorm_on_vivado_latency3 166.58 285 246 876 1 0 0 2 6.003 -4.369 16 3.425 2.578 op_Mul_PartManMul_Denorm_on_vivado_latency4 168.35 297 330 858 1 0 0 3 5.94 -3.938 13 1.28 4.66 op_Mul_PartManMul_Denorm_on_vivado_latency5 258.67 291 397 853 1 0 0 4 3.866 Inf 9 1.25 2.616 op_Mul_PartManMul_Denorm_on_vivado_latency6 191.53 291 429 835 1 0 0 5 5.221 -3.207 13 3.973 1.248 op_Mul_PartManMul_Denorm_on_vivado_latency7 278.01 311 499 824 1 0 0 6 3.597 -1.625 7 0.629 2.968 op_Mul_PartManMul_Denorm_on_vivado_latency8 288.68 349 588 958 1 0 0 7 3.464 -1.492 7 0.524 2.94 op_RSqrt_vivado_latency0 15.533 1247 68 4426 0 0 0 0 64.38 -62.409 218 20.948 43.432 op_RSqrt_vivado_latency1 18.349 1188 183 4209 0 0 0 0 54.498 Inf 107 10.597 43.901 op_RSqrt_vivado_latency2 28.384 1194 324 4179 0 0 0 1 35.231 Inf 70 7.025 28.206 op_RSqrt_vivado_latency3 56.548 1126 466 3834 0 0 0 2 17.684 -15.713 74 6.821 10.863 op_RSqrt_vivado_latency4 59.51 1123 496 3898 0 0 0 3 16.804 -14.832 67 6.406 10.398 op_RSqrt_vivado_latency5 69.372 1095 553 3877 0 0 0 4 14.415 -12.411 67 6.212 8.203 op_RSqrt_vivado_latency6 84.048 1154 661 3926 0 0 0 5 11.898 -9.926 50 4.646 7.252 op_RSqrt_vivado_latency7 89.855 1263 748 4213 0 0 0 6 11.129 -9.158 39 4.093 7.036 op_RSqrt_vivado_latency8 83.57 1192 835 3997 0 0 0 7 11.966 -9.995 35 4.329 7.637 op_RSqrt_vivado_latency9 115.93 1159 916 3977 0 0 0 8 8.626 -6.622 34 3.252 5.374 op_RSqrt_vivado_latency10 130.26 1171 993 3915 0 0 0 9 7.677 -5.705 36 3.606 4.071 op_RSqrt_vivado_latency11 163.85 1211 1138 3991 0 0 0 10 6.103 -4.132 21 2.395 3.708 op_RSqrt_vivado_latency12 167.62 1213 1174 4018 0 0 0 11 5.966 -3.995 19 2.232 3.734 op_RSqrt_vivado_latency13 178.73 1186 1252 3954 0 0 0 12 5.595 -3.591 28 2.646 2.949 op_RSqrt_vivado_latency14 138.83 1140 1338 3785 0 0 0 13 7.203 -5.232 34 3.339 3.864 op_RSqrt_vivado_latency15 211.95 1146 1594 4036 0 0 0 14 4.718 -2.747 16 1.682 3.036 op_RSqrt_vivado_latency16 222.22 1200 1578 3967 0 0 0 15 4.5 -2.529 19 1.98 2.52 op_RSqrt_vivado_latency17 243.01 1178 1648 4014 0 0 0 16 4.115 Inf 1 0.043 4.072 op_RSqrt_vivado_latency18 225.78 1235 1681 4020 0 0 0 17 4.429 Inf 1 0.043 4.386 op_RSqrt_vivado_latency19 205.85 1189 1815 3993 0 0 0 18 4.858 Inf 1 0.043 4.815 op_RSqrt_vivado_latency20 228 1257 1925 3971 0 0 0 19 4.386 Inf 1 0.043 4.343 op_RSqrt_vivado_latency21 204.79 1206 2017 3946 0 0 0 20 4.883 Inf 1 0.043 4.84 op_RSqrt_vivado_latency22 250.19 1213 2135 3928 0 0 0 21 3.997 Inf 1 0.043 3.954 op_RSqrt_vivado_latency23 254.45 1165 2239 3901 0 0 0 22 3.93 -1.928 16 1.764 2.166 op_RSqrt_vivado_latency24 242.48 1170 2353 3879 0 0 0 23 4.124 Inf 1 0.043 4.081 op_RSqrt_vivado_latency25 224.22 1210 2487 3853 0 0 0 24 4.46 Inf 1 0.043 4.417 op_RSqrt_vivado_latency26 254.45 1232 2547 4130 0 0 0 25 3.93 -1.959 14 1.538 2.392 op_RSqrt_vivado_latency27 247.4 1243 2679 4168 0 0 0 26 4.042 Inf 1 0.043 3.999 op_RSqrt_vivado_latency28 259.47 1233 2791 4184 0 0 0 27 3.854 -1.882 19 1.918 1.936 op_RSqrt_vivado_latency29 256.87 1296 2913 4204 0 0 0 28 3.893 -1.921 16 1.831 2.062 op_RSqrt_vivado_latency30 149.86 1313 3023 4221 0 0 0 29 6.673 Inf 1 0.043 6.63 op_RSqrt_Denorm_on_vivado_latency0 16.817 1218 64 4233 0 0 0 0 59.464 -57.468 225 20.07 39.394 op_RSqrt_Denorm_on_vivado_latency1 19.525 1173 181 4232 0 0 0 0 51.217 Inf 114 10.518 40.699 op_RSqrt_Denorm_on_vivado_latency2 27.615 1212 323 4298 0 0 0 1 36.212 Inf 83 8.309 27.903 op_RSqrt_Denorm_on_vivado_latency3 53.813 1178 466 4024 0 0 0 2 18.583 Inf 47 4.461 14.122 op_RSqrt_Denorm_on_vivado_latency4 59.067 1135 496 4030 0 0 0 3 16.93 -14.958 70 6.441 10.489 op_RSqrt_Denorm_on_vivado_latency5 70.512 1149 507 4006 0 0 0 4 14.182 -12.21 62 5.715 8.467 op_RSqrt_Denorm_on_vivado_latency6 75.7 1163 661 4038 0 0 0 5 13.21 -11.238 35 3.89 9.32 op_RSqrt_Denorm_on_vivado_latency7 89.63 1168 748 4068 0 0 0 6 11.157 -9.185 32 3.676 7.481 op_RSqrt_Denorm_on_vivado_latency8 82.325 1191 813 4082 0 0 0 7 12.147 -10.177 43 4.779 7.368 op_RSqrt_Denorm_on_vivado_latency9 123.21 1250 916 4096 0 0 0 8 8.116 -6.144 31 3.05 5.066 op_RSqrt_Denorm_on_vivado_latency10 121.02 1199 993 4027 0 0 0 9 8.263 -6.292 27 3.039 5.224 op_RSqrt_Denorm_on_vivado_latency11 153.14 1117 1138 3886 0 0 0 10 6.53 -4.558 21 2.737 3.793 op_RSqrt_Denorm_on_vivado_latency12 150.85 1248 1174 4131 0 0 0 11 6.629 -4.658 25 2.549 4.08 op_RSqrt_Denorm_on_vivado_latency13 178.54 1193 1252 4028 0 0 0 12 5.601 -3.629 28 2.649 2.952 op_RSqrt_Denorm_on_vivado_latency14 136.56 1144 1338 3868 0 0 0 13 7.323 -5.322 27 3.082 4.241 op_RSqrt_Denorm_on_vivado_latency15 224.16 1239 1572 4087 0 0 0 14 4.461 -2.49 17 1.85 2.611 op_RSqrt_Denorm_on_vivado_latency16 208.03 1189 1578 4044 0 0 0 15 4.807 -2.804 16 1.816 2.991 op_RSqrt_Denorm_on_vivado_latency17 235.79 1214 1648 4102 0 0 0 16 4.241 -2.316 10 0.938 3.303 op_RSqrt_Denorm_on_vivado_latency18 242.48 1234 1682 4066 0 0 0 17 4.124 -2.154 18 1.831 2.293 op_RSqrt_Denorm_on_vivado_latency19 214.82 1266 1816 4041 0 0 0 18 4.655 Inf 1 0.043 4.612 op_RSqrt_Denorm_on_vivado_latency20 246.06 1168 1926 4015 0 0 0 19 4.064 -2.092 18 1.893 2.171 op_RSqrt_Denorm_on_vivado_latency21 215.42 1236 2018 3992 0 0 0 20 4.642 Inf 1 0.043 4.599 op_RSqrt_Denorm_on_vivado_latency22 241.72 1216 2136 3977 0 0 0 21 4.137 -2.134 14 1.675 2.462 op_RSqrt_Denorm_on_vivado_latency23 246.12 1158 2240 3960 0 0 0 22 4.063 -2.061 18 1.867 2.196 op_RSqrt_Denorm_on_vivado_latency24 215.61 1179 2354 3929 0 0 0 23 4.638 -2.667 16 1.679 2.959 op_RSqrt_Denorm_on_vivado_latency25 250.63 1197 2488 3902 0 0 0 24 3.99 -2.018 15 1.701 2.289 op_RSqrt_Denorm_on_vivado_latency26 249 1269 2548 4198 0 0 0 25 4.016 -2.045 18 1.831 2.185 op_RSqrt_Denorm_on_vivado_latency27 236.29 1287 2680 4228 0 0 0 26 4.232 -2.261 14 1.7 2.532 op_RSqrt_Denorm_on_vivado_latency28 234.91 1268 2792 4242 0 0 0 27 4.257 -2.285 19 1.877 2.38 op_RSqrt_Denorm_on_vivado_latency29 253.23 1274 2914 4257 0 0 0 28 3.949 -1.978 13 1.579 2.37 op_RSqrt_Denorm_on_vivado_latency30 265.75 1303 3024 4266 0 0 0 29 3.763 Inf 1 0.043 3.72 op_Relop_vivado_latency0 575.37 27 69 39 0 0 0 0 1.738 0.233 4 0.395 1.343 op_Relop_vivado_latency1 342.94 29 132 36 0 0 0 0 2.916 Inf 4 0.459 2.457 op_Relop_vivado_latency2 633.71 31 134 41 0 0 0 1 1.578 0.393 3 0.388 1.19 op_Relop_vivado_latency3 770.42 33 142 37 0 0 0 2 1.298 Inf 1 0.266 1.032 op_Round_vivado_latency0 313.19 61 64 186 0 0 0 0 3.193 -1.223 12 1.633 1.56 op_Round_vivado_latency1 337.27 71 127 207 0 0 0 0 2.965 Inf 4 0.395 2.57 op_Round_vivado_latency2 163.77 72 116 226 0 0 0 1 6.106 Inf 12 1.65 4.456 op_Round_vivado_latency3 371.89 67 160 179 0 0 0 2 2.689 -0.717 12 1.216 1.473 op_Round_vivado_latency4 391.7 88 246 216 0 0 0 3 2.553 -0.583 11 1.206 1.347 op_Round_vivado_latency5 577.03 91 311 219 0 0 0 4 1.733 0.238 8 0.96 0.773 op_Round_vivado_latency6 577.03 91 311 219 0 0 0 4 1.733 0.238 8 0.96 0.773 op_Single2Fixed_vivado_latency0 310.46 101 64 339 0 0 0 0 3.221 -1.25 11 1.162 2.059 op_Single2Fixed_vivado_latency1 153.26 152 69 495 0 0 0 0 6.525 Inf 13 1.376 5.149 op_Single2Fixed_vivado_latency2 336.02 83 99 248 0 0 0 1 2.976 Inf 10 1.133 1.843 op_Single2Fixed_vivado_latency3 413.05 85 156 277 0 0 0 2 2.421 -0.449 5 0.654 1.767 op_Single2Fixed_vivado_latency4 367.38 96 188 279 0 0 0 3 2.722 -0.751 6 0.671 2.051 op_Single2Fixed_vivado_latency5 400.48 102 221 311 0 0 0 4 2.497 -0.526 6 0.667 1.83 op_Single2Fixed_vivado_latency6 384.91 111 210 346 0 0 0 5 2.598 -0.627 6 0.628 1.97 op_Sqrt_vivado_latency0 31.903 222 65 676 0 0 0 0 31.345 -29.374 112 12.873 18.472 op_Sqrt_vivado_latency1 55.353 235 145 703 0 0 0 1 18.066 -16.063 74 8.443 9.623 op_Sqrt_vivado_latency2 79.917 255 222 730 0 0 0 2 12.513 -10.509 59 6.235 6.278 op_Sqrt_vivado_latency3 112.17 247 299 693 0 0 0 3 8.915 -6.913 46 4.761 4.154 op_Sqrt_vivado_latency4 90.506 282 334 738 0 0 0 4 11.049 -9.079 41 4.957 6.092 op_Sqrt_vivado_latency5 105.43 234 300 657 0 0 0 5 9.485 -7.513 45 4.81 4.675 op_Sqrt_vivado_latency6 129.52 242 426 657 0 0 0 6 7.721 -5.717 36 4.075 3.646 op_Sqrt_vivado_latency7 147.97 260 431 722 0 0 0 7 6.758 -4.786 19 3.149 3.609 op_Sqrt_vivado_latency8 186.05 254 391 653 0 0 0 8 5.375 -3.404 23 2.863 2.512 op_Sqrt_vivado_latency9 190.01 270 477 718 0 0 0 9 5.263 -3.292 23 2.89 2.373 op_Sqrt_vivado_latency10 193.61 265 495 725 0 0 0 10 5.165 -3.194 22 2.832 2.333 op_Sqrt_vivado_latency11 211.64 271 541 825 0 0 0 11 4.725 -2.721 21 2.5 2.225 op_Sqrt_vivado_latency12 223.36 294 574 830 0 0 0 12 4.477 -2.475 19 2.403 2.074 op_Sqrt_vivado_latency13 247.71 256 539 694 0 0 0 13 4.037 -2.065 20 2.447 1.59 op_Sqrt_vivado_latency14 308.26 270 637 750 0 0 0 14 3.244 -1.272 9 1.669 1.575 op_Sqrt_vivado_latency15 311.82 273 679 739 0 0 0 15 3.207 -1.237 9 1.692 1.515 op_Sqrt_vivado_latency16 280.43 290 695 762 0 0 0 16 3.566 -1.564 19 1.976 1.59 op_Sqrt_vivado_latency17 313.87 270 741 753 0 0 0 17 3.186 -1.182 13 1.66 1.526 op_Sqrt_vivado_latency18 316.26 283 773 769 0 0 0 18 3.162 -1.191 8 1.637 1.525 op_Sqrt_vivado_latency19 327.76 291 783 805 0 0 0 19 3.051 -1.08 17 1.837 1.214 op_Sqrt_vivado_latency20 335.68 280 816 799 0 0 0 20 2.979 -1.008 17 1.88 1.099 op_Sqrt_vivado_latency21 331.56 297 833 809 0 0 0 21 3.016 -1.044 15 1.794 1.222 op_Sqrt_vivado_latency22 339.33 309 893 839 0 0 0 22 2.947 -0.976 15 1.794 1.153 op_Sqrt_vivado_latency23 372.72 296 937 862 0 0 0 23 2.683 -0.713 12 1.628 1.055 op_Sqrt_vivado_latency24 341.18 314 932 855 0 0 0 24 2.931 -0.96 13 1.689 1.242 op_Sqrt_vivado_latency25 335.35 312 953 868 0 0 0 25 2.982 -1.011 14 1.749 1.233 op_Sqrt_vivado_latency26 355.49 312 988 884 0 0 0 26 2.813 -0.841 13 1.696 1.117 op_Sqrt_vivado_latency27 362.71 314 1014 897 0 0 0 27 2.757 -0.786 12 1.636 1.121 op_Sqrt_vivado_latency28 421.23 326 1050 913 0 0 0 28 2.374 -0.402 11 1.117 1.257 op_Sqrt_Denorm_on_vivado_latency0 31.3 262 65 759 0 0 0 0 31.949 -29.978 121 13.263 18.687 op_Sqrt_Denorm_on_vivado_latency1 58.976 250 123 743 0 0 0 1 16.956 -14.952 73 8.523 8.433 op_Sqrt_Denorm_on_vivado_latency2 84.104 245 178 715 0 0 0 2 11.89 -9.887 62 6.578 5.312 op_Sqrt_Denorm_on_vivado_latency3 112.56 248 233 726 0 0 0 3 8.884 -6.913 36 4.429 4.455 op_Sqrt_Denorm_on_vivado_latency4 99.8 262 267 672 0 0 0 4 10.02 -8.049 42 5.177 4.843 op_Sqrt_Denorm_on_vivado_latency5 100.5 258 304 738 0 0 0 5 9.95 -7.978 42 4.748 5.202 op_Sqrt_Denorm_on_vivado_latency6 130.16 291 425 739 0 0 0 6 7.683 -5.681 20 3.073 4.61 op_Sqrt_Denorm_on_vivado_latency7 143.14 268 430 807 0 0 0 7 6.986 -4.982 26 3.299 3.687 op_Sqrt_Denorm_on_vivado_latency8 184.4 281 391 777 0 0 0 8 5.423 -3.419 12 0.965 4.458 op_Sqrt_Denorm_on_vivado_latency9 188.79 304 482 806 0 0 0 9 5.297 -3.325 24 2.776 2.521 op_Sqrt_Denorm_on_vivado_latency10 187.41 286 509 782 0 0 0 10 5.336 -3.365 26 3.025 2.311 op_Sqrt_Denorm_on_vivado_latency11 236.52 305 552 838 0 0 0 11 4.228 -2.257 20 2.44 1.788 op_Sqrt_Denorm_on_vivado_latency12 223.51 310 584 905 0 0 0 12 4.474 -2.503 22 2.509 1.965 op_Sqrt_Denorm_on_vivado_latency13 214.87 297 539 815 0 0 0 13 4.654 -2.682 20 2.441 2.213 op_Sqrt_Denorm_on_vivado_latency14 316.56 311 654 808 0 0 0 14 3.159 -1.187 8 1.639 1.52 op_Sqrt_Denorm_on_vivado_latency15 300.48 305 696 802 0 0 0 15 3.328 -1.325 9 1.702 1.626 op_Sqrt_Denorm_on_vivado_latency16 274.73 275 695 840 0 0 0 16 3.64 -1.668 19 1.937 1.703 op_Sqrt_Denorm_on_vivado_latency17 320.1 314 758 816 0 0 0 17 3.124 -1.152 9 1.695 1.429 op_Sqrt_Denorm_on_vivado_latency18 306.18 302 790 836 0 0 0 18 3.266 -1.294 8 1.6 1.666 op_Sqrt_Denorm_on_vivado_latency19 291.89 314 800 846 0 0 0 19 3.426 -1.454 16 1.765 1.661 op_Sqrt_Denorm_on_vivado_latency20 276.7 325 833 880 0 0 0 20 3.614 -1.642 17 1.832 1.782 op_Sqrt_Denorm_on_vivado_latency21 272.33 331 854 888 0 0 0 21 3.672 -1.701 19 1.963 1.709 op_Sqrt_Denorm_on_vivado_latency22 341.41 320 910 903 0 0 0 22 2.929 -0.957 15 1.802 1.127 op_Sqrt_Denorm_on_vivado_latency23 363.64 338 958 923 0 0 0 23 2.75 -0.778 13 1.689 1.061 op_Sqrt_Denorm_on_vivado_latency24 354.86 333 951 926 0 0 0 24 2.818 -0.847 13 1.689 1.129 op_Sqrt_Denorm_on_vivado_latency25 339.1 325 974 929 0 0 0 25 2.949 -0.979 15 1.796 1.153 op_Sqrt_Denorm_on_vivado_latency26 343.29 325 1009 953 0 0 0 26 2.913 -0.941 13 1.689 1.224 op_Sqrt_Denorm_on_vivado_latency27 366.3 333 1035 963 0 0 0 27 2.73 -0.759 12 1.672 1.058 op_Sqrt_Denorm_on_vivado_latency28 450.86 342 1071 978 0 0 0 28 2.218 -0.393 5 0.696 1.522 op_ceiling_vivado_latency0 293.43 89 64 304 0 0 0 0 3.408 -1.437 14 1.394 2.014 op_ceiling_vivado_latency1 94.742 137 68 477 0 0 0 0 10.555 Inf 18 1.743 8.812 op_ceiling_vivado_latency2 301.93 109 99 355 0 0 0 1 3.312 Inf 10 1.134 2.178 op_ceiling_vivado_latency3 353.36 110 157 363 0 0 0 2 2.83 -0.859 6 0.731 2.099 op_ceiling_vivado_latency4 364.56 115 189 362 0 0 0 3 2.743 -0.771 5 0.621 2.122 op_ceiling_vivado_latency5 360.23 121 222 378 0 0 0 4 2.776 -0.804 6 0.628 2.148 op_ceiling_vivado_latency6 364.56 129 211 403 0 0 0 5 2.743 -0.719 6 0.704 2.039 op_convergent_vivado_latency0 293.51 106 64 337 0 0 0 0 3.407 -1.436 13 1.398 2.009 op_convergent_vivado_latency1 130.58 145 69 495 0 0 0 0 7.658 Inf 11 1.362 6.296 op_convergent_vivado_latency2 333 89 99 286 0 0 0 1 3.003 Inf 9 1.031 1.972 op_convergent_vivado_latency3 408.33 85 156 279 0 0 0 2 2.449 -0.447 6 0.628 1.821 op_convergent_vivado_latency4 395.73 91 188 278 0 0 0 3 2.527 -0.555 6 0.628 1.899 op_convergent_vivado_latency5 401.77 102 221 310 0 0 0 4 2.489 -0.517 6 0.664 1.825 op_convergent_vivado_latency6 402.9 107 210 346 0 0 0 5 2.482 -0.51 6 0.628 1.854 op_floor_vivado_latency0 293.51 106 64 337 0 0 0 0 3.407 -1.436 13 1.398 2.009 op_floor_vivado_latency1 130.58 145 69 495 0 0 0 0 7.658 Inf 11 1.362 6.296 op_floor_vivado_latency2 333 89 99 286 0 0 0 1 3.003 Inf 9 1.031 1.972 op_floor_vivado_latency3 408.33 85 156 279 0 0 0 2 2.449 -0.447 6 0.628 1.821 op_floor_vivado_latency4 395.73 91 188 278 0 0 0 3 2.527 -0.555 6 0.628 1.899 op_floor_vivado_latency5 401.77 102 221 310 0 0 0 4 2.489 -0.517 6 0.664 1.825 op_floor_vivado_latency6 402.9 107 210 346 0 0 0 5 2.482 -0.51 6 0.628 1.854 op_nearest_vivado_latency0 293.51 106 64 337 0 0 0 0 3.407 -1.436 13 1.398 2.009 op_nearest_vivado_latency1 130.58 145 69 495 0 0 0 0 7.658 Inf 11 1.362 6.296 op_nearest_vivado_latency2 333 89 99 286 0 0 0 1 3.003 Inf 9 1.031 1.972 op_nearest_vivado_latency3 408.33 85 156 279 0 0 0 2 2.449 -0.447 6 0.628 1.821 op_nearest_vivado_latency4 395.73 91 188 278 0 0 0 3 2.527 -0.555 6 0.628 1.899 op_nearest_vivado_latency5 401.77 102 221 310 0 0 0 4 2.489 -0.517 6 0.664 1.825 op_nearest_vivado_latency6 402.9 107 210 346 0 0 0 5 2.482 -0.51 6 0.628 1.854 op_round_vivado_latency0 293.51 106 64 337 0 0 0 0 3.407 -1.436 13 1.398 2.009 op_round_vivado_latency1 130.58 145 69 495 0 0 0 0 7.658 Inf 11 1.362 6.296 op_round_vivado_latency2 333 89 99 286 0 0 0 1 3.003 Inf 9 1.031 1.972 op_round_vivado_latency3 408.33 85 156 279 0 0 0 2 2.449 -0.447 6 0.628 1.821 op_round_vivado_latency4 395.73 91 188 278 0 0 0 3 2.527 -0.555 6 0.628 1.899 op_round_vivado_latency5 401.77 102 221 310 0 0 0 4 2.489 -0.517 6 0.664 1.825 op_round_vivado_latency6 402.9 107 210 346 0 0 0 5 2.482 -0.51 6 0.628 1.854 op_simplest_vivado_latency0 293.51 106 64 337 0 0 0 0 3.407 -1.436 13 1.398 2.009 op_simplest_vivado_latency1 130.58 145 69 495 0 0 0 0 7.658 Inf 11 1.362 6.296 op_simplest_vivado_latency2 333 89 99 286 0 0 0 1 3.003 Inf 9 1.031 1.972 op_simplest_vivado_latency3 408.33 85 156 279 0 0 0 2 2.449 -0.447 6 0.628 1.821 op_simplest_vivado_latency4 395.73 91 188 278 0 0 0 3 2.527 -0.555 6 0.628 1.899 op_simplest_vivado_latency5 401.77 102 221 310 0 0 0 4 2.489 -0.517 6 0.664 1.825 op_simplest_vivado_latency6 402.9 107 210 346 0 0 0 5 2.482 -0.51 6 0.628 1.854 op_zero_vivado_latency0 293.51 106 64 337 0 0 0 0 3.407 -1.436 13 1.398 2.009 op_zero_vivado_latency1 130.58 145 69 495 0 0 0 0 7.658 Inf 11 1.362 6.296 op_zero_vivado_latency2 333 89 99 286 0 0 0 1 3.003 Inf 9 1.031 1.972 op_zero_vivado_latency3 408.33 85 156 279 0 0 0 2 2.449 -0.447 6 0.628 1.821 op_zero_vivado_latency4 395.73 91 188 278 0 0 0 3 2.527 -0.555 6 0.628 1.899 op_zero_vivado_latency5 401.77 102 221 310 0 0 0 4 2.489 -0.517 6 0.664 1.825 op_zero_vivado_latency6 402.9 107 210 346 0 0 0 5 2.482 -0.51 6 0.628 1.854
Generate Synthesis Results
To generate synthesis results for other Simulink models or different settings, you can pass input arguments to the runBenchmarkNFPSingle
function. Specify name-value arguments, where name
is the argument name and value
is the corresponding value.
ModelName
- Simulink model name, specified as a character vector. The default value ishdl_nfp_single_ops_benchmark
. The name of the subsystems in a model must start withop_
.
TargetFrequency
- Target frequency in MHz. The default value is 500 MHz.
HardwareTool
- Hardware applications for generating results, specified as a cell array of character vectors. The default value is {|'Vivado','Quartus'|}.
LatencyStrategy
- Latency strategy, specified as a cell array of character vectors. The default value is {'Min','Max','Zero','Custom'}.
VivadoHardwareDetails
orQuartusHardwareDetails
- Hardware details, specified as a structure containing these five fields:
Tool
- Synthesis tool name, specified as character vector.
ChipFamily
- Chip family, specified as character vector.
DeviceName
- Device name, specified as character vector.
PackageName
- Package name, specified as character vector.
SpeedValue
- Hardware speed, specified as character vector.
For example, set the hardware details for Xilinx Vivado and Altera Quartus II.
vivado_hardware_details.Tool = 'Xilinx Vivado'; vivado_hardware_details.ChipFamily = 'Virtex7'; vivado_hardware_details.DeviceName = 'xc7v2000t'; vivado_hardware_details.PackageName = 'fhg1761'; vivado_hardware_details.SpeedValue = '-2'; vivado_hardware_details =
struct with fields:
Tool: 'Xilinx Vivado' ChipFamily: 'Virtex7' DeviceName: 'xc7v2000t' PackageName: 'fhg1761' SpeedValue: '-2'
quartus_hardware_details.Tool = 'Altera QUARTUS II'; quartus_hardware_details.ChipFamily = 'Stratix V'; quartus_hardware_details.DeviceName = '5SGSMD4E1H29C1'; quartus_hardware_details.PackageName = ''; quartus_hardware_details.SpeedValue = ''; quartus_hardware_details =
struct with fields:
Tool: 'Altera QUARTUS II' ChipFamily: 'Stratix V' DeviceName: '5SGSMD4E1H29C1' PackageName: '' SpeedValue: ''
Call the runNFPBenchmarkResults
function for the specified hardware.
runNFPBenchmarkResults = runBenchmarkNFPSingle('ModelName','myModel',... 'TargetFrequency',500,... 'VivadoHardwareDetails', vivado_hardware_details,... 'QuartusHardwareDetails', quartus_hardware_details,... 'HardwareTool',{'Vivado','Quartus'},... 'LatencyStrategy',{'Min','Max','Zero','Custom'});
Customize Synthesis Results
Generating synthesis benchmarks with the hdl_nfp_single_ops_benchmark
model takes several days to finish benchmarking. To generate benchmarks for only a subset of the operators, make a copy of the model and delete any DUTs for which you do not require data.
To generate benchmark synthesis results with your own model using the runBenchmarkNFPSingle
function, ensure that:
Each DUT or subsystem name starts with
op_
.For custom latency benchmarking, each DUT name contains characters required to get the list of operators that support custom latency. Please see
purgeDutList
function inrunBenchmarkNFPSingle_Vivado
andrunBenchmarkNFPSingle_Quartus
. To view the list of blocks that supports custom latency, see Latency Values of Floating-Point Operators.