# Hurricane Documentation

# Hurricane VLSI Database

List of all members | Static Public Member Functions
Hurricane::DiffusionLayer Class Reference

DiffusionLayer description (API) More...

Inheritance diagram for Hurricane::DiffusionLayer:
[legend]

## Static Public Member Functions

static DiffusionLayer * | create (Technology *technology, const Name &name, BasicLayer *activeLayer, BasicLayer *diffusionLayer, BasicLayer *wellLayer)

## Additional Inherited Members

Public Types inherited from Hurricane::Layer
typedef Hurricane::Mask< unsigned long long > | Mask
Public Member Functions inherited from Hurricane::Layer
Technology * | getTechnology () const
const Name & | getName () const
const Mask & | getMask () const
const Mask & | getExtractMask () const
const DbU::Unit & | getMinimalSize () const
const DbU::Unit & | getMinimalSpacing () const
virtual const Layer * | getTop () const
virtual const Layer * | getBottom () const
virtual const Layer * | getOpposite (const Layer *) const
Layer * | getMetalAbove (bool useSymbolic=true) const
Layer * | getMetalBelow (bool useSymbolic=true) const
Layer * | getCutAbove (bool useSymbolic=true) const
Layer * | getCutBelow (bool useSymbolic=true) const
bool | above (const Layer *layer) const
bool | below (const Layer *layer) const
bool | contains (const Layer *layer) const
bool | intersect (const Layer *layer) const
void | setName (const Name &name)
void | setMinimalSize (const DbU::Unit &minimalSize)
void | setMinimalSpacing (const DbU::Unit &minimalSpacing)
virtual void | setEnclosure (const BasicLayer *layer, DbU::Unit, uint32_t flags)
Public Member Functions inherited from Hurricane::DBo
virtual void | destroy ()
Property * | getProperty (const Name &) const
Properties | getProperties () const
bool | hasProperty () const
void | put (Property *)
void | remove (Property *)
void | removeProperty (const Name &)
void | clearProperties ()

## Detailed Description

DiffusionLayer description (API)

For a more complete description of the Layers objects, please refer to Layer Introduction.

DiffusionLayer is a symbolic layer that contains two or three layers, an active layer, a diffusion layer and an optional WELL layer.

The accessors functions:

- DiffusionLayer::getTop()
- DiffusionLayer::getBottom()
- DiffusionLayer::getOpposite()

Have no meaning here.

Only extention cap & extention width are used here. Enclosure is not used.

## Member Function Documentation

## ◆ create()

DiffusionLayer * Hurricane::DiffusionLayer::create | ( | Technology * | technology,
|  | const Name & | name,
|  | BasicLayer * | activeLayer,
|  | BasicLayer * | diffusionLayer,
|  | BasicLayer * | wellLayer
| ) |  |

static

creates and returns a new diffusion layer named `<name>`, composed of active & diffusion BasicLayer and an optional WELL BasicLayer. A NULL value indicates that no NWELL is used.

Caution: Throws an exception if the technology is null, if the name is
  empty, if a layer of same name already exists or if we overflow the capacity of the bit field associated to the layer mask.

The documentation for this class was generated from the following files:

- DiffusionLayer.h
- DiffusionLayer.dox