blob: 8729e091cdba5019dd62cea1d864561cc8759246 [file] [log] [blame] [view]
# 8-bit SAR-ADC with offset calibration
This is a mixed-mode project featuring a 8-bit SAR-ADC, with offset calibration.
The logic section is synthesized using the openlane digital flow.
## Layout
The layout is created using magic as a pcell generator and drc checker, while the
connection of the design is done using klayout.
![layout](https://github.com/chrische-xx/caravel_user_project_analog/blob/main/docs/layout.png)
## Architecture
The ADC is composed of a differential top-plate sampled dac, which is made from an array of MIM capacitors.
The comparator is a regenerative comparator, which is followed by a latch to retain the output state during
reset. The latch output is fed into the logic section, which performs the standard binary search algorithm.
![layout](https://github.com/chrische-xx/caravel_user_project_analog/blob/main/docs/pictures/architecture.png)
## Simulation
The simulation is carried out using ngspice using the mixed-mode xspice capabilities.
The digital section is synthesized using yosys that can then be bridged to/from the
analog section.
The Schematics are created using xschem, which also serves as the simulation framework.
![testbench](https://github.com/chrische-xx/caravel_user_project_analog/blob/main/docs/pictures/xschem.png)
The SAR schematic:
![testbench](https://github.com/chrische-xx/caravel_user_project_analog/blob/main/docs/pictures/sar.png)
The simulation output can then be viewed in both analog and digital domain.
Digital waveforms displayed using GTKWave
![gtkwave](https://github.com/chrische-xx/caravel_user_project_analog/blob/main/docs/pictures/gtkwave.png)
Analog waveforms displayed using Gnuplot in interactive mode.
![gtkwave](https://github.com/chrische-xx/caravel_user_project_analog/blob/main/docs/pictures/gnuplot.png)