VHDL Project
VHDL Project
Coursework information:
Students will create VIVADO projects to design, simulate and implement in FPGA a room
thermometer targeting the XC7A100T-1CSG324C device (Nexys-A7 development board).
Bonus points:
a. Design a testbench to automatically check the correctness of the module’s output for all the
possible input combinations of the module tested.
You are provided with two VHDL modules (TWICtl.vhd and TempSensorCtl.vhd) that read the
ADT7420 sensor over the I2C bus and return a 13-bit twos complement word representing the
temperature in Celsius with an accuracy of 0.0625°C.
1. Using the VHDL modules provided and the code written in Stage1, write the appropriate code
for reading the temperature from the ADT7420 sensor and store it in a temporary register.
2. Based on the sensor’s datasheet, convert the binary number from the register into a
temperature and display the value on the 7-segment display.
3. Use the most left switch on the board to switch between displaying the temperature or the
switches value.
Bonus points:
a. Displaythetemperaturewith4decimals.
b. Modify the appropriate VHDL files to read the temperature from the sensor with an
accuracy of 0.0078°C (16-bit word) and display it on the Nexys-A7 display with four decimals
1. Embed into your design a PicoBlaze softcore microcontroller. Write the appropriate code for
programming the microcontroller to read the value from the temperature sensor or entered
from switches available on the Nexys-A7 board. Connect the picoblaze output to the
temperature converter designed in Stage2b.
2. Use a switch on the board to select how the temperature value is read(through picoblaze or
direct from sensor/switches)
Bonus points
a. Program the microcontroller to convert the temperature expressed in Celsius read from the sensor
(or switches), in Fahrenheit. Add to your design appropriate buttons to select the temperature scale
(Celsius and Fahrenheit) to be displayed on the 7 segments display.