SPI and UART in FPGA

Serial Peripheral Interface (SPI) and Universal Asynchronous Receiver-Transmitter (UART) are two popular communication protocols for exchanging data between devices. SPI features synchronous communication, full-duplex mode, and master-slave relationship while UART offers asynchronous, half- or full-duplex, and point-to-point architecture. SPI is useful for its speed and for multiple slave applications, while UART is simpler. These two exercises allowed me to program Field-Programmable Gate Arrays (FPGA) devices using Verilog Hardware Description Language (VHDL) in Vivado. FPGAs, unlike the usual processors, allow us to program their logic circuits and execute codes in parallel via VHDL.

To physically test the UART program, it was uploaded to the Digilent ARTY ARTIX-7 35T FPGA board, that was then connected to a laptop with installed PuTTY, an emulator for various communication protocols. Typing a character on the PuTTY serial terminal will send an ASCII packet byte to the FPGA board via UART. The uart_loopback module then transmits the same data back to the terminal, displaying the corresponding ASCII code.

Attachments

Back to Top