Thank you for contacting us. We’ve investigated in the community what other users have used as a communication interface between the Joule and an FPGA. As you stated, PCIe is one option, as can be seen here: https://communities.intel.com/message/448129#448129 .This thread has lots of information, including physical connections as well as software considerations.
Another interesting option is using SPI. In this case (https://communities.intel.com/message/467620#467620 ), the Joule was supposed to be used as the master and the FPGA as a slave. It’s stated that “The Joule SPI interfaces can be used as general communication interfaces to devices other than the ones that provide an initial boot code.”
You can check the MRAA examples here: https://github.com/intel-iot-devkit/mraa/tree/master/examples to get an idea what can be done with the Joule’s SPI interface.
You should also check the Joule’s datasheet http://www.intel.com/content/www/us/en/support/boards-and-kits/intel-joule-compute-modules/000022327.html for a description and information of the interfaces available.
Let us know if you find this useful.
I understand the PCIe and SPI. PCIe is complex and SPI is not fast enough. I wish there was a SRAM type interface. Something like 16 bit synchronous or asynchronous interface where we can push large amount of data in and out. I assume this is not the case, based on the responses. Could you please confirm such a basic interface is not available?
The interfaces on the Joule are the following:
• HDMI* 1.4b output at 1080p
• MIPI* CSI and DSI interface
• Up to 48 GPIO (including 4 PWMs)
• Up to 2 USB 3.0 interfaces plus
1 USB 2.0 with OTG support
• Up to 4 independent UARTs
• I2C, I2S, and SPI interfaces
Based on this, it seems the Joule doesn’t have an interface with the requirements you need.
Please let us know if this answers your questions.
We’ll be waiting for your response.