This project presents the design of a Two Stage CMOS Operational Amplifier using open source SkyWater 130nm Technology
eSim
Ngspice
SkyWater Open Source PDK
Magic
The eSim Software is currently available for Windows 7, 8 and 10 and Ubuntu 16.04 LTS and above
The Magic Design Tool is available for Ubuntu
Ngspice is installed when eSim is installed, but if any other version is needed please follow the steps mentioned
The Pre-requisites for installing the following in Ubuntu are
Install them using
To make sure that you install the latest version of the software(that is the package information is up to date)
$ sudo apt-get update
$ sudo apt install git $ sudo apt install make
Please refer to the following links for proper installation of eSim
Please refer to the following links for proper installation of Ngspice
In Windows
In Ubuntu In terminal, execute the following commands
To download the repository into the current working directory
$ git clone git://opencircuitdesign.com/open_pdks
Go to open_pks
directory
$ cd open_pdks
Configure and install
$ ./configure --enable-sky130-pdk $ make $ sudo make install
In terminal, execute the following commands
To download the repository into the current working directory
$ git clone git://opencircuitdesign.com/magic
Go to magic
directory
$ cd magic
Configure and install
$ sudo ./configure $ sudo make $ sudo make install
To Clone this repository, execute the following from terminal
$ git clone https://github.com/rohinthram/avsd_opamp
Or download and extract the files
Go to the directory pre_layout/pre_layout_simulation
$ cd pre_layout/pre_layout_simulation
Execute each and every .cir
using ngspice
command from terminal
$ ngspice <file-name>
<file-name>
with file name of the analysis requiredThe necessary plot is obtained upon successful execution of the file
$ ngspice differential_gain.cir
$ ngspice common_mode_gain.cir
$ ngspice offset_voltage.cir
$ ngspice input_noise_spectrum.cir
To obtain Noise Spectrum
Please run the following commands in the ngspice window for obtaining the plot
Use setplot
to see all plots available
ngspice-> setplot
select the plot which has “Noise Spectral Density Curves”.For example,
ngspice-> setplot noise1
Then plot the graph using the command
ngspice-> plot inoise_spectrum
$ ngspice power_dissipation.cir
$ ngspice slew_rate.cir
A much easier plot to see slew rate could be obtained by changing the analysis as
.tran 0.01u 2u
$ ngspice transient.cir
Copy sky130A.tech
file and paste in the directory where we want to work with magic Or execute the following command in the terminal
cp avsd_opamp/skywater_pdk/sky130A.tech <target-destination>
Magic Workspace :
Save the changes made using
% save <file-name>
Conversion of .mag file into ngspice executable
% extract all
% ext2spice
Make necessary changes to the .spice file so that it can be run in ngspice
(The modified file can be found in post_layout/post_layout_simulations directory)
Go to the directory post_layout/post_layout_simulation
by executing the command from parent directory
$ cd post_layout/post_layout_simulation
Execute each and every .cir
using ngspice
command from terminal
$ ngspice <file-name>
<file-name>
with file name of the analysis requiredThe necessary plot is obtained upon successful execution of the file
$ ngspice differential_gain.cir
$ ngspice common_mode_gain.cir
$ ngspice offset_voltage.cir
$ ngspice input_noise_spectrum.cir
For obtaining Noise Spectrum
Please run the following commands in the ngspice window for obtaining the plot
Use setplot
to see all plots available
ngspice-> setplot
select the plot which has “Noise Spectral Density Curves”.For example,
ngspice-> setplot noise1
Then plot the graph using the command
ngspice-> plot inoise_spectrum
$ ngspice power_dissipation.cir
$ ngspice slew_rate.cir
A much easier plot to see slew rate could be obtained by changing the analysis as
.tran 0.01u 2u
$ ngspice transient.cir