cornell-c2s2 / c2s2_ip

A general repository for all of C2S2's IP, including testing
2 stars 3 forks source link

Direct Digital Synthesizer Using Verilog #23

Open sts200 opened 1 year ago

sts200 commented 1 year ago

A sine/cosine block will be useful in many audio processing applications. Using direct digital synthesis (DDS), we can generate fairly accurate sine/cosine waves using just a lookup table and addition operations. DDS works based off the idea that a variable overflowing is "isomorphic" to one rotation of a unit phasor.

A more rigorous exploration of DDS can be found here: link

I found a 4 part tutorial on FPGA4Fun that I will be using to implement DDS in SystemVerilog: link

jjm469 commented 1 year ago

Please write a description of the block in the initial comment @sts200

jjm469 commented 1 year ago

@sts200 following up here. Plz add a block description when you get the chance. Thanks

sts200 commented 1 year ago

As I work on creating this synthesizer, I realize that this project will require more work than expected. The applications of DDS go so much farther than creating simple sine/cosine curves. I would like to talk about this in-person. For now, I will upload what I have completed and create a slide explaining what I hope to do with this.

UnsignedByte commented 1 year ago

here is a tutorial on implementing sine using CORDIC, maybe we can use something like this?