The final layout of the sine wave generator in Magic, a VLSI layout tool.

For my final project for Mixed Analog-Digital VLSI, I designed and laid out an IC that outputs sine waves with a high spectral purity. The circuit contains three main components: a 16-bit shift register to generate offset square wave signals, an irrationally weighted DAC known as a harmonic-cancelling DAC (HC-DAC) to scale and sum these square wave signals to form an approximate sine wave signal, and an output filtering stage to remove remaining higher order harmonics in the sine wave signal to create a sine wave with high spectral purity.
Our circuit architecture creates a sine wave signal by first generating a set of phase shifted square wave signals. These square wave signals are then scaled by a set of irrational weights and are then summed to create an step-wise approximated sine wave signal. This method of creating an approximated sine wave signals does not include lower order harmonics, so only higher order harmonics need to be filtered out in the output stage. To remove these harmonics and improve the spectral purity of the signal, the approximated signal is put through an output low-pass filtering stage, smoothing out the waveform and removing higher order harmonics from the signal, leaving a high fidelity sine wave as the output of our circuit.

High level schematic of final circuit, showing the main circuit blocks utilized.

Output sine wave of the circuit plotted over time in orange, overlayed over an ideal sine wave plotted as a dashed line.

In this project, I gained a lot of experience not only designing the various components of the IC at the schematic level, but also how to physically layout these circuits as efficiently as possible on a single IC. The project incorporates both analog and digital elements, so it was also a great way for me to work with best design practices for both circuit styles, such as common centroiding for analog design and maximizing the number of shared source/drain diffusion regions.

The project files and report can be found on GitHub.
Back to Top