# Digital-Calibration-of-SAR-ADC
**Repository Path**: lctank/Digital-Calibration-of-SAR-ADC
## Basic Information
- **Project Name**: Digital-Calibration-of-SAR-ADC
- **Description**: Successive Approximation Register (SAR) ADC Digital Calibration (in Matlab)
- **Primary Language**: Matlab
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 4
- **Forks**: 2
- **Created**: 2019-08-18
- **Last Updated**: 2025-05-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Digital Calibration of SAR ADC
**Successive Approximation Register (SAR) ADC Digital Calibration**
* [Overview](#overview)
* [Code](#code)
* [Theory](#theory)
* [Charge Redistribution](#CR_theory)
* [Redundant](#RD_theory)
* [Tutorial](#tutorial)
* [Matlab](#matlab)
* [Mathtype](#mathtype)
* [Latex](#latex)
* [Markdwon](#markdown)
* [Matplotlib](#matplotlib)
Overview
Code
This Code part contains:
1. An executable file ([Run_SAR_ccliu.m](https://github.com/zlijingtao/Digital-Calibration-of-SAR-ADC/blob/master/Run_SAR_ccliu.m)) to auto-test the ADC model and output its dynamic performance and also the averaging energy consumption.
2. Behavioral Model file ([SAR_ccliu.m](https://github.com/zlijingtao/Digital-Calibration-of-SAR-ADC/blob/master/SAR_ccliu.m)) of a popular SAR ADC architecture proposed by Liu et al. [1].
3. Fast Fourier Transfromation (FFT) file ([SNR_ADC.m](https://github.com/zlijingtao/Digital-Calibration-of-SAR-ADC/blob/master/SNR_ADC.m)) to test the dynamic performance of the SAR ADC beharvioral model.
4. Hodiewindow function file ([hodiewindow.m](https://github.com/zlijingtao/Digital-Calibration-of-SAR-ADC/blob/master/hodiewindow.m)) which is needed for doing the FFT.
5. Err_compare function file ([err_compare.m](https://github.com/zlijingtao/Digital-Calibration-of-SAR-ADC/blob/master/err_compare.m)) to emulate the decision error occurs in the SAR process.
6. Behavioral Model file ([SAR_conventional.m](https://github.com/zlijingtao/Digital-Calibration-of-SAR-ADC/blob/master/SAR_conventional.m)) of the conventional SAR ADC architecture in [1], newly uploaded by Whove.
7. Behavioral Model file ([SAR_ccliu_10b_rd.m](https://github.com/zlijingtao/Digital-Calibration-of-SAR-ADC/blob/master/SAR_ccliu_10b_rd.m)) of redundant algorithm proposed in [3].
8. Full adder function file ([full_adder.m](https://github.com/zlijingtao/Digital-Calibration-of-SAR-ADC/blob/master/full_adder.m)) to implement the full-adder.
9. Behavioral Model file ([SAR_JSSC_shen.m, Flash_JSSC_shen.m and SAR_JSSC_shen_10repeat.m](https://github.com/zlijingtao/Digital-Calibration-of-SAR-ADC/tree/master/JSSC_shen)) of the SAR algorithm Shen et al. presented in [4].
10. Decimal to Binary function file ([decimal2binary.m](https://github.com/zlijingtao/Digital-Calibration-of-SAR-ADC/blob/master/decimal2binary.m)) to implement decimal to binary conversion.
11. Behavioral Model file ([SAR_project18_10repeat.m](https://github.com/zlijingtao/Digital-Calibration-of-SAR-ADC/tree/master/Thesis)) of the same SAR algorithm as [4] but changes to an 18-bit SAR ADC.
Theory
Charge Redistribution
See the PDF file ([Proposed SAR ADC.pdf](https://github.com/zlijingtao/Digital-Calibration-of-SAR-ADC/blob/master/Proposed%20SAR%20ADC.pdf)). It well explains the "Charge Redistribution Theory" of the proposed ADC architecture in [1].
And for the split structure in [2], see figure below:
Redundant
The redundant is a design method for mitigating the effect of decision error occurs in SAR ADC. The decision error is a settling problem during the charge redistribution. (for more info, please refer to Liu et al. [3].)
The implementation of the redundant in a 10-b SAR ADC is like this:
* * *
**Reference**
[1]: [Liu et al. - 2010 - A 10-bit 50-MSs SAR ADC with a monotonic capacitor switching procedure](http://ieeexplore.ieee.org/abstract/document/5437496/).
[2]: [Yoshioka et al. - 2010 - A 10-b 50-MSs 820-μW SAR ADC with on-chip digital calibration](http://ieeexplore.ieee.org/abstract/document/5621876/)
[3]: [Liu et al. - 2010 - A 10b 100MSs 1.13mW SAR ADC with binary-scaled error compensation](http://ieeexplore.ieee.org/abstract/document/5433970/)
[4]: [Shen et al. - 2017 - A 16-bit 16MS s SAR ADC with On-Chip Calibration in 55nm CMOS](http://ieeexplore.ieee.org/abstract/document/8248649/)
* * *
Tutorial
Matlab
Matlab is a powerful tool to conduct scientific research and implement your ideas.
用处:用于数学建模及仿真。
Matlab教程:[Matlab官方教程](https://cn.mathworks.com/support/learn-with-matlab-tutorials.html?s_tid=hp_ff_l_tutorials)
比看教程更有效率的学习方法:直接上手,遇到不懂的直接baidu。
Mathtype
Mathtype is a tool to type your mathematical equations.
用处:用于公式编辑。
Mathtype极为简单,易于上手。
需要注意的地方:
在Preference->Cut and Copy Preference 中,可以对拷贝的输出格式进行设置,默认为Equation Object, 适合直接拷贝进word中;还有MathML格式,适合拷贝进Latex中,极为方便。
Latex
Latex is a high-quality typesetting system; it includes features designed for the production of technical and scientific documentation.
用处:用于论文写作。
Latex教程:[LaTeX新人教程,30分钟从完全陌生到基本入门](http://blog.sina.com.cn/s/blog_90444ed201016iq6.html)
Markdown
Markdown语言是一种轻量化的标记语言,支持[HTML](http://www.w3school.com.cn/html/html_jianjie.asp)。
用处:写blog,写readme,分享自己的idea。
Markdown教程:[othree的Markdwon简明教程](https://github.com/zlijingtao/markdown-syntax-zhtw/blob/master/syntax.md)
Matplotlib
Matplotlib是Python的一个功能强大的绘图库(需要提前安装[python](https://www.python.org/downloads/release/python-364/))。
用处:可用于绘制各种fancy的图片([知乎:如何在论文中画出漂亮的插图?](https://www.zhihu.com/question/21664179))。
Matplotlib安装教程:[python:安装pylab模块](https://blog.csdn.net/bit_clearoff/article/details/52502654)
Matplotlib使用教程:[Matplotlib Tutorial(译)](http://reverland.org/python/2012/09/07/matplotlib-tutorial/)