Manual: Difference between revisions

From Flooxs
Jump to navigation Jump to search
Line 7: Line 7:


==== FLOODS/FLOOPS ====
==== FLOODS/FLOOPS ====
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 discretize 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] differential equations on a 1 to 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://en.wikipedia.org/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 addition 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 discretize 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] differential equations on a 1 to 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://en.wikipedia.org/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.


==== Tcl - Tool Control Language ====
==== Tcl - Tool Control Language ====

Revision as of 21:43, 4 August 2010

This is the main page for the FLOOXS (FLOOPS and FLOODS) wiki manual. The goal of this wiki is to instruct new FLOOXS users how to install FLOOXS and run simulations using the FLOOXS TCAD package; serve as a repository for working FLOOXS models; and provide a convenient place for user discussion regarding both TCAD models in general as well as the FLOOXS implementation.

Introduction

This manual is broken into several sections describing the commands that make up the FLorida Object Oriented Device and Process Simulator. FLOOXS uses the old unix wild card convention of x taking the place of either "P" or "D". The codes are built as a single executable and are configured with different sets of default variables for each purpose. New work in the Reliability MURI is aimed at combining the codes to understand device operation driven failure modes.

Commands in the manual are documented individually. It is best to start with examples that are similar to what you wish to do. These are linked to individual command descriptions for more detailed followup. The command list is also provided as a reference directly, if you are interested in more detail on the commands.

FLOODS/FLOOPS

FLOOXS is a Technology Computer Aided Design (TCAD) tool used for semiconductor process modeling and semiconductor device modeling that will discretize and solve a set of partial and ordinary differential equations differential equations on a 1 to 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.

Tcl - Tool Control Language

All of FLOODS/FLOOPS is built using tcl. A familiarity with tcl commands is essential for understanding how to do anything complex in FLOOPS and FLOODS. You can find many great tcl reference books and tcl command documentation is also available.

Alagator

Alagator is the scripting language that was developed as a way for FLOOXS users to easily control the physics in their simulations. This is where the real power of FLOOXS lies. These commands allow the user to easily set up a set of common process or semiconductor device equations. For example, the scripting language has multiple components that are called during execution of a diffusion command. The basic element is a description of a differential equation. The diffusion calls several procedures for a solution that allow these equations to be constructed at run time.

Support Commands

  • equation, The command that allows syntax checking and resolution checking of equation strings.
  • solution, Create and control generic solutions.

Installation

  • Installation on Ubuntu - Notes from a 64-bit Ubuntu 9.10 (Karmic Koala) current version FLOOXS installation with both Intel and AMD processors on 3/29/2010.
  • Installation on RedHat - (this version is outdated). Installation help and notes created as I did a clean install on a RedHat linux system. Your mileage may vary.

Workflow: How to create and run a FLOOXS simulation

1. Grid Generation

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

2. Add Solution Variables

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

3. Add Process or Device Models

4. Solve

  • diffuse
  • device - bias contacts and solve steady-state or transient

5. 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.

Troubleshooting

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

Full FLOOXS Examples

These are good introductory problems for beginners. Being able to work through these will introduce most simple concepts to users.

Command Reference Library

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

Command Reference Library

Development

  • New Developments - A brief list of the new enhancements since the last release.
  • Bugs - A list of current FLOOXS Bugs that need action
  • "To Do" List - Needed code enhancements for specific actions: all FLOOXS users are encouraged to contribute ideas.


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.

The UMFPACK package is copyrighted by Tim Davis, University of Florida, Computer and Information Sciences Department. (davis@cis.ufl.edu). Please contact Tim directly about redistribution of the UMFPACK software.

The tcl/tk package is in the public domain, and was developed by John Ousterhout at the University of California Berkeley.

Various included linear algebra packages are also public domain.

Contributors

Faculty

Ph.D Students

  • Daniel Cummings - 2010 - danieljc@ufl.edu (Device Simulation: Strained-Si, Single-Event Effects)
  • David Horton - 2010 - email
  • Nicole Rowsey - 2011 - nrowsey at ufl.edu (Device Simulation: Total Dose Radiation Effect in Oxides, MOS-Based Quantum Dot / Charge Qubit Devices, Multi-Gate Devices)
  • Ben Gilstad - 2012 - email
  • Ashish Kumar - 2013 - email

Post-Docs

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.

Recent Research Group Publications

Archive Section (Old Manual)


Getting started with Wiki

Consult the User's Guide for information on using the wiki software.