Manual: Difference between revisions

From Flooxs
Jump to navigation Jump to search
Line 2: Line 2:
FLOOXS is a Technology Computer Aided Design ([http://en.wikipedia.org/wiki/Technology_CAD TCAD]) tool used for [http://en.wikipedia.org/wiki/Semiconductor_process_simulation semiconductor process modeling] and [http://en.wikipedia.org/wiki/Semiconductor_device_modeling semiconductor device modeling] that will descretize and solve a set of [http://en.wikipedia.org/wiki/Partial_differential_equation partial] and [http://en.wikipedia.org/wiki/Ordinary_differential_equation ordinary differential equations] on a 1, 2 or 3D mesh using [http://en.wikipedia.org/wiki/Numerical_analysis numerical methods] such as the Finite Element Method ([http://en.wikipedia.org/wiki/Finite_element_method FEM]) and the Finite Volume Method ([http://en.wikipedia.org/wiki/Finite_volume_method FVM]). FLOOXS is built in [http://en.wikipedia.org/wiki/C%2B%2B c++], and uses several well-known math packages such as [http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS], [http://dietandlossweight.com/wiki/LAPACK LAPACK], and [http://en.wikipedia.org/wiki/Portable,_Extensible_Toolkit_for_Scientific_Computation PETSC] to handle the linear algebra. The user-interface is command-line [http://en.wikipedia.org/wiki/Tcl tcl] (tool control language), a scripting language, with additional FLOOXS-specific [[Alagator Language Description | Alagator]] commands added in.
FLOOXS is a Technology Computer Aided Design ([http://en.wikipedia.org/wiki/Technology_CAD TCAD]) tool used for [http://en.wikipedia.org/wiki/Semiconductor_process_simulation semiconductor process modeling] and [http://en.wikipedia.org/wiki/Semiconductor_device_modeling semiconductor device modeling] that will descretize and solve a set of [http://en.wikipedia.org/wiki/Partial_differential_equation partial] and [http://en.wikipedia.org/wiki/Ordinary_differential_equation ordinary differential equations] on a 1, 2 or 3D mesh using [http://en.wikipedia.org/wiki/Numerical_analysis numerical methods] such as the Finite Element Method ([http://en.wikipedia.org/wiki/Finite_element_method FEM]) and the Finite Volume Method ([http://en.wikipedia.org/wiki/Finite_volume_method FVM]). FLOOXS is built in [http://en.wikipedia.org/wiki/C%2B%2B c++], and uses several well-known math packages such as [http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms BLAS], [http://dietandlossweight.com/wiki/LAPACK LAPACK], and [http://en.wikipedia.org/wiki/Portable,_Extensible_Toolkit_for_Scientific_Computation PETSC] to handle the linear algebra. The user-interface is command-line [http://en.wikipedia.org/wiki/Tcl tcl] (tool control language), a scripting language, with additional FLOOXS-specific [[Alagator Language Description | Alagator]] commands added in.


==== Scripting Languages and Command-Line Use ====
==Overview and Basic Concepts==
* [[C++]] - some discussion of what is under the hood, and how to use the gdb debugger.
* [[Tcl]] - Tool Control Language is the main scripting language used to control local variables (set), do simple calculations (expr), define procedures (functions or routines), and accomplish basic read/write file operations (file). It sits on top of c++.
* [[Tcl]] - Tool Control Language is the main scripting language used to control local variables (set), do simple calculations (expr), define procedures (functions or routines), and accomplish basic read/write file operations (file). It sits on top of c++.
* [[Setting Parameters]] - how parameters work
* [[Alagator]] - Alagator is the scripting language created specifically for FLOOXS to describe the differential equations used in process and device simulation. It sits on top of tcl.
* [[Alagator]] - Alagator is the scripting language created specifically for FLOOXS to describe the differential equations used in process and device simulation. It sits on top of tcl.
* [[Examples and Workflow]]


==== General Overview of Device Simulation ====
=Examples=
 
==General Overview of Device Simulation ==
This section includes a general discussion of the governing differential equations commonly used in semiconductor device simulation (e.g. the Poisson and continuity equations) and how they are depicted in the FLOOXS Alagator script, as well as common methods for declaring boundary and initial conditions.
This section includes a general discussion of the governing differential equations commonly used in semiconductor device simulation (e.g. the Poisson and continuity equations) and how they are depicted in the FLOOXS Alagator script, as well as common methods for declaring boundary and initial conditions.
*[[Device Simulation Overview]]
*[[Device Simulation Overview]]

Revision as of 17:26, 13 March 2019

Introduction: What is FLOODS/FLOOPS?

FLOOXS is a Technology Computer Aided Design (TCAD) tool used for semiconductor process modeling and semiconductor device modeling that will descretize and solve a set of partial and ordinary differential equations on a 1, 2 or 3D mesh using numerical methods such as the Finite Element Method (FEM) and the Finite Volume Method (FVM). FLOOXS is built in c++, and uses several well-known math packages such as BLAS, LAPACK, and PETSC to handle the linear algebra. The user-interface is command-line tcl (tool control language), a scripting language, with additional FLOOXS-specific Alagator commands added in.

Overview and Basic Concepts

  • Tcl - Tool Control Language is the main scripting language used to control local variables (set), do simple calculations (expr), define procedures (functions or routines), and accomplish basic read/write file operations (file). It sits on top of c++.
  • Setting Parameters - how parameters work
  • Alagator - Alagator is the scripting language created specifically for FLOOXS to describe the differential equations used in process and device simulation. It sits on top of tcl.
  • Examples and Workflow

Examples

General Overview of Device Simulation

This section includes a general discussion of the governing differential equations commonly used in semiconductor device simulation (e.g. the Poisson and continuity equations) and how they are depicted in the FLOOXS Alagator script, as well as common methods for declaring boundary and initial conditions.

Installation

Running FLOOXS

  • Startup Script - set environment variables and alias paths (running FLOOXS for the first time)
  • FLOOXS within FLOOXS - use the FLOOXS command line to run another instance of FLOOXS

Tutorial

If you've never used FLOOXS before, start here. Work through these examples and exercises to learn the basics of FLOOXS. The example decks here contain line-by-line explanations, and are organized in such a way as to introduce important concepts in increasing complexity. Full unannotated examples are in the full examples section.

Workflow: How to create a FLOOXS simulation from scratch

1. Grid Generation

These are worked examples of grid generation concepts. Build 1D, 2D, and 3D structures for simulation.

3. Add Solution Variables

Includes a general discussion of declaring variables in FLOOXS, including "pde" vs. "const," and "solution" vs. "sel z=" vs. "set."

4. Add Process or Device Models

5. Solve

6. Post Processing (print or plot results)

Although not as fancy as commercial tools, there are a wide range of ways to examine output results. Examples of analysis can be found in this section.

Additional Notes

Troubleshooting

Convergence: Having problems with solution convergence? If so, refer to this convergence FAQ page.

Check All Your Equations - Use this PrintEqns procedure

Full FLOOXS Examples

These are full working decks that can be used as templates. If you would like line-by-line explanation of these examples, see the tutorial section of this manual.

Command Reference Library

This contains a command reference, in Unix man page style for each command in the program.

Command Reference Library

Development Activities

FLOOXS is under development at UF and used around the world.

Code Description

  • What is Under the Hood - Detailed - A detailed description of how the c++ code is organized, how the finite element methods is implemented, what physics currently exist and how to add more.


Contributors

Faculty Mark Law, University of Florida Ph.D Students Daniel Cummings - 2010 - danieljc@ufl.edu (Device Simulation: Strained-Si, Single-Event Effects) David Horton - 2013 - davidchorton@gmail.com (Device Simulation: Mechanisms of degradation of AlGaN/GaN devices, OFF state strain-driven diffusion, ON state hot-electron effects) Nicole Rowsey - 2011 - nrowsey@ufl.edu (Device Simulation: TID Effects, Multi-Gate, Charge Qubit Devices) Ashish Kumar - 2013 - email- ashishk@ufl.edu (Process Simulation: Silicide Growth, Dopant Segregation, Stress and Strain Analysis) Madeline Sciullo - 2015 - email- madelinesciullo@ufl.edu (Process Simulation: Carbon Model Development; Device Simulation: SRH PN Diode (1D), AlGaN/GaN HEMT Chemical Sensors). Shrijit Mukherjee - 2015 - email- shrijitm10@ufl.edu (Device Simulation: Sinusoidal Steady State Analysis, Interface trapping). Henry Aldridge - 2016 - email- aldridhl@ufl.edu (Process Simulation: Dopant Diffusion and Activation in III-V Semiconductors). Post-Docs Michelle Griglione - email Erin Patrick - ee1[at]ufl.edu Past Students and Post-Docs

Intel Development Team Martin Giles, Stephen Cea, Hal Kennel, Aaron Lilak, and Patrick Keys. Intel is feeding back bug fixes and enhancements. Steve Morris - we miss you!

Collaborators Rex Lowther, Harris. Grid and diffusion discretizations, Cylindrical Coordinates; Mike Morris, Steve Morris, Al Tasch, University of Texas, Austin. Dual pearson implant models for boron, bf2, and arsenic; Goodwin Chin, IBM. Original ideas for hierarchical mesh; Tim Davis, University of Florida. UMF factorization code.

Copyright and Redistribution

This software and manual is copyrighted by the Mark Law, University of Florida Electrical and Computer Engineering department. It is intended for internal educational and research and development purposes only. Any use of any part of this software in any commercial package needs to be negotiated separately. Several of the implant models are copyrighted by Al Tasch from The University of Texas at Austin. It uses public domain software tcl/tk and various linear algebra packages.

Authorization for Download of 2008

This version is best if you wish to do Si process simulation - implant, diffusion, shallow junction formation. To obtain the 2008 release, you must complete the license form scan/email it to Dr. Mark E. Law at law at ece dot ufl dot edu.

Authorization for Download of 2011

This version is best if you wish to simulate device / sensor performance. To obtain the 2011 release, you must complete the license form andscan/email it to Dr. Mark E. Law at law at ece dot ufl dot edu.