This repository contains demo projects for those who are interested in getting started with FPGA development. The EP4CE6E22C8N FPGA board is a major requirement for running and testing the projects in this repository. All the RTL projects in this repository strictly follow the Synchronous Design Methodology and are written in VHDL. The projects have been tested on Windows 10 and Ubuntu 25.04.
Source: Vendor's Page
- AM2302 DHT22 sensor: The module with a red PCB
- HC-SR04 sensor
- ILI9341 module: 2.4 inch, 240x320 TFT display with touch
- 16x2 LCD module: green or blue but without I2C interface
- HX1838 Infrared remote
- HC-05 or HC-06 Bluetooth module
- VGA monitor and cable
- PS/2 keyboard
- STM32 Blue Pill board or any MCU with UART, SPI, and USB peripherals
- CH340 USB-TTL converter
Here's a list of components that I used for additional verification of my RTL designs beyond testbenches.
- Saleae 24MHz, 8 Channel USB logic analyzer
- Zeeweii DSO3D12 oscilloscope + multimeter + signal generator (3 in 1)
- DSO150 handheld oscilloscope
- Intel Quartus (Quartus Prime 20.1)
- ModelSim - Intel FPGA Edition vsim 2020.1 (Quartus Prime 20.1)
- STM32CubeIDE (if you have an STM32 microcontroller)
- Python (v3.7 upwards)
.
├── EP4CE6_Projects
│ ├── P01_7_Segment
│ │ ├── README.md
│ │ ├── seg_display.tcl
│ │ └── src
│ ├── P02_7_Segment_LM75
│ │ ├── README.md
│ │ ├── Version_1
│ │ └── Version_2
│ ├── P03_7_Segment_DHT22
│ │ ├── README.md
│ │ ├── Version_1
│ │ └── Version_2
│ ├── P04_7_Segment_HCSR04
│ │ ├── README.md
│ │ ├── Version_1
│ │ └── Version_2
│ ├── P05_LCD_1602
│ │ ├── lcd_main.tcl
│ │ ├── README.md
│ │ └── src
│ ├── P06_VGA_1
│ │ ├── MATLAB
│ │ ├── README.md
│ │ └── VHDL
│ ├── P07_LCD_TL1838
│ │ ├── ir_lcd_main.tcl
│ │ ├── README.md
│ │ ├── simulation
│ │ └── src
│ ├── P08_SPI_LCD
│ │ ├── MCU
│ │ ├── README.md
│ │ └── RTL
│ ├── P09_PS2_USB
│ │ ├── MCU
│ │ ├── README.md
│ │ └── RTL
│ ├── P10_ILI9341_HC06
│ │ ├── README.md
│ │ ├── rgb_display.tcl
│ │ ├── simulation
│ │ └── src
│ ├── P11_ILI9341_HC06_FIFO
│ │ ├── README.md
│ │ ├── rgb_display.tcl
│ │ ├── simulation
│ │ └── src
│ ├── P12_Pong
│ │ ├── MATLAB
│ │ ├── Python
│ │ ├── README.md
│ │ ├── Version_1
│ │ └── Version_2
│ ├── P13_SDRAM
│ │ ├── constraints
│ │ ├── README.md
│ │ ├── sdram_uart_main.tcl
│ │ ├── signal_tap
│ │ ├── simulation
│ │ └── src
│ └── P14_Camera_VGA
│ ├── constraints
│ ├── frame_capture_main.tcl
│ ├── README.md
│ ├── simulation
│ └── src
├── LICENSE
└── README.md
To test the projects (design and simulation), you'll need to install Quartus and ModelSim.
Furthermore, you must add the programs to your system PATH environment variable. This will allow you to invoke both applications from the command line. This applies to Linux and Windows users. Explanations of how to run design and simulation projects on the command line are given in the README section of each project.
Adding Quartus to system PATH for Linux (Ubuntu) users:
Open the .bashrc
file and add the following lines.
export MY_QUARTUS_PATH="/opt/intelFPGA_lite/20.1/quartus"
export PATH="$MY_QUARTUS_PATH/bin:$PATH"
Run source ~/.bashrc
and restart your terminal.
- RTL Hardware Design Using VHDL - Pong P. Chu
- FPGA Prototyping By VHDL Examples (Xilinx Spartan-3 Version) - Pong P. Chu
- Circuit Design and Simulation with VHDL, 2nd edition - Volnei A. Pedroni
- VHDLwhiz
- Nandland
- Intel Quartus Prime User Guide: Design Recommendations
- Jvitkauskas' Repository
- Cyclone IV FPGA Board Schematic
- Expansion Board Schematic
- Vendor's Page
- Tcl Tutorial