# What system resources are required to support a design including the NDI FPGA Codecs?

To properly implement the FPGA codecs in the NDI Advanced SDK requires:&#x20;

* ARM (or x86) CPU running Linux for the NDI software libraries&#x20;
* Shared memory between the CPU and FPGA for communicating the compressed NDI data
* Register access to the FPGA from the CPU&#x20;
* Frame buffer memory for the FPGA to store uncompressed video data (does not need to be visible to the CPU)

For these reasons the examples provided all target SoC+FPGA parts from Xilinx and Altera.  Using an SoC+FPGA part is not mandatory, but anything else will require additional development effort and similar system performance (eg: a PCIe link to the FPGA could work well for transferring NDI compressed data and register I/O).&#x20;

For more detailed information see [FPGA Projects](https://docs.ndi.video/all/developing-with-ndi/advanced-sdk/ndi-advanced-sdk-fpga-example-designs-old/ndi-fpga-reference-design/fpga-projects)
