VLSI/FPGA beginner here.
I interfaced my Digilent Arty A7-35 with a DAC, using basic DDS (implementing timing diagram of the DAC on FPGA) and interfacing LUT(s) to form sine waves of multiple frequencies.
Trouble is, as LUT values increase, the output frequency of the sine wave decreases, exponentially.
Below is the graph plotted in Excel:
[![enter image description here][1]][1]
I have observed that the output sine waveform becomes smoother with an increase in LUT values, which is obvious due to an increase in precision, and a decrease in the number of jumps between values. However, a professor informed me that there is no certainty that frequency will definitely decrease with an increase in the number of LUT values, but rather that there will be a change.
There are two problems that I am facing:
- My observations after increasing LUT values to 2^16, contradict the professor (not completely, but as of now, it is definitely decreasing).
- I need to produce a sine wave of less frequency with a lower number of LUT values, because of memory constraints.
My questions:
- What is the relation between LUT values and output frequency?
- Is it possible to produce a sine wave of lower frequency with lesser LUT values?
I could think of one solution: Induce a delay between sending data to the DAC, by which I can space out the data, thereby causing frequency to decrease, but implementing this would be a hassle.
Additionally, reducing the number of LUT values could help reduce timing issues.