Welcome to the GitHub repository for the University of Oklahoma 7nm Finfet Neuron Research Project.
Please note that this project adheres to the MIT License. All public exposure of files related to this work must include proper citations to the original poster. Any citations to this repository should reference:
Logan Larsh - University of Oklahoma - Inquire Labs.
- Software Configuration
- Installation Steps
- The XSchem Environment
- Running Simulations & Measuring Data
- Contact Information
This repository requires the following software tools:
- Xschem (schematic capture)
- NGSpice (circuit simulation)
- BSIM-CMG3 (transistor model)
- Python (Anaconda/Miniconda) (data processing and plotting)
- C89 compiler
- awk (compatible with mawk or gawk)
- Tcl/Tk (tested with versions 8.4, 8.5, & 8.6)
- Xlib, Xpm
- bison
- flex
- (Optional): cairo (for enhanced text rendering)
- (Optional): xcb
- (Optional): xrender
./configure && makeFor additional options, run:
./configure --helpcd src && ./xschemYou can install via:
make installOr, specify an installation directory:
make install DESTDIR=/tmp/packagingInstall NGSpice by following the instructions on the official NGSpice website. There are no special dependencies required for installation.
To enable BSIM-CMG3 in your NGSpice environment, update the configuration files in your local NGSpice install directory:
- Locate the NGSpice configuration file.
- Modify the file to switch the BSIM-CMG setting (flip the true/false status) as required.
Ensure you have a working Python environment on your local machine. It is recommended to install Miniconda or Anaconda so you can run the provided Python scripts to process and plot simulation data.
The Xschem environment is designed for effective schematic development and spice simulations. It supports simulation of transistors with up to 114 variables using NGSpice BSIM-CMG integration.
-
Layout Environment:
- Provides a unified interface to connect all schematic symbols.
- Tip: Make sure all connections terminate in the middle of the red pads on each transistor.
-
Finfet Model:
- The Finfet model is derived from the Arizona State University ASAP PDK. (https://github.com/The-OpenROAD-Project/asap7)
- Spice files have been modified for compatibility with NGSpice.
- Important: Ensure that the associated spice files are located in the NGSpice local run directory.
-
Spice Symbols:
- In Xschem, spice commands are on the local UI relative to the circuit layout.
- Access the "commands" symbol through the “place part” tool.
- Note: Most relevant circuit components can be found in the
ngspicedirectory within the parts tool.
-
Starting Simulations:
- Use the example schematics provided to familiarize yourself with the workflow.
- Confirm that the spice file and Finfet symbol are correctly placed in their respective directories.
- In Xschem, click Netlist and then Simulate to automatically start the simulation.
- Important: It is recommended to run the behavioral schematic (vs. transient sweep) first as more complex simulations may take several days.
-
Data Output:
- After a behavioral simulation (e.g., for a configuration like "besrourbehavior"), a circuit sample text file will be generated on your desktop.
- You may need to modify the output directory in the spice command symbol.
-
Data Analysis:
- Use the accompanying behavioral Python script to decompose and plot the simulation data.
For any questions or further assistance, please contact:
Logan Larsh
University of Oklahoma - Inquire Labs
Email: logan.c.larsh-1@ou.edu
Thank you for participating in the University of Oklahoma Neuronal Finfet Research Project! 😊 Enjoy exploring and simulating!