University of Arizona
Department of Electrical and Computer Engineering
EDA Tools Laboratory


Circuit Design Projects:

         Noise in a Bandgap Voltage Reference

New simulation tools designed for analyzing RF circuits can also be used to analyze switched-capacitor circuits. The goal of this project is to understand the sources of excess low-frequency noise in a precision bandgap reference.

New statistical tools allow fast accurate prediction of the expected variations in the performance of a complex circuit.  The goal of this project is to model the phase errors in an eight-phase ring oscillator, and determine a layout strategy that will minimize those errors.

Find the best circuit to determine the fundamental frequency of a noisy guitar tone. Input is a digital waveform that matches the zero-crossings of the tone. Output is a pulse with width equal to the best-guess fundamental period. The "best circuit" should be defined objectively (speed, accuracy, power, cost, etc.).

EDA Tools Projects:

Existing tools for logic design use sophisticated algorithms to work efficiently on large design problems.  However, they don't provide much insight into how the algorithms work.  The purpose of this package is to implement some simple tools in a way that parallels the development in ECE474 - Logic Synthesis Algorithms, focusing on clarity rather than efficiency, and ignoring the edge cases that make real programs so complex.  Python is the ideal language for this project because of its clarity.  The interactive interpreter makes it easy for students to debug their programs.  See the link above for a start on a package of logic design tools. To get "hooked" on Python in two hours, try the tutorial at !!

The goal of this project is an easily-learned, universal, open-source, circuit design platform that will allow IC designers to use whatever tools they want for design entry, simulation, and display of results.  The platform should provide a simple GUI, basic services such as storage of tool setups, and should define a simple, standard interface for each class of tool.  Most of the work will be in documenting the design and construction of the platform, using a simple scripting language ( Python ) and GUI toolkit ( Qt ) so that others may easily follow the pattern and extend the platform to support new and more varied tools.

The goal of this project is to provide an example, using a common tool like SPICE, showing how a circuit simulator can be integrated into the standard platform.  Most of the work will be on the interface to the display tool, which involves writing some access routines that make simulation results appear to have a standard structure, regardless of their actual arrangement on disk. This is an example of how a "Standard API" type of interface can allow tool developers to focus on making the best possible tool, while users enjoy the benefits of a standardized interface to that tool.

The goal of these projects is to provide examples, as above, and to help define the simple, standard interfaces needed for design-entry and waveform-display tools.  Most of the work will be in translating simple calls from the platform into the complex commands needed by a particular tool (e.g. probing schematics).  By working with real tools, we will discover where our simple interface definitions need to be extended, and where a little more work on the interface routines will keep the definitions simple.