blob: 4809aca65af3efc464da8490d6c6adbd3defcd12 [file] [log] [blame] [view]
# General Purpose Bandgap Reference Circuit - avsdbgp_3v3_sky130_v2
A Bandgap Reference is an analog circuit, which is used to provide a constant output reference voltage being independent of Temperature, Process and Supply voltage variations. The analog IP **avsdbgp_3v3** is a General Purpose Bandgap Reference ciruit, which is designed using **Sky130nm** technology in this project.
For detailed information regarding the Bandgap Reference circuit click [here](https://github.com/vsdip/avsdbgp_3v3_sky130_v2/blob/main/Documents/General_purpose_BGR.pdf). The Design specifications provided for avsdbgp_3v3 can be found [here](https://github.com/vsdip/avsdbgp_3v3_sky130_v2/blob/main/Documents/Specifications.pdf).
<p>&nbsp;</p>
# Table of Contents
* Performance parameters Bandgap Reference IP
* Circuit Implementation of Bandgap Reference IP
- Block Diagram of Bandgap Reference IP
- Schematic of Bandgap Reference IP
* Downloading the files on your System
* Pre-Layout Simulation of Bandgap Reference IP circuit using Ngspice
- Ngspice
- Pre-Layout Simulation plots of Bandgap Reference IP circuit
- Vbgp v/s Temperature [ -40C - 140C] @ RL = 100M ohms plot
- Vbgp v/s VDD [ 2V - 4V] @ RL = 100M ohms plot
- Temperature Coefficient of Vbgp v/s Temperature [ -40C - 140C] @ RL = 100M ohms plot
- Voltage Coefficient of Vbgp v/s VDD [ 2V - 4V] @ RL = 100M ohms plot
- Start-Up Time of Vbgp @ RL = 100M ohms plot
- On-Off-Current of Vbgp wrt Enable @ RL = 100M ohms plot
* BGR Layout
- Magic
- Layout
* Post-Layout Simulation of Bandgap Reference IP circuit using Ngspice
- Vbgp v/s Temperature [ -40C - 140C] @ RL = 100M ohms plot
- Vbgp v/s VDD [ 2V - 4V] @ RL = 100M ohms plot
- Temperature Coefficient of Vbgp v/s Temperature [ -40C - 140C] @ RL = 100M ohms plot
- Voltage Coefficient of Vbgp v/s VDD [ 2V - 4V] @ RL = 100M ohms plot
- Start-Up Time of Vbgp @ RL = 100M ohms plot
- On-Off-Current of Vbgp wrt Enable @ RL = 100M ohms plot
<p>&nbsp;</p>
# Performance parameters of Bandgap Reference IP
<p>&nbsp;</p>
| Parameter | Description | Min | Type | Max | Unit | Condition |
| :----: | :----: | :----: | :----: | :----: | :----: | :----: |
| VBGP | Output reference voltage | 1.19490 | 1.19756 | 1.19764 | Volt | T= -40 to 140C, VDD=3.3V |
| VBGP | Output reference voltage | 1.11400 | 1.19756 | 1.21933 | Volt | VDD=2V to VDD=4V, T=27C |
| VDD | Supply Voltage | | 3.3 | | Volt | T=-40C to 125C|
| IDD | Supply Current | | 21.9636 | | uA | EN=1 |
| IDD | Supply Current | | 24.4 | | pA | EN=0 |
| RL | Load Resistance | | 100 | | Mohm |VDD=3.3V, T=27C|
<p>&nbsp;</p>
# Circuit Implementation of Bandgap Reference IP
## Block Diagram of Bandgap Reference IP
![Block diagram](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/photo/block_diagram.png)
## Schematic of Bandgap Reference IP
<p>&nbsp;</p>
![Schematic](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/photo/Schematic.png)
<p>&nbsp;</p>
# Downloading the files on your System
<p>&nbsp;</p>
The files from this repository can be downloaded and used by the following commands :-
>`sudo apt install -y git`
>`git clone https://github.com/vsdip/avsdbgp_3v3_sky130_v2.git`
<p>&nbsp;</p>
# Pre-Layout Simulation of Bandgap Reference IP circuit
The circuit implementation of Bandgap reference IP **avsdbgp_3v3** is simulated using Ngspice to analyse its performance according to the Design Specifications provided.
<p>&nbsp;</p>
## Ngspice
<p>&nbsp;</p>
Ngspice is an open source mixed-signal circuit simulator. To install Ngspice on Ubuntu, open terminal window and type :-
>`sudo apt-get install -y ngspice`
After successful installation, to invoke Ngspice type the following command on the terminal window.
>`ngspice <circuit file to be simulated>`
<p>&nbsp;</p>
## Pre- Layout Simulation plots of Bandgap Reference IP circuit
<p>&nbsp;</p>
To simulate the files for Pre- Layout simulations
<p>&nbsp;</p>
>`cd avsdbgp_3v3_sky130_v2/Pre_Layout_Simulations/Circuits/`
<p>&nbsp;</p>
## Vbgp v/s Temperature [ -40C - 140C] @ RL = 100M ohms plot
<p>&nbsp;</p>
To observe the effect of temperature on the circuit, the temperature is varied from -40C to 140C. On the terminal window, type :-
<p>&nbsp;</p>
>`ngspice temp_avsdbgp_3v3.cir`
<p>&nbsp;</p>
The output plot as obtained can be seen below :-
<p>&nbsp;</p>
![Vbgp vs Temperature](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/Pre_Layout_Simulations/Results/temp_var.png)
<p>&nbsp;</p>
![Vbgp Vptat Vctat vs Temperature](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/Pre_Layout_Simulations/Results/temp_all.png)
<p>&nbsp;</p>
## Vbgp v/s VDD [ 2V - 4V] @ RL = 100M ohms plot
<p>&nbsp;</p>
To observe the effect of Supply voltage on the circuit, the temperature is varied from 2V to 4V. On the terminal window, type :-
<p>&nbsp;</p>
>`ngspice vdd_variation_avsdbgp_3v3.cir`
<p>&nbsp;</p>
The output plot as obtained can be seen below :-
<p>&nbsp;</p>
![Voltage vs Vbgp](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/Pre_Layout_Simulations/Results/vdd_var.png)
<p>&nbsp;</p>
## Temperature Coefficient of Vbgp v/s Temperature [ -40C - 140C] @ RL = 100M ohms plot
<p>&nbsp;</p>
On the terminal window, type :-
<p>&nbsp;</p>
>`ngspice Temp_coeff_avsdbgp_3v3.cir`
<p>&nbsp;</p>
The output plot as obtained can be seen below :-
<p>&nbsp;</p>
![Temperature coefficient of Vbgp](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/Pre_Layout_Simulations/Results/temp_coeff.png)
<p>&nbsp;</p>
## Voltage Coefficient of Vbgp v/s VDD [ 2V - 4V] @ RL = 100M ohms plot
<p>&nbsp;</p>
On the terminal window, type :-
<p>&nbsp;</p>
>`ngspice voltage_coeff_avsdbgp_3v3.cir`
<p>&nbsp;</p>
The output plot as obtained can be seen below :-
<p>&nbsp;</p>
![Voltage coefficient of Vbgp](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/Pre_Layout_Simulations/Results/vol_coeff.png)
<p>&nbsp;</p>
## Start-Up Time of Vbgp @ RL = 100M ohms plot
<p>&nbsp;</p>
On the terminal window, type :-
<p>&nbsp;</p>
>`ngspice Start_up_avsdbgp_3v3.cir`
<p>&nbsp;</p>
The output plot as obtained can be seen below :-
<p>&nbsp;</p>
![Start up circuit](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/Pre_Layout_Simulations/Results/Startup.png)
<p>&nbsp;</p>
## On-Off-Current of Vbgp wrt Enable @ RL = 100M ohms plot
<p>&nbsp;</p>
On the terminal window, type :-
<p>&nbsp;</p>
>`ngspice enable_current.cir`
<p>&nbsp;</p>
The output plot as obtained can be seen below :-
<p>&nbsp;</p>
![Enable](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/Pre_Layout_Simulations/Results/enable_current.png)
<p>&nbsp;</p>
# BGR Layout
<p>&nbsp;</p>
## Magic
The Layout for the circuit was done using Magic Layout editor tool. To observe the layout, install magic using the following commands :-
<p>&nbsp;</p>
>`sudo wget "http://opencircuitdesign.com/magic/archive/magic-8.3.122.tgz" `
>`tar -xvzf magic-8.3.122.tgz`
>` cd magic-8.3.122 `
>`sudo ./configure`
>`sudo make`
>`sudo make install`
<p>&nbsp;</p>
## Layout
After successful installation, type:-
<p>&nbsp;</p>
>`cd avsdbgp_3v3_sky130_v2/Layout/`
>` magic -T ../libs/sky130A.tech BGR.mag`
<p>&nbsp;</p>
![Layout](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/photo/layout.png)
<p>&nbsp;</p>
# Post-Layout Simulation plots of Bandgap Reference IP circuit
<p>&nbsp;</p>
To simulate the files for Post-Layout simulations using ngspice :-
>`cd avsdbgp_3v3_sky130_v2/Post_Layout_Simulations/Circuits/`
<p>&nbsp;</p>
## Vbgp v/s Temperature [ -40C - 140C] @ RL = 100M ohms plot
<p>&nbsp;</p>
To observe the effect of temperature on the circuit, the temperature is varied from -40C to 140C. On the terminal window, type :-
<p>&nbsp;</p>
>`ngspice temp_avsdbgp_3v3.spice`
<p>&nbsp;</p>
The output plot as obtained can be seen below :-
<p>&nbsp;</p>
![Vbgp vs Temperature](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/Post_Layout_Simulations/Results/temp.png)
<p>&nbsp;</p>
![Vbgp Vptat Vctat vs Temperature](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/Post_Layout_Simulations/Results/temp_all.png)
<p>&nbsp;</p>
## Vbgp v/s VDD [ 2V - 4V] @ RL = 100M ohms plot
<p>&nbsp;</p>
To observe the effect of Supply voltage on the circuit, the temperature is varied from 2V to 4V. On the terminal window, type :-
<p>&nbsp;</p>
>`ngspice vdd_variation_avsdbgp_3v3.spice`
<p>&nbsp;</p>
The output plot as obtained can be seen below :-
<p>&nbsp;</p>
![Voltage vs Vbgp](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/Post_Layout_Simulations/Results/vdd_var.png)
<p>&nbsp;</p>
## Temperature Coefficient of Vbgp v/s Temperature [ -40C - 140C] @ RL = 100M ohms plot
<p>&nbsp;</p>
On the terminal window, type :-
<p>&nbsp;</p>
>`ngspice Temp_coeff_avsdbgp_3v3.spice`
<p>&nbsp;</p>
The output plot as obtained can be seen below :-
<p>&nbsp;</p>
![Temperature coefficient of Vbgp](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/Post_Layout_Simulations/Results/temp_coeff.png)
<p>&nbsp;</p>
## Voltage Coefficient of Vbgp v/s VDD [ 2V - 4V] @ RL = 100M ohms plot
<p>&nbsp;</p>
On the terminal window, type :-
<p>&nbsp;</p>
>`ngspice voltage_coeff_avsdbgp_3v3.spice`
<p>&nbsp;</p>
The output plot as obtained can be seen below :-
<p>&nbsp;</p>
![Voltage coefficient of Vbgp](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/Post_Layout_Simulations/Results/vol_coeff.png)
<p>&nbsp;</p>
## Start-Up Time of Vbgp @ RL = 100M ohms plot
<p>&nbsp;</p>
On the terminal window, type :-
<p>&nbsp;</p>
>`ngspice Start_up_avsdbgp_3v3.spice`
<p>&nbsp;</p>
The output plot as obtained can be seen below :-
<p>&nbsp;</p>
![Start up circuit](https://raw.githubusercontent.com/vsdip/avsdbgp_3v3_sky130_v2/main/Post_Layout_Simulations/Results/Startup.png)
<p>&nbsp;</p>
# Author
* [Anmol Purty](https://github.com/an3ol)
# Acknowledgements
* [Kunal Ghosh](https://github.com/kunalg123), Co-founder of VLSI System Design (VSD) Corp. Pvt. Ltd.
* [Tim Edwards](https://github.com/RTimothyEdwards), Senior Vice President of Analog and Design at efabless corporation.
* [Sheryl Corina Serrao](https://github.com/sherylcorina), Undergraduate Student, Mumbai University.
# Contact Information
* Anmol Purty - nmlpurty@gmail.com