Main Content

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 information

  • MaxLatency - Table of synthesis results using the MAX latency strategy

  • MinLatency - Table of synthesis results using the MIN latency strategy

  • ZeroLatency - Table of synthesis results using the ZERO latency strategy

  • TargetFrequency - Target frequency in MHz

  • CustomLatency - 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 is hdl_nfp_single_ops_benchmark. The name of the subsystems in a model must start with op_.

  • 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 or QuartusHardwareDetails - 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 in runBenchmarkNFPSingle_Vivado and runBenchmarkNFPSingle_Quartus. To view the list of blocks that supports custom latency, see Latency Values of Floating-Point Operators.

Related Links