Math Talk

own workThe inquiry Building Math Hardware implemented a math compute device on a Field Programmable Gate Array (FPGA).  This sequel describes a protocol and implementation by which the FPGA can communicate with a microcontroller.  The vision is to generate operands on an microcontroller; the Math Hardware then performs the operations and returns the results.  The communication between the devices is the focus of this article.

The protocol that we will use is called Serial Peripheral Interface (SPI).  It is a synchronous full-duplex serial interface [1], and is commonly used to communicate with on-board peripherals such as EEPROM, FLASH memory, A/D converters, temperature sensors, or in our case a Field Programmable Gate Array (FPGA).

We assume a working knowledge of the Verilog hardware description language.  To learn more about Verilog refer a book such as “FPGA Prototyping with Verilog Examples” by Chu, do the free online class at verilog.com, or read through the slides Intro to Verilog from MIT.   Alternatively, my short introduction to the Verilog IDEs can be found at Getting Started with FPGA programming on Altera or on Xilinx.


After describing the physical connections, we look into exchanging bytes between a microcontroller and an FPGA.  The last part implements an layer that allows message passing.

  1. Hardware
  2. Bytes
  3. Messages
  4. What’s next


Coert Vonk

Coert Vonk

Independent Firmware Engineer at Los Altos, CA
Welcome to the things that I couldn’t find.This blog shares some of the notes that I took while deep diving into various fields.Many such endeavors were triggered by curious inquiries from students. Even though the notes often cover a broader area, the key goal is to help the them adopt, flourish and inspire them to invent new technology.
Coert Vonk

Latest posts by Coert Vonk (see all)

Pages: 1 2 3 4 5 6 7 8 9

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>




Protected with IP Blacklist CloudIP Blacklist Cloud