FPGA Lab 9


Lab 9 introduced the use of memory in order to use the data in a text file to run an audio player. I was able to compile the provided circuit and send an audio file over the serial port to the FPGA which played the song. This lab was very useful in demonstrating the use of on board memory in the context of file i/o which is an extremely useful part of any digital circuit that does not do a specific task or needs to access data that is store on an external device like a hard drive.


Lab 9 covered the combination of the RS232 interface with an on-board memory module in order to playback a song that was sent over the serial connection. In order to do this, I had to use the UART decoding and timings circuit from lab 8 and connected the result of the decoding to an on-board memory block which store the information. When an 8 bit signal was finished being decoded the memory block would then play the stored song to a speaker connected to the VGA port on the FPGA. With this circuit, I was able to play the provided file called ’Chimes_16s.txt" by copying and pasting it over the serial monitor to the FPGA.


This diagram shows the part of the circuit that is responsible for storing a particular song in the on board memory, as well as playing that song to the speaker. As discussed in Figure 3, when the incoming signal is finished being decoded into the 8 bit stream, the data_ready line goes high. This tells the memory block to write to the address that given by the wraddress pins. These pins are connected to a counter which tells the memory block to write to each memory location sequentially. The lower set of counters sync the 50 MHz clock found on the FPGA and the 16kHz frequency that the song was encoded with.