*** gm/ID Starter Kit ***
Rev. 20150811
Boris Murmann
Stanford University
murmann@stanford.edu
This package provides scripts that can be used strore SPICE simulation data into Matlab files. The data (stored in mat files) can then be used for systematic circuit design in Matlab, for example using a gm/ID-based design flow. The typical user will use these files as follows:
1) Run the script "lookup_examples.m" in Matlab. This script creates example plots for the 180nm technology data included in this package.
2) Read "design_example.pdf" and run "design_example.m" in Matlab. This is a simple example showing how the lookup data can be used to size transistors.
3) As a next step, you will probably want to create mat files for your own technology. For that purpose, you can use either "techsweep_hspice.m" or "techsweep_spectre.m," depending on which simulator you want to use. The scripts rely on a config file that sets the relevant paths, file names, transistor instantiation, etc. Three example config files are provided (edit these appropriately according to your setup):
techsweep_config_bsim3_180_hspice.m
techsweep_config_bsim4_28_spectre.m
techsweep_config_psp_65_spectre.m
Have fun & good luck!
Boris
-------------------------------------------------------------
File descriptions:
*** techsweep_hspice.m, techsweep_spectre.m
Run these scripts to generate the 4-dimensional data tables for a new technology. For the included 180nm models, you do not have to do this, since the data tables are already included in this package (180nch.mat, 180pch.mat). When you want to characterize a new technology, you should not have to edit these files, except for loading a different config file. All of the technology specific info is set in the config file, as described below. For Hspice, you need to have the HSpice Matlab toolbox by Mike Perrott installed for this script to work. It is available at http://www.cppsim.com/download_hspice_tools.html. For Spectre, you need the Spectre Matlab toolbox provided by Cadence (cds_srr function).
*** techsweep_config_bsim3_180_hspice.m
*** techsweep_config_bsim4_28_spectre.m
*** techsweep_config_psp_65_spectre.m
These config files contain all the setup and variable name info for techsweep_hspice.m and techsweep_spectre.m. If you want to characterize your own technology, create a copy of one of these files and edit as appropriate. Hopefully you will find the format somewhat self-explanatory.
*** techsweep_spectre_display_params.m
This is a utility script you may not need, but it can be useful for debugging spectre config files (which are a bit more elaborate than HSpice config files). Basically, this is a simplified version of techsweep_spectre.m that just runs one single simulation and displays the operating point parameters.
*** ./hspice/ee214b_hspice.txt
BSIM3 models for a typical 180-nm CMOS process
*** 180nch.mat 180pch.mat
4-dimensional data tables for the 180nm CMOS process. These files were generated by running techsweep.hspice.m.
*** lookup.m
This function lets you pull out the data stored in the 4-dimensional look-up tables. Type "help lookup" in the Matlab window to get an explanation of the various usage modes.
*** lookupVGS.m
This function finds VGS for a given inversion level (gm/ID) and is not needed all that often. Type "help lookup" in the Matlab window to see the proper syntax.
*** lookup_examples.m
Open and run this file to see usage examples for the lookup functions. This is a good first step after unzipping this package.
*** design_example.pdf, "design_example.m"
A very basic design example for the systematic design of a differential amplifier. The design is explained toward the end of the pdf file (an excerpt from my lecture notes).
*** ./hspice/{design_example.sp, design_example.ac0, design_example_readin.m}
You can run the netlist design_example.sp to validate the design example in HSpice. The file desing_example_readin.m plots the simulation results in Matlab.