We are working with the Digilent Basys 3 FPGA's and are tasked with a project based around retro game design.
For the game we are required to include music/sounds and for our implementation we required a bit more storage than the Basys 3 had to offer. To solve this problem, we searched for possible storage expansion modules and quickly found out that the Basys 3 supports a vast array of expansion modules.
To facilitate the sound production we chose the pmod AMP2 module and for the storage expansion we chose the pmod SD module.
We have successfully tested the example code that was provided within the IP library catalogue and got to testing. After some performance/feature testing we soon realised that there were some challenges with these modules based on our requirements. The modules are controlled through Microblaze, as the examples we found were written for the Microblaze soft core CPU.
The challenges are:
The latency/bandwidth of the SD module is a bit too high for our goals. We have tried to time the reading of different sized packets and concluded that the latency (tens of milliseconds with 2 kB read streams) that we are seeing might be too high and the bandwidth too low to get a sufficient amount of data through to stream high quality music and load in parts of the map from the SD card. Are there ways to increase the latency/bandwidth? Or is there VHDL code available that can handle reading data from the SD module at higher speeds (i.e. bypass Microblaze)? We need to be able to read samples (16 bit per sample at 44100 samples/s - 88.2 kB/s) from a text file to feed into the AMP2 module for music synthesis and also read bytes (18 kB per second) from another text file to generate a tile map for the game. Because the Basys 3 does not have a large amount of RAM available, we need to buffer a lot of information in relatively small buffers, which means that we require low latencies when it comes to reading data.
The pmod AMP2 has a class D amplifier that can output as much as 2.5 W of power. We hope to connect an aux cable to the 3.5 mm port and connect it to a portable speaker amplifier input (JBL bluetooth speaker aux port that is usually connected to a phone, for instance.). Is this possible or will the high current damage the amplifier inside the bluetooth speaker? And if the high current will damage the board, is it possible to reduce the volume (power) through software or does it then require a hardware modification?
Question
Jonathan.O
We are working with the Digilent Basys 3 FPGA's and are tasked with a project based around retro game design.
For the game we are required to include music/sounds and for our implementation we required a bit more storage than the Basys 3 had to offer. To solve this problem, we searched for possible storage expansion modules and quickly found out that the Basys 3 supports a vast array of expansion modules.
To facilitate the sound production we chose the pmod AMP2 module and for the storage expansion we chose the pmod SD module.
We have successfully tested the example code that was provided within the IP library catalogue and got to testing. After some performance/feature testing we soon realised that there were some challenges with these modules based on our requirements. The modules are controlled through Microblaze, as the examples we found were written for the Microblaze soft core CPU.
The challenges are:
The latency/bandwidth of the SD module is a bit too high for our goals. We have tried to time the reading of different sized packets and concluded that the latency (tens of milliseconds with 2 kB read streams) that we are seeing might be too high and the bandwidth too low to get a sufficient amount of data through to stream high quality music and load in parts of the map from the SD card. Are there ways to increase the latency/bandwidth? Or is there VHDL code available that can handle reading data from the SD module at higher speeds (i.e. bypass Microblaze)? We need to be able to read samples (16 bit per sample at 44100 samples/s - 88.2 kB/s) from a text file to feed into the AMP2 module for music synthesis and also read bytes (18 kB per second) from another text file to generate a tile map for the game. Because the Basys 3 does not have a large amount of RAM available, we need to buffer a lot of information in relatively small buffers, which means that we require low latencies when it comes to reading data.
The pmod AMP2 has a class D amplifier that can output as much as 2.5 W of power. We hope to connect an aux cable to the 3.5 mm port and connect it to a portable speaker amplifier input (JBL bluetooth speaker aux port that is usually connected to a phone, for instance.). Is this possible or will the high current damage the amplifier inside the bluetooth speaker? And if the high current will damage the board, is it possible to reduce the volume (power) through software or does it then require a hardware modification?
We appreciate all the help!
Jonathan
Link to comment
Share on other sites
8 answers to this question
Recommended Posts
Archived
This topic is now archived and is closed to further replies.