# Katabatic Documentation

# Katabatic - Routing Toolbox

List of all members | Public Member Functions
ChipTools Class Reference

Utilities for Chip Level Design. More...

## Public Member Functions

| ChipTools (Cell *)
bool | isChip () const
Cell * | getCell () const
Instance * | getCore () const
const Box & | getChipBb () const
const Box & | getLeftPadsBb () const
const Box & | getRightPadsBb () const
const Box & | getTopPadsBb () const
const Box & | getBottomPadsBb () const
const Torus & | getCorona () const
bool | intersectVPads (const Box &) const
bool | intersectHPads (const Box &) const

## Detailed Description

Utilities for Chip Level Design.

The ChipTools class provides a small set of utilities to ease the managment of a complete chip following the Alliance top hierarchical structure.

## Constructor & Destructor Documentation

## ◆ ChipTools()

ChipTools | ( | Cell * | cell | ) |

Create a ChipTool for `cell`.

References Cell::getAbutmentBox(), Entity::getBoundingBox(), DataBase::getDB(), Box::getHeight(), Net::getHorizontals(), Technology::getLayer(), Instance::getMasterCell(), Instance::getName(), Cell::getName(), Cell::getNet(), DataBase::getTechnology(), Box::getWidth(), Box::getXMax(), Box::getXMin(), Box::getYMax(), Box::getYMin(), Box::inflate(), and ChipTools::isChip().

## Member Function Documentation

## ◆ isChip()

bool isChip | ( |  | ) | const

inline

Returns: true if the Cell is truly a top level design. If not, this object is useless and does nothing.

Referenced by ChipTools::ChipTools(), KatabaticEngine::createDetailedGrid(), and KatabaticEngine::isChip().

## ◆ getCell()

Cell * getCell | ( |  | ) | const

inline

Returns: The top-level design.

## ◆ getCore()

Instance * getCore | ( |  | ) | const

inline

Returns: The instance of the core, that is, the only instance that is not a pad...

## ◆ getChipBb()

const Box & getChipBb | ( |  | ) | const

inline

Returns: The chip complete bounding box, this *is* simply the Cell bounding box.

## ◆ getLeftPadsBb()

const Box & getLeftPadsBb | ( |  | ) | const

inline

Returns: The bounding box enclosing all the pads on the left side of the chip.

Remark: This box is computed from the chip bounding box and the pad height.

## ◆ getRightPadsBb()

const Box & getRightPadsBb | ( |  | ) | const

inline

Returns: The bounding box enclosing all the pads on the right side of the chip.

Remark: This box is computed from the chip bounding box and the pad height.

## ◆ getTopPadsBb()

const Box & getTopPadsBb | ( |  | ) | const

inline

Returns: The bounding box enclosing all the pads on the top side of the chip.

Remark: This box is computed from the chip bounding box and the pad height.

## ◆ getBottomPadsBb()

const Box & getBottomPadsBb | ( |  | ) | const

inline

Returns: The bounding box enclosing all the pads on the bottom side of the chip.

Remark: This box is computed from the chip bounding box and the pad height.

## ◆ getCorona()

const Torus & getCorona | ( |  | ) | const

inline

Returns: The torus (in term of manhanttan distance) enclosed between the pad area and the core area.

## ◆ intersectVPads()

bool intersectVPads | ( | const Box & | box | ) | const

inline

Returns: true if `box` intersect either the left or right pad box.

References Box::intersect().

## ◆ intersectHPads()

bool intersectHPads | ( | const Box & | box | ) | const

inline

Returns: true if `box` intersect either the top or bottom pad box.

References Box::intersect().

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

- ChipTools.h
- ChipTools.cpp
- ChipTools.dox