MLE NPAP Resource Estimates for FPGA

Resource estimates are directly tied to the specific set of compile-time parameters: Therefore, a typical FPGA implementation which integrates MLE NPAP can range from as low as 10K LUTs to 1 million LUTs (for dozens of TCP cores).
MLE NPAP for AMD Versal AI Edge
The following table shows resources for AMD/Xilinx Versal AI Edge Series fabric (xcve2302-sfva784-1LP-e-S-es1) compiled with AMD/Xilinx Vivado/Vitis 2024.1 – instantiating the following design features:
- Ethernet block
- IPv4 block
- 1 UDP block
- 4 instances of TCP blocks
- Diagnostics blocks
| Instance Hierarchy | LUTs | LUTRAMs | SRLs | FFs | RAMB36 | RAMB18 | URAM | DSP | |
|---|---|---|---|---|---|---|---|---|---|
| Total | Logic | Blocks | |||||||
| npap_tcp_udp_wrapper_u0 | 70944 | 69010 | 1914 | 20 | 62052 | 25 | 1 | 70 | 4 |
| └─npap_tcp_udp_top_u0 | 70944 | 69010 | 1914 | 20 | 62052 | 25 | 1 | 70 | 4 |
| ├─axis_register_udp_u0 | 228 | 228 | 0 | 0 | 430 | 0 | 0 | 0 | 0 |
| ├─axis_register_udp_u1 | 292 | 292 | 0 | 0 | 431 | 0 | 0 | 0 | 0 |
| ├─gen_hhi_to_axis_adapter | 1214 | 1214 | 0 | 0 | 1978 | 0 | 0 | 0 | 0 |
| ├─npap_configuration_block_u0 | 103 | 103 | 0 | 0 | 339 | 0 | 0 | 0 | 0 |
| ├─npap_priority_manager_configurati | 29 | 29 | 0 | 0 | 43 | 0 | 0 | 0 | 0 |
| ├─npap_visibility_block | 9500 | 9480 | 0 | 20 | 13324 | 0 | 0 | 0 | 0 |
| ├─npap_diag_capture_u0 | 8297 | 8277 | 0 | 20 | 12511 | 0 | 0 | 0 | 0 |
| ├─(npap_diag_capture_u0) | 46 | 26 | 0 | 20 | 694 | 0 | 0 | 0 | 0 |
| ├─npap_diag_control_eth | 157 | 157 | 0 | 0 | 278 | 0 | 0 | 0 | 0 |
| ├─npap_diag_control_ipv4 | 157 | 157 | 0 | 0 | 278 | 0 | 0 | 0 | 0 |
| ├─npap_diag_control_tcp | 157 | 157 | 0 | 0 | 203 | 0 | 0 | 0 | 0 |
| ├─npap_diag_control_udp | 157 | 157 | 0 | 0 | 278 | 0 | 0 | 0 | 0 |
| ├─npap_diag_counter_tcp_loop[0] | 1803 | 1803 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| ├─npap_diag_counter_tcp_loop[1] | 1961 | 1961 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| ├─npap_diag_counter_tcp_loop[2] | 1936 | 1936 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| └─npap_diag_counter_tcp_loop[3] | 1923 | 1923 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| └─npap_diag_register_u0 | 1204 | 1204 | 0 | 0 | 813 | 0 | 0 | 0 | 0 |
| ├─(npap_diag_register_u0) | 809 | 809 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ├─npap_diag_register_ethernet_u | 1 | 1 | 0 | 0 | 190 | 0 | 0 | 0 | 0 |
| ├─npap_diag_register_ipv4_u0 | 1 | 1 | 0 | 0 | 189 | 0 | 0 | 0 | 0 |
| ├─npap_diag_register_tcp_u0 | 393 | 393 | 0 | 0 | 245 | 0 | 0 | 0 | 0 |
| └─npap_diag_register_udp_u0 | 1 | 1 | 0 | 0 | 189 | 0 | 0 | 0 | 0 |
| └─wrapper_ll_ip_tcp_u0 | 59583 | 57669 | 1914 | 0 | 45507 | 25 | 1 | 70 | 4 |
| ├─(wrapper_ll_ip_tcp_u0) | 633 | 633 | 0 | 0 | 765 | 0 | 0 | 0 | 0 |
| ├─g0.i_tcpTxMux | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 |
| ├─gen_WithUdp.i_udp | 4864 | 4864 | 0 | 0 | 4265 | 5 | 0 | 8 | 0 |
| ├─gen_tcpConnections[0].i_tcp | 12007 | 11573 | 434 | 0 | 8830 | 4 | 0 | 17 | 1 |
| ├─gen_tcpConnections[1].i_tcp | 11174 | 10764 | 410 | 0 | 8365 | 1 | 0 | 11 | 1 |
| ├─gen_tcpConnections[2].i_tcp | 12007 | 11573 | 436 | 0 | 8846 | 4 | 0 | 17 | 1 |
| ├─gen_tcpConnections[3].i_tcp | 12011 | 11575 | 436 | 0 | 8931 | 4 | 0 | 17 | 1 |
| ├─iBusScheduler8 | 531 | 531 | 0 | 0 | 36 | 0 | 0 | 0 | 0 |
| ├─i_internetLayer | 3383 | 3265 | 118 | 0 | 3108 | 0 | 0 | 0 | 0 |
| ├─i_networkLayer | 2947 | 2867 | 80 | 0 | 2404 | 7 | 1 | 0 | 0 |
| └─i_resetStretchStack | 54 | 54 | 0 | 0 | 45 | 0 | 0 | 0 | 0 |
MLE NPAP for AMD/Xilinx Ultrascale+ Series
The following table shows resources for AMD/Xilinx Zynq Ultrascale+ MPSoC ZU9EG compiled with AMD/Xilinx Vivado 2022.2 – instantiating the following design features:
- 10 GigE Low-Latency MAC from Fraunhofer HHI
- Ethernet block
- IPv4 block
- UDP block
- 10 instances of TCP blocks (2 used for netperf)
- TCP and UDP Diagnostics blocks
| Instance Hierarchy | LUTs | LUTRAMs | SRLs | FFs | RAMB36 | RAMB18 | URAM | DSP | |
|---|---|---|---|---|---|---|---|---|---|
| Total | Logic | Blocks | |||||||
| amd_zcu102_source_full_10g_sync | 155347 | 150420 | 4824 | 103 | 179654 | 707 | 8 | 0 | 30 |
| ├─mac_10_gbe_wrapper_u0 | 1789 | 1779 | 10 | 0 | 1016 | 0 | 0 | 0 | 0 |
| ├─mac10gbe_top_u0 | 1789 | 1779 | 10 | 0 | 1016 | 0 | 0 | 0 | 0 |
| └─mac10Gbe_struct_u0 | 1789 | 1779 | 10 | 0 | 1016 | 0 | 0 | 0 | 0 |
| ├─mac_interface_adapter_generic_64_ | 158 | 158 | 0 | 0 | 370 | 0 | 0 | 0 | 0 |
| ├─axis_dwidth_converter_128_to_64 | 119 | 119 | 0 | 0 | 222 | 0 | 0 | 0 | 0 |
| └─axis_dwidth_converter_64_to_128 | 39 | 39 | 0 | 0 | 148 | 0 | 0 | 0 | 0 |
| ├─reset_stretch_reset_rx_mac | 5 | 5 | 0 | 0 | 17 | 0 | 0 | 0 | 0 |
| ├─reset_stretch_reset_tx_mac | 5 | 5 | 0 | 0 | 17 | 0 | 0 | 0 | 0 |
| ├─reset_sync_reset_system_to_reset_ | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 |
| └─reset_sync_reset_system_to_reset_ | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 |
| ├─npap_tcp_udp_wrapper_u0 | 109672 | 105040 | 4530 | 102 | 130728 | 707 | 6 | 0 | 30 |
| └─npap_tcp_udp_top_u0 | 109672 | 105040 | 4530 | 102 | 130728 | 707 | 6 | 0 | 30 |
| ├─axis_register_udp_u0 | 102 | 102 | 0 | 0 | 428 | 0 | 0 | 0 | 0 |
| ├─axis_register_udp_u1 | 263 | 263 | 0 | 0 | 424 | 0 | 0 | 0 | 0 |
| ├─npap_configuration_block_u0 | 126 | 126 | 0 | 0 | 338 | 0 | 0 | 0 | 0 |
| ├─npap_priority_manager_conf_ | 51 | 51 | 0 | 0 | 52 | 0 | 0 | 0 | 0 |
| ├─npap_visibility_block | 11499 | 11445 | 0 | 54 | 31805 | 0 | 0 | 0 | 0 |
| ├─npap_diag_capture_u0 | 10539 | 10485 | 0 | 54 | 30972 | 0 | 0 | 0 | 0 |
| ├─(npap_diag_capture_u0) | 130 | 76 | 0 | 54 | 1418 | 0 | 0 | 0 | 0 |
| ├─npap_diag_control_eth | 137 | 137 | 0 | 0 | 203 | 0 | 0 | 0 | 0 |
| ├─npap_diag_control_ipv4 | 137 | 137 | 0 | 0 | 203 | 0 | 0 | 0 | 0 |
| ├─npap_diag_control_tcp | 137 | 137 | 0 | 0 | 203 | 0 | 0 | 0 | 0 |
| ├─npap_diag_control_udp | 84 | 84 | 0 | 0 | 203 | 0 | 0 | 0 | 0 |
| ├─npap_diag_counter_tcp_0 | 760 | 760 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| ├─npap_diag_counter_tcp_1 | 1016 | 1016 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| ├─npap_diag_counter_tcp_2 | 1080 | 1080 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| ├─npap_diag_counter_tcp_3 | 825 | 825 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| ├─npap_diag_counter_tcp_4 | 760 | 760 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| ├─npap_diag_counter_tcp_5 | 1080 | 1080 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| ├─npap_diag_counter_tcp_6 | 1016 | 1016 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| ├─npap_diag_counter_tcp_7 | 825 | 825 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| ├─npap_diag_counter_tcp_8 | 824 | 824 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| ├─npap_diag_counter_tcp_9 | 1465 | 1465 | 0 | 0 | 2695 | 0 | 0 | 0 | 0 |
| └─npap_diag_counter_udp | 268 | 268 | 0 | 0 | 1792 | 0 | 0 | 0 | 0 |
| └─npap_diag_register_u0 | 960 | 960 | 0 | 0 | 833 | 0 | 0 | 0 | 0 |
| ├─(npap_diag_register_u0) | 845 | 845 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| ├─npap_diag_reg_ethernet | 1 | 1 | 0 | 0 | 188 | 0 | 0 | 0 | 0 |
| ├─npap_diag_register_ipv4 | 1 | 1 | 0 | 0 | 188 | 0 | 0 | 0 | 0 |
| ├─npap_diag_register_tcp | 64 | 64 | 0 | 0 | 268 | 0 | 0 | 0 | 0 |
| └─npap_diag_register_udp | 50 | 50 | 0 | 0 | 189 | 0 | 0 | 0 | 0 |
| └─wrapper_ll_ip_tcp_u0 | 94505 | 89927 | 4530 | 48 | 92253 | 707 | 6 | 0 | 30 |
| ├─(wrapper_ll_ip_tcp_u0) | 800 | 800 | 0 | 0 | 192 | 0 | 0 | 0 | 0 |
| ├─g0.i_tcpTxMux | 0 | 0 | 0 | 0 | 4 | 0 | 0 | 0 | 0 |
| ├─gen_WithUdp.i_udp | 3620 | 3572 | 0 | 48 | 3888 | 47 | 5 | 0 | 0 |
| ├─gen_tcpConnections[0].i_t | 8314 | 7888 | 426 | 0 | 8179 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[1].i_t | 7936 | 7502 | 434 | 0 | 7785 | 41 | 0 | 0 | 3 |
| ├─gen_tcpConnections[2].i_t | 9622 | 9188 | 434 | 0 | 8403 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[3].i_t | 8341 | 7907 | 434 | 0 | 8289 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[4].i_t | 8340 | 7906 | 434 | 0 | 8290 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[5].i_t | 8327 | 7903 | 434 | 0 | 8288 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[6].i_t | 8331 | 7897 | 434 | 0 | 8289 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[7].i_t | 8333 | 7899 | 434 | 0 | 8288 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[8].i_t | 8338 | 7904 | 434 | 0 | 8304 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[9].i_t | 8337 | 7903 | 434 | 0 | 8288 | 68 | 0 | 0 | 3 |
| ├─iBusScheduler8 | 1108 | 1108 | 0 | 0 | 69 | 0 | 0 | 0 | 0 |
| ├─i_internetLayer | 2429 | 2311 | 118 | 0 | 3046 | 0 | 0 | 0 | 0 |
| ├─i_networkLayer | 1891 | 1811 | 80 | 0 | 2276 | 7 | 1 | 0 | 0 |
| └─i_resetStretchStack | 47 | 47 | 0 | 0 | 35 | 0 | 0 | 0 | 0 |
- 10 GigE Low-Latency MAC from Fraunhofer HHI
- Ethernet block
- IPv4 block
- UDP block
- 10 instances of TCP
| Instance Hierarchy | LUTs | LUTRAMs | SRLs | FFs | RAMB36 | RAMB18 | URAM | DSP | |
|---|---|---|---|---|---|---|---|---|---|
| Total | Logic | Blocks | |||||||
| amd_zcu102_source_no_diag_10g_sync | 143771 | 138898 | 4824 | 49 | 147385 | 707 | 8 | 0 | 30 |
| ├─mac_10_gbe_wrapper_u0 | 1796 | 1786 | 10 | 0 | 1016 | 0 | 0 | 0 | 0 |
| ├─mac10gbe_top_u0 | 1796 | 1786 | 10 | 0 | 1016 | 0 | 0 | 0 | 0 |
| └─mac10Gbe_struct_u0 | 1796 | 1786 | 10 | 0 | 1016 | 0 | 0 | 0 | 0 |
| ├─mac_interface_adapter_generic_64_ | 158 | 158 | 0 | 0 | 370 | 0 | 0 | 0 | 0 |
| ├─axis_dwidth_converter_128_to_64 | 119 | 119 | 0 | 0 | 222 | 0 | 0 | 0 | 0 |
| └─axis_dwidth_converter_64_to_128 | 39 | 39 | 0 | 0 | 148 | 0 | 0 | 0 | 0 |
| ├─reset_stretch_reset_rx_mac | 5 | 5 | 0 | 0 | 17 | 0 | 0 | 0 | 0 |
| ├─reset_stretch_reset_tx_mac | 5 | 5 | 0 | 0 | 17 | 0 | 0 | 0 | 0 |
| ├─reset_sync_reset_system_to_reset_ | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 |
| ├─reset_sync_reset_system_to_reset_ | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 |
| ├─npap_tcp_udp_wrapper_u0 | 98092 | 93514 | 4530 | 48 | 98506 | 707 | 6 | 0 | 30 |
| ├─npap_tcp_udp_top_u0 | 98092 | 93514 | 4530 | 48 | 98506 | 707 | 6 | 0 | 30 |
| ├─axis_register_udp_u0 | 102 | 102 | 0 | 0 | 428 | 0 | 0 | 0 | 0 |
| ├─axis_register_udp_u1 | 264 | 264 | 0 | 0 | 424 | 0 | 0 | 0 | 0 |
| ├─npap_configuration_block_u0 | 142 | 142 | 0 | 0 | 338 | 0 | 0 | 0 | 0 |
| ├─npap_priority_manager_conf_ | 47 | 47 | 0 | 0 | 52 | 0 | 0 | 0 | 0 |
| ├─npap_visibility_block | 3 | 3 | 0 | 0 | 5 | 0 | 0 | 0 | 0 |
| ├─wrapper_ll_ip_tcp_u0 | 94396 | 89818 | 4530 | 48 | 91831 | 707 | 6 | 0 | 30 |
| ├─(wrapper_ll_ip_tcp_u0) | 800 | 800 | 0 | 0 | 192 | 0 | 0 | 0 | 0 |
| ├─g0.i_tcpTxMux | 0 | 0 | 0 | 0 | 4 | 0 | 0 | 0 | 0 |
| ├─gen_WithUdp.i_udp | 3618 | 3570 | 0 | 48 | 3885 | 47 | 5 | 0 | 0 |
| ├─gen_tcpConnections[0].i_t | 8300 | 7874 | 426 | 0 | 8137 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[1].i_t | 7935 | 7501 | 434 | 0 | 7742 | 41 | 0 | 0 | 3 |
| ├─gen_tcpConnections[2].i_t | 9607 | 9173 | 434 | 0 | 8360 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[3].i_t | 8329 | 7895 | 434 | 0 | 8246 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[4].i_t | 8322 | 7888 | 434 | 0 | 8247 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[5].i_t | 8326 | 7892 | 434 | 0 | 8247 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[6].i_t | 8322 | 7888 | 434 | 0 | 8248 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[7].i_t | 8319 | 7885 | 434 | 0 | 8247 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[8].i_t | 8340 | 7906 | 434 | 0 | 8263 | 68 | 0 | 0 | 3 |
| ├─gen_tcpConnections[9].i_t | 8325 | 7891 | 434 | 0 | 8248 | 68 | 0 | 0 | 3 |
| ├─iBusScheduler8 | 1107 | 1107 | 0 | 0 | 69 | 0 | 0 | 0 | 0 |
| ├─i_internetLayer | 2423 | 2305 | 118 | 0 | 3046 | 0 | 0 | 0 | 0 |
| ├─i_networkLayer | 1888 | 1808 | 80 | 0 | 2275 | 7 | 1 | 0 | 0 |
| └─i_resetStretchStack | 47 | 47 | 0 | 0 | 35 | 0 | 0 | 0 | 0 |
To read the full content, please log in or register as an MLE Developer Zone Member.
