FPGA-based Modular Programmable Logic Controller

This student project shows how to create a processor on FPGA for programable logic controller (PLC) and connect a Human-Machine Interface (HMI) to the FPGA-based PLC system. The PLC system is powered by the Digilent CMOD A7, a breadboardable DIP Xilinx Artix-7 FPGA module. Cmod A7 also includes a USB-JTAG programming circuit, USB-UART bridge, clock source, Pmod host connector, SRAM, Quad-SPI Flash, and basic I/O devices with 44 Digital FPGA I/O signals. The student also used Raspberry Pi to control the touch display.

Cmod A7 FPGA Module

The PLC system design is divided into two parts: Processor on Cmod A7 for PLC and the Raspberry Pi for the HMI . Cmod A7 and Raspberry Pi is connected through SPI. The SPI protocol is also  used for data exchange between the PLC and the HMI. The student uses Verilog HDL and assembly to build and compile the processor on Cmod A7 and writes the Java apps so that Raspberry Pi can control the HMI panel.

 

The modularity let users add any peripheral that has the Advanced Microcontroller Bus Architecture (AMBA 3)  Advanced Peripheral Bus (APB) interface to the system.  You can refer to the architectural design and algorithmic flow at the left.

The project details and documentation are available at Digilent Project Page.

You can purchase Digilent CMOD A7 on Elfa Distrelec.

Project video demonstration