Automatic generation of an LC voltage controlled oscillator
A Voltage Controlled Oscillator (VCO) is used to generate a signal with a frequency that is a function of an input voltage amplitude, and is an integral part of circuits such as phase locked loops, frequency synthesizers, down conversion receivers, and clock generators. A typical design flow for a VCO involves architecture selection based on specification, calculation of circuit parameters, simulation, and iterations of circuit parameters based on the simulation result. In such a design flow, changes in specification or process can lead to significant redesign. This report focuses on a C++ based LC VCO generation software that seeks to automate the design process and that includes calculation of circuit parameters, creation of Spectre netlist, invocation of simulation, automated checking of the result, and a feedback mechanism to modify circuit parameters until the design can converge to the desired specification. Object Oriented Programming principles such as inheritance, polymorphism, encapsulation, class abstraction are exercised to maximize reusability and portability to other projects which may require different foundry device models and supply voltages.