A baremetal project for reading ambient tempurature using the Nexys A7 FPGA Board. A simple project for learning embedded programming and fpga development.
- Nexys A7 50T dev board
- Microblaze (soft processor)
- ADT7420 (tempurature sensor onboard)
- Micron MT47H64M16HR-25:H (DDR2 SDRAM onboard)
- Vivado 2024.2
- Vitis 2024.2
Screenshots of the hardware block design.
This project is divided into two parts:
- Hardware Implementation (Microblaze, VHDL)
- Software Implementation (C)
The main focus of this project was to build skills in embedded programming in C, so even though this repository has both the hardware file and software file, most of the work/learning was done for the software side of things (still learned a lot about working with the Microblaze core and implementing Xilinx IP)
Hardware was configured through HDL wrapper generated from the block design (see Block Design). The VHDL code generated isn't really useful beyond the context of the block design, but can still be found here.
Directory for the C baremetal code is in /tr_vitis_workspace/temp_reader/src/
- Entry Point: main.c
- Seven Segment Driver: sevseg_writer.c
- Tempurature Sensor Driver: temp_sensor_reader.c

