# 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](/all/developing-with-ndi/advanced-sdk/ndi-advanced-sdk-fpga-example-designs-old/ndi-fpga-reference-design/fpga-projects.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ndi.video/all/faq/sdk/what-system-resources-are-required-to-support-a-design-including-the-ndi-fpga-codecs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
