536 lines
50 KiB
TeX
536 lines
50 KiB
TeX
|
\hypertarget{classKatabatic_1_1KatabaticEngine}{}\section{Katabatic\+Engine Class Reference}
|
||
|
\label{classKatabatic_1_1KatabaticEngine}\index{Katabatic\+Engine@{Katabatic\+Engine}}
|
||
|
|
||
|
|
||
|
The \hyperlink{namespaceKatabatic}{Katabatic} Tool.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
Inheritance diagram for Katabatic\+Engine\+:\nopagebreak
|
||
|
\begin{figure}[H]
|
||
|
\begin{center}
|
||
|
\leavevmode
|
||
|
\includegraphics[width=168pt]{classKatabatic_1_1KatabaticEngine__inherit__graph}
|
||
|
\end{center}
|
||
|
\end{figure}
|
||
|
\subsection*{Public Types}
|
||
|
\begin{DoxyCompactItemize}
|
||
|
\item
|
||
|
typedef set$<$ \textbf{ Net} $\ast$, Net\+Compare\+By\+Name $>$ \hyperlink{classKatabatic_1_1KatabaticEngine_a92ed88f9aecd2f195089c4029fa8bcc7}{Net\+Set}
|
||
|
\end{DoxyCompactItemize}
|
||
|
\subsection*{Public Member Functions}
|
||
|
\begin{DoxyCompactItemize}
|
||
|
\item
|
||
|
bool \hyperlink{classKatabatic_1_1KatabaticEngine_a83a7793270669d2669222eac2caa7f93}{is\+G\+Metal} (const \textbf{ Layer} $\ast$) const
|
||
|
\item
|
||
|
bool \hyperlink{classKatabatic_1_1KatabaticEngine_ab6b7bc2b47ead460ac00a531451dc9cf}{is\+Chip} () const
|
||
|
\item
|
||
|
bool \hyperlink{classKatabatic_1_1KatabaticEngine_a0141bff96a4778a806d4eba5d256c32a}{is\+In\+Demo\+Mode} () const
|
||
|
\item
|
||
|
bool \hyperlink{classKatabatic_1_1KatabaticEngine_a9dec164d53fdee77f0f008133ecbd97f}{do\+Warn\+On\+G\+Cell\+Overload} () const
|
||
|
\item
|
||
|
bool \hyperlink{classKatabatic_1_1KatabaticEngine_a6bb0ac3c0ec9720a3519d43491939f97}{do\+Destroy\+Base\+Contact} () const
|
||
|
\item
|
||
|
bool \hyperlink{classKatabatic_1_1KatabaticEngine_a54d58d645317d43371f6b0bec1815e6b}{do\+Destroy\+Base\+Segment} () const
|
||
|
\item
|
||
|
bool \hyperlink{classKatabatic_1_1KatabaticEngine_a867e6dbfea5e5895a01ef71c66398b26}{do\+Destroy\+Tool} () const
|
||
|
\item
|
||
|
virtual const \textbf{ Name} \& \hyperlink{classKatabatic_1_1KatabaticEngine_a9e76ae5cee9320b65251387419c9432b}{get\+Name} () const
|
||
|
\item
|
||
|
\hyperlink{namespaceKatabatic_ab9e409db5feff0bdbc85e90e2a029cda}{Engine\+State} \hyperlink{classKatabatic_1_1KatabaticEngine_a878e8b694aa243a767c2f232799ec9b3}{get\+State} () const
|
||
|
\item
|
||
|
unsigned int \hyperlink{classKatabatic_1_1KatabaticEngine_a7132cd3f405dc24b3897b4396c8ecc92}{get\+Flags} (unsigned int mask) const
|
||
|
\item
|
||
|
Configuration $\ast$ \hyperlink{classKatabatic_1_1KatabaticEngine_adccd6ceec2c68234d3a824ad7ae3954e}{get\+Katabatic\+Configuration} ()
|
||
|
\item
|
||
|
virtual Configuration $\ast$ \hyperlink{classKatabatic_1_1KatabaticEngine_a9a7fbadfe526875680f698c76adfb128}{get\+Configuration} ()
|
||
|
\item
|
||
|
\textbf{ Routing\+Gauge} $\ast$ \hyperlink{classKatabatic_1_1KatabaticEngine_a171ed6fac01ac5067d4f1b770cc419cf}{get\+Routing\+Gauge} () const
|
||
|
\item
|
||
|
\textbf{ Routing\+Layer\+Gauge} $\ast$ \hyperlink{classKatabatic_1_1KatabaticEngine_a0b7c308ac7fccc21dd0401c6ce70a586}{get\+Layer\+Gauge} (size\+\_\+t depth) const
|
||
|
\item
|
||
|
const \textbf{ Layer} $\ast$ \hyperlink{classKatabatic_1_1KatabaticEngine_afa7ea850397e87889733ac959833b49f}{get\+Routing\+Layer} (size\+\_\+t depth) const
|
||
|
\item
|
||
|
\textbf{ Layer} $\ast$ \hyperlink{classKatabatic_1_1KatabaticEngine_a4c4549515aef37e81f2cc6537b931edc}{get\+Contact\+Layer} (size\+\_\+t depth) const
|
||
|
\item
|
||
|
\hyperlink{classKatabatic_1_1GCellGrid}{G\+Cell\+Grid} $\ast$ \hyperlink{classKatabatic_1_1KatabaticEngine_a9a56286f633fddd702d66563de457a4a}{get\+G\+Cell\+Grid} () const
|
||
|
\item
|
||
|
const \hyperlink{classKatabatic_1_1KatabaticEngine_a92ed88f9aecd2f195089c4029fa8bcc7}{Net\+Set} \& \hyperlink{classKatabatic_1_1KatabaticEngine_a8f661928f8f709552c8486d68ac33c55}{get\+Routing\+Nets} () const
|
||
|
\item
|
||
|
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1KatabaticEngine_a094b479155d3f30ec54e252c35dcffa3}{get\+Global\+Threshold} () const
|
||
|
\item
|
||
|
float \hyperlink{classKatabatic_1_1KatabaticEngine_a44d2c1fbd97dd09b102b461e906367a0}{get\+Saturate\+Ratio} () const
|
||
|
\item
|
||
|
size\+\_\+t \hyperlink{classKatabatic_1_1KatabaticEngine_a61977cc1fd981e7f1c6125189ed20509}{get\+Saturate\+Rp} () const
|
||
|
\item
|
||
|
\textbf{ Db\+U\+::\+Unit} \hyperlink{classKatabatic_1_1KatabaticEngine_ad9072cfa6215c92c9a9842270cf677c5}{get\+Extension\+Cap} () const
|
||
|
\item
|
||
|
const \hyperlink{classKatabatic_1_1ChipTools}{Chip\+Tools} \& \hyperlink{classKatabatic_1_1KatabaticEngine_a423f5f2214c8b9fe73da9a86b6f6d9b9}{get\+Chip\+Tools} () const
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_aecbe8bdcc61024a7539de3ea932c5e06}{xml\+Write\+G\+Cell\+Grid} (ostream \&)
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_a78394ac380a0fa462f268dcc2becc50e}{xml\+Write\+G\+Cell\+Grid} (const string \&)
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_a2391b9bfcb773398b9661b5ac0ef1a30}{set\+State} (\hyperlink{namespaceKatabatic_ab9e409db5feff0bdbc85e90e2a029cda}{Engine\+State} state)
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_aeb14f94914af58657a0dc2f50ec98df5}{set\+Flags} (unsigned int)
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_a1a6fac115cb81db48e3ac9ffa0721bb5}{unset\+Flags} (unsigned int)
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_a1bd1e0104b73d4c558b0e121002796a6}{set\+Global\+Threshold} (\textbf{ Db\+U\+::\+Unit})
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_ac2b780e06975ce8a0d6ca96f20cb971f}{set\+Saturate\+Ratio} (float)
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_ade227e828b8c8fbfce478e353ca3ca59}{set\+Saturate\+Rp} (size\+\_\+t)
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_a2ea4b4fc379fb85a13890db451cbf93a}{print\+Measures} (const string \&) const
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_a1e9bb62be35c6a415a1950c72c1964ef}{refresh} (unsigned int flags=\hyperlink{namespaceKatabatic_a2af2ad6b6441614038caf59d04b3b217af314588109fcc5f5ee1c42e5fd4d0ed5}{Kb\+Open\+Session})
|
||
|
\item
|
||
|
virtual void \hyperlink{classKatabatic_1_1KatabaticEngine_a1b7d8ed09a198f7afd6e3ac911f6eb37}{create\+Detailed\+Grid} ()
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_aaba3b9450c85634131146fb507089f2d}{make\+Power\+Rails} ()
|
||
|
\item
|
||
|
virtual void \hyperlink{classKatabatic_1_1KatabaticEngine_a583925cfe4bbadcc1c24fe619debce09}{load\+Global\+Routing} (unsigned int method)
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_a145b36b18fc9149980c5d6bd4bd10e0d}{slacken\+Border} (\textbf{ Box} bb, \textbf{ Layer\+::\+Mask}, unsigned int flags)
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_ac40754d4a9bd0cf327b5fa088e993897}{slacken\+Block\+Ios} (\textbf{ Instance} $\ast$core)
|
||
|
\item
|
||
|
bool \hyperlink{classKatabatic_1_1KatabaticEngine_ac934a049003c9d5d2380f44ff393e458}{move\+Up\+Net\+Trunk} (\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$, set$<$ \textbf{ Net} $\ast$$>$ \&global\+Nets, \hyperlink{classKatabatic_1_1GCell_aacb1c215b203bfba5729f135b3221d40}{G\+Cell\+::\+Set\+Index} \&invalidateds)
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_a77833ce938a430785ba869eedbc2300c}{layer\+Assign} (unsigned int method)
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_a6957a5830a4d6f1b2daf83a7d98df601}{compute\+Net\+Constraints} (\textbf{ Net} $\ast$)
|
||
|
\item
|
||
|
void \hyperlink{classKatabatic_1_1KatabaticEngine_ad6b9f7d94ee4a88f12c485e48d1e644a}{to\+Optimals} (\textbf{ Net} $\ast$)
|
||
|
\item
|
||
|
virtual void \hyperlink{classKatabatic_1_1KatabaticEngine_a468eddb683c04cfeea1c5124a39e1f86}{finalize\+Layout} ()
|
||
|
\end{DoxyCompactItemize}
|
||
|
\subsection*{Static Public Member Functions}
|
||
|
\begin{DoxyCompactItemize}
|
||
|
\item
|
||
|
static \hyperlink{classKatabatic_1_1KatabaticEngine}{Katabatic\+Engine} $\ast$ \hyperlink{classKatabatic_1_1KatabaticEngine_ab877a64c314024602cfb04631ebfbfc4}{create} (\textbf{ Cell} $\ast$)
|
||
|
\item
|
||
|
static const \textbf{ Name} \& \hyperlink{classKatabatic_1_1KatabaticEngine_a802eee6265da8d536db52d412f8a4afd}{static\+Get\+Name} ()
|
||
|
\end{DoxyCompactItemize}
|
||
|
|
||
|
|
||
|
\subsection{Detailed Description}
|
||
|
The \hyperlink{namespaceKatabatic}{Katabatic} Tool.
|
||
|
|
||
|
\hypertarget{classKatabatic_1_1KatabaticEngine_secEngineStates}{}\subsection{States of Katabatic\+Engine}\label{classKatabatic_1_1KatabaticEngine_secEngineStates}
|
||
|
During it\textquotesingle{}s lifecycle, the engine go through a serie of states. It only can go forward between states.
|
||
|
\begin{DoxyItemize}
|
||
|
\item {\bfseries Engine\+Creation} \+: just after C++ object creation until the global routing is loaded.
|
||
|
\item {\bfseries Engine\+Global\+Loaded} \+: {\itshape after} the global routing has been done. This state must be set by an external tool, \hyperlink{namespaceKatabatic}{Katabatic} cannot know by itself when the global routing has been done (see Kite).
|
||
|
\item {\bfseries Engine\+Active} \+: {\itshape after} the global routing has been converted into the \hyperlink{namespaceKatabatic}{Katabatic} data structure. At this point the tool is ready to run.
|
||
|
\item {\bfseries Engine\+Driving} \+: {\itshape during} the stage of stripping all the decorations the tool has added over the Hurricane data structure (mostly\+: \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} \& \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment}).
|
||
|
\item {\bfseries Engine\+Gutted} \+: {\itshape after} the tool decorations have been removed. The tool is now useless and can only be destroyed.
|
||
|
\item {\bfseries Engine\+Pre\+Destroying} \+: this special state is reached when going straight from Engine\+Active to the destructor, that is, skipping the Engine\+Driving state. That means we {\itshape do not} want to save whatever routing has been done. In that case, not only the tool decorations are destroyeds, but also the Hurricane data-\/structures they relies on (Contact, Segments).
|
||
|
\end{DoxyItemize}\hypertarget{classKatabatic_1_1KatabaticEngine_secEngineImpl}{}\subsection{Katabatic\+Engine Implementation Details}\label{classKatabatic_1_1KatabaticEngine_secEngineImpl}
|
||
|
Due to the size of the code and the fact that the main body of some methods do not need to be present in the class, the implementation of \hyperlink{classKatabatic_1_1KatabaticEngine}{Katabatic\+Engine} is split in several files. The list below summarize them\+:
|
||
|
\begin{DoxyItemize}
|
||
|
\item {\ttfamily Katabatic\+Engine.\+cpp} \+: the core of the class, methods that really need their bodies here.
|
||
|
\item {\ttfamily Power\+Rails.\+cpp} \+: utilities to construct an abstract from all the power rails through the hierarchy.
|
||
|
\item {\ttfamily Layer\+Assign.\+cpp} \+: layer assignement related methods and helpers.
|
||
|
\item {\ttfamily Load\+Gr\+By\+Net.\+cpp} \+: global routing loader, transform global routing into \hyperlink{namespaceKatabatic}{Katabatic} data-\/structure.
|
||
|
\item {\ttfamily Net\+Constraints.\+cpp} \+: compute the topological constraints of all Auto\+Segment/\+Auto\+Contact of a Net.
|
||
|
\item {\ttfamily Net\+Optimals.\+cpp} \+: compute the optimal positions of all \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} of a Net.
|
||
|
\end{DoxyItemize}
|
||
|
|
||
|
\subsection{Member Typedef Documentation}
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a92ed88f9aecd2f195089c4029fa8bcc7}\label{classKatabatic_1_1KatabaticEngine_a92ed88f9aecd2f195089c4029fa8bcc7}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!Net\+Set@{Net\+Set}}
|
||
|
\index{Net\+Set@{Net\+Set}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{Net\+Set}{NetSet}}
|
||
|
{\footnotesize\ttfamily set$<$ \textbf{ Net} $\ast$, Net\+Compare\+By\+Name $>$ \hyperlink{classKatabatic_1_1KatabaticEngine_a92ed88f9aecd2f195089c4029fa8bcc7}{Net\+Set}}
|
||
|
|
||
|
Set of Net to be routed, alphabetically sorteds.
|
||
|
|
||
|
\subsection{Member Function Documentation}
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_ab877a64c314024602cfb04631ebfbfc4}\label{classKatabatic_1_1KatabaticEngine_ab877a64c314024602cfb04631ebfbfc4}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!create@{create}}
|
||
|
\index{create@{create}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{create()}{create()}}
|
||
|
{\footnotesize\ttfamily \hyperlink{classKatabatic_1_1KatabaticEngine}{Katabatic\+Engine} $\ast$ create (\begin{DoxyParamCaption}\item[{\textbf{ Cell} $\ast$}]{cell }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
|
||
|
|
||
|
Create a \hyperlink{classKatabatic_1_1KatabaticEngine}{Katabatic\+Engine} on {\ttfamily cell}.
|
||
|
|
||
|
References Auto\+Contact\+::base(), Auto\+Segment\+::base(), Katabatic\+::\+Engine\+Active, Katabatic\+::\+Engine\+Driving, Katabatic\+::\+Engine\+Gutted, and Katabatic\+::\+Engine\+Pre\+Destroying.
|
||
|
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a802eee6265da8d536db52d412f8a4afd}\label{classKatabatic_1_1KatabaticEngine_a802eee6265da8d536db52d412f8a4afd}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!static\+Get\+Name@{static\+Get\+Name}}
|
||
|
\index{static\+Get\+Name@{static\+Get\+Name}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{static\+Get\+Name()}{staticGetName()}}
|
||
|
{\footnotesize\ttfamily const \textbf{ Name} \& static\+Get\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The unique string identifier for the \hyperlink{classKatabatic_1_1KatabaticEngine}{Katabatic\+Engine} class of Tool\+Engine. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a83a7793270669d2669222eac2caa7f93}\label{classKatabatic_1_1KatabaticEngine_a83a7793270669d2669222eac2caa7f93}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!is\+G\+Metal@{is\+G\+Metal}}
|
||
|
\index{is\+G\+Metal@{is\+G\+Metal}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{is\+G\+Metal()}{isGMetal()}}
|
||
|
{\footnotesize\ttfamily bool is\+G\+Metal (\begin{DoxyParamCaption}\item[{const \textbf{ Layer} $\ast$}]{layer }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} {\bfseries true} if {\ttfamily layer} is one of the special (fake) metals used to build the global routing.
|
||
|
|
||
|
Referenced by Auto\+Segment\+::create().
|
||
|
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_ab6b7bc2b47ead460ac00a531451dc9cf}\label{classKatabatic_1_1KatabaticEngine_ab6b7bc2b47ead460ac00a531451dc9cf}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!is\+Chip@{is\+Chip}}
|
||
|
\index{is\+Chip@{is\+Chip}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{is\+Chip()}{isChip()}}
|
||
|
{\footnotesize\ttfamily bool is\+Chip (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} {\bfseries true} if the hierarchy top-\/level of the Cell matches the one of a complete design (i.\+e. pads and one core instance). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a0141bff96a4778a806d4eba5d256c32a}\label{classKatabatic_1_1KatabaticEngine_a0141bff96a4778a806d4eba5d256c32a}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!is\+In\+Demo\+Mode@{is\+In\+Demo\+Mode}}
|
||
|
\index{is\+In\+Demo\+Mode@{is\+In\+Demo\+Mode}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{is\+In\+Demo\+Mode()}{isInDemoMode()}}
|
||
|
{\footnotesize\ttfamily bool is\+In\+Demo\+Mode (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} {\bfseries true} if the tool is in demo mode, that is suppress almost all warning and debug messages. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a9dec164d53fdee77f0f008133ecbd97f}\label{classKatabatic_1_1KatabaticEngine_a9dec164d53fdee77f0f008133ecbd97f}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!do\+Warn\+On\+G\+Cell\+Overload@{do\+Warn\+On\+G\+Cell\+Overload}}
|
||
|
\index{do\+Warn\+On\+G\+Cell\+Overload@{do\+Warn\+On\+G\+Cell\+Overload}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{do\+Warn\+On\+G\+Cell\+Overload()}{doWarnOnGCellOverload()}}
|
||
|
{\footnotesize\ttfamily bool do\+Warn\+On\+G\+Cell\+Overload (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} {\bfseries true} if the tool should issue a warning when a \hyperlink{classKatabatic_1_1GCell}{G\+Cell} is overloaded (overload could be transient). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a6bb0ac3c0ec9720a3519d43491939f97}\label{classKatabatic_1_1KatabaticEngine_a6bb0ac3c0ec9720a3519d43491939f97}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!do\+Destroy\+Base\+Contact@{do\+Destroy\+Base\+Contact}}
|
||
|
\index{do\+Destroy\+Base\+Contact@{do\+Destroy\+Base\+Contact}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{do\+Destroy\+Base\+Contact()}{doDestroyBaseContact()}}
|
||
|
{\footnotesize\ttfamily bool do\+Destroy\+Base\+Contact (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} {\bfseries true} if the Engine\+Destroy\+Base\+Contact is set, meaning that when an \hyperlink{classKatabatic_1_1AutoContact}{Auto\+Contact} is destroyed, the Contact it decorates is destroyed altogether. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a54d58d645317d43371f6b0bec1815e6b}\label{classKatabatic_1_1KatabaticEngine_a54d58d645317d43371f6b0bec1815e6b}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!do\+Destroy\+Base\+Segment@{do\+Destroy\+Base\+Segment}}
|
||
|
\index{do\+Destroy\+Base\+Segment@{do\+Destroy\+Base\+Segment}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{do\+Destroy\+Base\+Segment()}{doDestroyBaseSegment()}}
|
||
|
{\footnotesize\ttfamily bool do\+Destroy\+Base\+Segment (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} {\bfseries true} if the Engine\+Destroy\+Base\+Segment is set, meaning that when an \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} is destroyed, the Segment it decorates is destroyed altogether. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a867e6dbfea5e5895a01ef71c66398b26}\label{classKatabatic_1_1KatabaticEngine_a867e6dbfea5e5895a01ef71c66398b26}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!do\+Destroy\+Tool@{do\+Destroy\+Tool}}
|
||
|
\index{do\+Destroy\+Tool@{do\+Destroy\+Tool}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{do\+Destroy\+Tool()}{doDestroyTool()}}
|
||
|
{\footnotesize\ttfamily bool do\+Destroy\+Tool (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} {\bfseries true} if the tool state is beyond Engine\+State\+Gutted, that is, only waits for {\ttfamily \textbf{ destroy()}} to be called.
|
||
|
|
||
|
References Katabatic\+::\+Engine\+Gutted.
|
||
|
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a9e76ae5cee9320b65251387419c9432b}\label{classKatabatic_1_1KatabaticEngine_a9e76ae5cee9320b65251387419c9432b}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Name@{get\+Name}}
|
||
|
\index{get\+Name@{get\+Name}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Name()}{getName()}}
|
||
|
{\footnotesize\ttfamily const \textbf{ Name} \& get\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The unique string identifier for the \hyperlink{classKatabatic_1_1KatabaticEngine}{Katabatic\+Engine} class of Tool\+Engine.
|
||
|
|
||
|
Implements \textbf{ Tool\+Engine}.
|
||
|
|
||
|
|
||
|
|
||
|
References Katabatic\+::\+Engine\+Creation.
|
||
|
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a878e8b694aa243a767c2f232799ec9b3}\label{classKatabatic_1_1KatabaticEngine_a878e8b694aa243a767c2f232799ec9b3}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+State@{get\+State}}
|
||
|
\index{get\+State@{get\+State}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+State()}{getState()}}
|
||
|
{\footnotesize\ttfamily \hyperlink{namespaceKatabatic_ab9e409db5feff0bdbc85e90e2a029cda}{Engine\+State} get\+State (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The state the tool is currently in. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a7132cd3f405dc24b3897b4396c8ecc92}\label{classKatabatic_1_1KatabaticEngine_a7132cd3f405dc24b3897b4396c8ecc92}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Flags@{get\+Flags}}
|
||
|
\index{get\+Flags@{get\+Flags}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Flags()}{getFlags()}}
|
||
|
{\footnotesize\ttfamily unsigned int get\+Flags (\begin{DoxyParamCaption}\item[{unsigned int}]{mask }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The {\itshape anded} combination of the tool flags and {\ttfamily mask}. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_adccd6ceec2c68234d3a824ad7ae3954e}\label{classKatabatic_1_1KatabaticEngine_adccd6ceec2c68234d3a824ad7ae3954e}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Katabatic\+Configuration@{get\+Katabatic\+Configuration}}
|
||
|
\index{get\+Katabatic\+Configuration@{get\+Katabatic\+Configuration}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Katabatic\+Configuration()}{getKatabaticConfiguration()}}
|
||
|
{\footnotesize\ttfamily Configuration $\ast$ get\+Katabatic\+Configuration (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The Configuration of \hyperlink{namespaceKatabatic}{Katabatic}. In this class it is redundant with \hyperlink{classKatabatic_1_1KatabaticEngine_a9a7fbadfe526875680f698c76adfb128}{get\+Configuration()}, but may be useful in derived classes. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a9a7fbadfe526875680f698c76adfb128}\label{classKatabatic_1_1KatabaticEngine_a9a7fbadfe526875680f698c76adfb128}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Configuration@{get\+Configuration}}
|
||
|
\index{get\+Configuration@{get\+Configuration}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Configuration()}{getConfiguration()}}
|
||
|
{\footnotesize\ttfamily Configuration $\ast$ get\+Configuration (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The Configuration of the current Tool\+Engine.
|
||
|
|
||
|
References Net\+::get\+Name(), Net\+::\+Type\+::\+G\+R\+O\+U\+ND, Alliance\+Framework\+::is\+B\+L\+O\+C\+K\+A\+G\+E(), and Net\+::\+Type\+::\+P\+O\+W\+ER.
|
||
|
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a171ed6fac01ac5067d4f1b770cc419cf}\label{classKatabatic_1_1KatabaticEngine_a171ed6fac01ac5067d4f1b770cc419cf}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Routing\+Gauge@{get\+Routing\+Gauge}}
|
||
|
\index{get\+Routing\+Gauge@{get\+Routing\+Gauge}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Routing\+Gauge()}{getRoutingGauge()}}
|
||
|
{\footnotesize\ttfamily \textbf{ Routing\+Gauge} $\ast$ get\+Routing\+Gauge (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The Routing\+Gauge (Configuration shortcut).
|
||
|
|
||
|
Referenced by Session\+::get(), and G\+Cell\+::translate().
|
||
|
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a0b7c308ac7fccc21dd0401c6ce70a586}\label{classKatabatic_1_1KatabaticEngine_a0b7c308ac7fccc21dd0401c6ce70a586}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Layer\+Gauge@{get\+Layer\+Gauge}}
|
||
|
\index{get\+Layer\+Gauge@{get\+Layer\+Gauge}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Layer\+Gauge()}{getLayerGauge()}}
|
||
|
{\footnotesize\ttfamily \textbf{ Routing\+Layer\+Gauge} $\ast$ get\+Layer\+Gauge (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{depth }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The Routing\+Layer\+Gauge associated to {\ttfamily depth} (Configuration shortcut). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_afa7ea850397e87889733ac959833b49f}\label{classKatabatic_1_1KatabaticEngine_afa7ea850397e87889733ac959833b49f}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Routing\+Layer@{get\+Routing\+Layer}}
|
||
|
\index{get\+Routing\+Layer@{get\+Routing\+Layer}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Routing\+Layer()}{getRoutingLayer()}}
|
||
|
{\footnotesize\ttfamily const \textbf{ Layer} $\ast$ get\+Routing\+Layer (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{depth }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The routing Layer associated to {\ttfamily depth} (Configuration shortcut). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a4c4549515aef37e81f2cc6537b931edc}\label{classKatabatic_1_1KatabaticEngine_a4c4549515aef37e81f2cc6537b931edc}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Contact\+Layer@{get\+Contact\+Layer}}
|
||
|
\index{get\+Contact\+Layer@{get\+Contact\+Layer}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Contact\+Layer()}{getContactLayer()}}
|
||
|
{\footnotesize\ttfamily \textbf{ Layer} $\ast$ get\+Contact\+Layer (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{depth }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The contact Layer associated to {\ttfamily depth} (Configuration shortcut). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a9a56286f633fddd702d66563de457a4a}\label{classKatabatic_1_1KatabaticEngine_a9a56286f633fddd702d66563de457a4a}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+G\+Cell\+Grid@{get\+G\+Cell\+Grid}}
|
||
|
\index{get\+G\+Cell\+Grid@{get\+G\+Cell\+Grid}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+G\+Cell\+Grid()}{getGCellGrid()}}
|
||
|
{\footnotesize\ttfamily \hyperlink{classKatabatic_1_1GCellGrid}{G\+Cell\+Grid} $\ast$ get\+G\+Cell\+Grid (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The \hyperlink{classKatabatic_1_1GCellGrid}{G\+Cell\+Grid}.
|
||
|
|
||
|
Referenced by anonymous\+\_\+namespace\{\+Load\+Gr\+By\+Net.\+cpp\}\+::single\+G\+Cell().
|
||
|
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a8f661928f8f709552c8486d68ac33c55}\label{classKatabatic_1_1KatabaticEngine_a8f661928f8f709552c8486d68ac33c55}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Routing\+Nets@{get\+Routing\+Nets}}
|
||
|
\index{get\+Routing\+Nets@{get\+Routing\+Nets}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Routing\+Nets()}{getRoutingNets()}}
|
||
|
{\footnotesize\ttfamily const \hyperlink{classKatabatic_1_1KatabaticEngine_a92ed88f9aecd2f195089c4029fa8bcc7}{Net\+Set} \& get\+Routing\+Nets (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The set of nets to be routeds. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a094b479155d3f30ec54e252c35dcffa3}\label{classKatabatic_1_1KatabaticEngine_a094b479155d3f30ec54e252c35dcffa3}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Global\+Threshold@{get\+Global\+Threshold}}
|
||
|
\index{get\+Global\+Threshold@{get\+Global\+Threshold}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Global\+Threshold()}{getGlobalThreshold()}}
|
||
|
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+Global\+Threshold (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The length above which a global wire is moved up in the layer assignment stage (Configuration shortcut). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a44d2c1fbd97dd09b102b461e906367a0}\label{classKatabatic_1_1KatabaticEngine_a44d2c1fbd97dd09b102b461e906367a0}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Saturate\+Ratio@{get\+Saturate\+Ratio}}
|
||
|
\index{get\+Saturate\+Ratio@{get\+Saturate\+Ratio}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Saturate\+Ratio()}{getSaturateRatio()}}
|
||
|
{\footnotesize\ttfamily float get\+Saturate\+Ratio (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The ratio above which a \hyperlink{classKatabatic_1_1GCell}{G\+Cell} is considered to be saturated (Configuration shortcut). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a61977cc1fd981e7f1c6125189ed20509}\label{classKatabatic_1_1KatabaticEngine_a61977cc1fd981e7f1c6125189ed20509}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Saturate\+Rp@{get\+Saturate\+Rp}}
|
||
|
\index{get\+Saturate\+Rp@{get\+Saturate\+Rp}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Saturate\+Rp()}{getSaturateRp()}}
|
||
|
{\footnotesize\ttfamily size\+\_\+t get\+Saturate\+Rp (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The number of Routing\+Pad above which a \hyperlink{classKatabatic_1_1GCell}{G\+Cell} is saturated, causing extras global segments to be moved up. (Configuration shortcut). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_ad9072cfa6215c92c9a9842270cf677c5}\label{classKatabatic_1_1KatabaticEngine_ad9072cfa6215c92c9a9842270cf677c5}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Extension\+Cap@{get\+Extension\+Cap}}
|
||
|
\index{get\+Extension\+Cap@{get\+Extension\+Cap}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Extension\+Cap()}{getExtensionCap()}}
|
||
|
{\footnotesize\ttfamily \textbf{ Db\+U\+::\+Unit} get\+Extension\+Cap (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The wires extension cap, same for all layers for the time beeing (Configuration shortcut). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a423f5f2214c8b9fe73da9a86b6f6d9b9}\label{classKatabatic_1_1KatabaticEngine_a423f5f2214c8b9fe73da9a86b6f6d9b9}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!get\+Chip\+Tools@{get\+Chip\+Tools}}
|
||
|
\index{get\+Chip\+Tools@{get\+Chip\+Tools}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{get\+Chip\+Tools()}{getChipTools()}}
|
||
|
{\footnotesize\ttfamily const \hyperlink{classKatabatic_1_1ChipTools}{Chip\+Tools} \& get\+Chip\+Tools (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
{\bfseries Returns\+:} The chip tools (for whole designs). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_aecbe8bdcc61024a7539de3ea932c5e06}\label{classKatabatic_1_1KatabaticEngine_aecbe8bdcc61024a7539de3ea932c5e06}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!xml\+Write\+G\+Cell\+Grid@{xml\+Write\+G\+Cell\+Grid}}
|
||
|
\index{xml\+Write\+G\+Cell\+Grid@{xml\+Write\+G\+Cell\+Grid}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{xml\+Write\+G\+Cell\+Grid()}{xmlWriteGCellGrid()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
|
||
|
{\footnotesize\ttfamily void xml\+Write\+G\+Cell\+Grid (\begin{DoxyParamCaption}\item[{ostream \&}]{o }\end{DoxyParamCaption})}
|
||
|
|
||
|
Write in a stream all informations on the G\+Cells in X\+ML format. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a78394ac380a0fa462f268dcc2becc50e}\label{classKatabatic_1_1KatabaticEngine_a78394ac380a0fa462f268dcc2becc50e}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!xml\+Write\+G\+Cell\+Grid@{xml\+Write\+G\+Cell\+Grid}}
|
||
|
\index{xml\+Write\+G\+Cell\+Grid@{xml\+Write\+G\+Cell\+Grid}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{xml\+Write\+G\+Cell\+Grid()}{xmlWriteGCellGrid()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
|
||
|
{\footnotesize\ttfamily void xml\+Write\+G\+Cell\+Grid (\begin{DoxyParamCaption}\item[{const string \&}]{file\+Name }\end{DoxyParamCaption})}
|
||
|
|
||
|
Write in a file all informations on the G\+Cells in X\+ML format. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a2391b9bfcb773398b9661b5ac0ef1a30}\label{classKatabatic_1_1KatabaticEngine_a2391b9bfcb773398b9661b5ac0ef1a30}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!set\+State@{set\+State}}
|
||
|
\index{set\+State@{set\+State}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{set\+State()}{setState()}}
|
||
|
{\footnotesize\ttfamily void set\+State (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceKatabatic_ab9e409db5feff0bdbc85e90e2a029cda}{Engine\+State}}]{state }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
Force the state of the tool. Must be used with caution, as no sanity checks are performeds. This method is normally invoked from inside the \hyperlink{classKatabatic_1_1KatabaticEngine}{Katabatic\+Engine} various methods. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_aeb14f94914af58657a0dc2f50ec98df5}\label{classKatabatic_1_1KatabaticEngine_aeb14f94914af58657a0dc2f50ec98df5}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!set\+Flags@{set\+Flags}}
|
||
|
\index{set\+Flags@{set\+Flags}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{set\+Flags()}{setFlags()}}
|
||
|
{\footnotesize\ttfamily void set\+Flags (\begin{DoxyParamCaption}\item[{unsigned int}]{flags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
Set the flags given in {\ttfamily flags}. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a1a6fac115cb81db48e3ac9ffa0721bb5}\label{classKatabatic_1_1KatabaticEngine_a1a6fac115cb81db48e3ac9ffa0721bb5}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!unset\+Flags@{unset\+Flags}}
|
||
|
\index{unset\+Flags@{unset\+Flags}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{unset\+Flags()}{unsetFlags()}}
|
||
|
{\footnotesize\ttfamily void unset\+Flags (\begin{DoxyParamCaption}\item[{unsigned int}]{flags }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
Reset the flags given in {\ttfamily flags}. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a1bd1e0104b73d4c558b0e121002796a6}\label{classKatabatic_1_1KatabaticEngine_a1bd1e0104b73d4c558b0e121002796a6}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!set\+Global\+Threshold@{set\+Global\+Threshold}}
|
||
|
\index{set\+Global\+Threshold@{set\+Global\+Threshold}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{set\+Global\+Threshold()}{setGlobalThreshold()}}
|
||
|
{\footnotesize\ttfamily void set\+Global\+Threshold (\begin{DoxyParamCaption}\item[{\textbf{ Db\+U\+::\+Unit}}]{threshold }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
(Configuration shortcut). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_ac2b780e06975ce8a0d6ca96f20cb971f}\label{classKatabatic_1_1KatabaticEngine_ac2b780e06975ce8a0d6ca96f20cb971f}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!set\+Saturate\+Ratio@{set\+Saturate\+Ratio}}
|
||
|
\index{set\+Saturate\+Ratio@{set\+Saturate\+Ratio}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{set\+Saturate\+Ratio()}{setSaturateRatio()}}
|
||
|
{\footnotesize\ttfamily void set\+Saturate\+Ratio (\begin{DoxyParamCaption}\item[{float}]{ratio }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
(Configuration shortcut). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_ade227e828b8c8fbfce478e353ca3ca59}\label{classKatabatic_1_1KatabaticEngine_ade227e828b8c8fbfce478e353ca3ca59}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!set\+Saturate\+Rp@{set\+Saturate\+Rp}}
|
||
|
\index{set\+Saturate\+Rp@{set\+Saturate\+Rp}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{set\+Saturate\+Rp()}{setSaturateRp()}}
|
||
|
{\footnotesize\ttfamily void set\+Saturate\+Rp (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{threshold }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}
|
||
|
|
||
|
(Configuration shortcut). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a2ea4b4fc379fb85a13890db451cbf93a}\label{classKatabatic_1_1KatabaticEngine_a2ea4b4fc379fb85a13890db451cbf93a}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!print\+Measures@{print\+Measures}}
|
||
|
\index{print\+Measures@{print\+Measures}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{print\+Measures()}{printMeasures()}}
|
||
|
{\footnotesize\ttfamily void print\+Measures (\begin{DoxyParamCaption}\item[{const string \&}]{tag }\end{DoxyParamCaption}) const}
|
||
|
|
||
|
Print memory \& time measurement on ``cmess1``. If {\ttfamily tag} is not empty, also adds the measurement to the internal table (with {\ttfamily tag} as label). \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a1e9bb62be35c6a415a1950c72c1964ef}\label{classKatabatic_1_1KatabaticEngine_a1e9bb62be35c6a415a1950c72c1964ef}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!refresh@{refresh}}
|
||
|
\index{refresh@{refresh}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{refresh()}{refresh()}}
|
||
|
{\footnotesize\ttfamily void refresh (\begin{DoxyParamCaption}\item[{unsigned int}]{flags = {\ttfamily \hyperlink{namespaceKatabatic_a2af2ad6b6441614038caf59d04b3b217af314588109fcc5f5ee1c42e5fd4d0ed5}{Kb\+Open\+Session}} }\end{DoxyParamCaption})}
|
||
|
|
||
|
In case the tool is associated with a graphic display, trigger a full redraw of the Cell. Slow the router but allow to see work in progress... If {\ttfamily flags} {\itshape do not} contains {\ttfamily Kb\+Open\+Session} the refresh operation will not be enclosed inside it\textquotesingle{}s own session. This assumes that a session is already opened.
|
||
|
|
||
|
References Katabatic\+::\+Engine\+Driving.
|
||
|
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a1b7d8ed09a198f7afd6e3ac911f6eb37}\label{classKatabatic_1_1KatabaticEngine_a1b7d8ed09a198f7afd6e3ac911f6eb37}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!create\+Detailed\+Grid@{create\+Detailed\+Grid}}
|
||
|
\index{create\+Detailed\+Grid@{create\+Detailed\+Grid}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{create\+Detailed\+Grid()}{createDetailedGrid()}}
|
||
|
{\footnotesize\ttfamily void create\+Detailed\+Grid (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
|
||
|
|
||
|
Allocate the \hyperlink{classKatabatic_1_1GCellGrid}{G\+Cell\+Grid}. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_aaba3b9450c85634131146fb507089f2d}\label{classKatabatic_1_1KatabaticEngine_aaba3b9450c85634131146fb507089f2d}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!make\+Power\+Rails@{make\+Power\+Rails}}
|
||
|
\index{make\+Power\+Rails@{make\+Power\+Rails}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{make\+Power\+Rails()}{makePowerRails()}}
|
||
|
{\footnotesize\ttfamily void make\+Power\+Rails (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}
|
||
|
|
||
|
Detect all the aligned segments of same width that compose power rails, unificate them and copy them at the design top level. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a583925cfe4bbadcc1c24fe619debce09}\label{classKatabatic_1_1KatabaticEngine_a583925cfe4bbadcc1c24fe619debce09}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!load\+Global\+Routing@{load\+Global\+Routing}}
|
||
|
\index{load\+Global\+Routing@{load\+Global\+Routing}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{load\+Global\+Routing()}{loadGlobalRouting()}}
|
||
|
{\footnotesize\ttfamily void load\+Global\+Routing (\begin{DoxyParamCaption}\item[{unsigned int}]{method }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
|
||
|
|
||
|
|
||
|
\begin{DoxyParams}{Parameters}
|
||
|
{\em method} & the loading algorithm \\
|
||
|
\hline
|
||
|
{\em nets} & the set of nets to route.\\
|
||
|
\hline
|
||
|
\end{DoxyParams}
|
||
|
Convert the global routing into the initial detailed routing. For the time beeing, only one loading algorithm is available\+: {\itshape net by net} (Engine\+Load\+Gr\+By\+Net). Only Net given in {\ttfamily nets} are routeds. If {\ttfamily nets} is empty then all ordinary nets are routeds. In either cases the set of nets to route is pruned from any power, ground or clock signals.
|
||
|
|
||
|
\begin{DoxyParagraph}{Remark\+:}
|
||
|
The tool state must be {\bfseries Engine\+Global\+Loaded} {\itshape before} calling this method and will be set to {\bfseries Engine\+Active} on exit.
|
||
|
\end{DoxyParagraph}
|
||
|
|
||
|
|
||
|
References Katabatic\+::\+Engine\+Active, and Katabatic\+::\+Engine\+Global\+Loaded.
|
||
|
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a145b36b18fc9149980c5d6bd4bd10e0d}\label{classKatabatic_1_1KatabaticEngine_a145b36b18fc9149980c5d6bd4bd10e0d}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!slacken\+Border@{slacken\+Border}}
|
||
|
\index{slacken\+Border@{slacken\+Border}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{slacken\+Border()}{slackenBorder()}}
|
||
|
{\footnotesize\ttfamily void slacken\+Border (\begin{DoxyParamCaption}\item[{\textbf{ Box}}]{bb, }\item[{\textbf{ Layer\+::\+Mask}}]{mask, }\item[{unsigned int}]{flags }\end{DoxyParamCaption})}
|
||
|
|
||
|
|
||
|
\begin{DoxyParams}{Parameters}
|
||
|
{\em bb} & The bounding box, defines the edges. \\
|
||
|
\hline
|
||
|
{\em mask} & Consider only layers that are fully included in that mask. \\
|
||
|
\hline
|
||
|
{\em flags} & Consider only segment in that direction.\\
|
||
|
\hline
|
||
|
\end{DoxyParams}
|
||
|
Perform a preventive break on all global segments going through the {\itshape vertical} left and right edges of the {\ttfamily bb} box. The set of global segments to be broken could be further restricted using {\ttfamily mask} and {\ttfamily flags}.
|
||
|
|
||
|
The Semantic of {\ttfamily flags} is not clear, must review the code more closely.
|
||
|
|
||
|
References Box\+::get\+X\+Max(), Box\+::get\+X\+Min(), Box\+::get\+Y\+Max(), and Box\+::get\+Y\+Min().
|
||
|
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_ac40754d4a9bd0cf327b5fa088e993897}\label{classKatabatic_1_1KatabaticEngine_ac40754d4a9bd0cf327b5fa088e993897}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!slacken\+Block\+Ios@{slacken\+Block\+Ios}}
|
||
|
\index{slacken\+Block\+Ios@{slacken\+Block\+Ios}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{slacken\+Block\+Ios()}{slackenBlockIos()}}
|
||
|
{\footnotesize\ttfamily void slacken\+Block\+Ios (\begin{DoxyParamCaption}\item[{\textbf{ Instance} $\ast$}]{core }\end{DoxyParamCaption})}
|
||
|
|
||
|
Perform a preventive break on horizontal segments in the \hyperlink{classKatabatic_1_1GCell}{G\+Cell} immediatly {\itshape outside} the instance {\ttfamily core} area in the routing layer of index {\ttfamily 1}.
|
||
|
|
||
|
This method is too much hardwired to the {\ttfamily Sx\+Lib} gauge. It\textquotesingle{}s effect is to break all {\bfseries M\+E\+T\+A\+L2} outside the core (in a chip).
|
||
|
|
||
|
References Entity\+::get\+Bounding\+Box(), Instance\+::get\+Name(), Constant\+::\+Horizontal, and Box\+::inflate().
|
||
|
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_ac934a049003c9d5d2380f44ff393e458}\label{classKatabatic_1_1KatabaticEngine_ac934a049003c9d5d2380f44ff393e458}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!move\+Up\+Net\+Trunk@{move\+Up\+Net\+Trunk}}
|
||
|
\index{move\+Up\+Net\+Trunk@{move\+Up\+Net\+Trunk}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{move\+Up\+Net\+Trunk()}{moveUpNetTrunk()}}
|
||
|
{\footnotesize\ttfamily bool move\+Up\+Net\+Trunk (\begin{DoxyParamCaption}\item[{\hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} $\ast$}]{seed, }\item[{set$<$ \textbf{ Net} $\ast$$>$ \&}]{global\+Nets, }\item[{\hyperlink{classKatabatic_1_1GCell_aacb1c215b203bfba5729f135b3221d40}{G\+Cell\+::\+Set\+Index} \&}]{invalidateds }\end{DoxyParamCaption})}
|
||
|
|
||
|
|
||
|
\begin{DoxyParams}{Parameters}
|
||
|
{\em seed} & The \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} to take the net from. \\
|
||
|
\hline
|
||
|
{\em global\+Nets} & The set of nets that has been moved up. \\
|
||
|
\hline
|
||
|
{\em invalidateds} & The set of G\+Cells that have been invalidated. {\bfseries Returns\+:} {\bfseries true} if the net trunk have been moved up.\\
|
||
|
\hline
|
||
|
\end{DoxyParams}
|
||
|
Try to move up a whole net trunk. The net is supplied through the {\ttfamily seed} argument (the segment that triggers the move). If the net is actually moved up, it is added to {\ttfamily global\+Nets} and all G\+Cells that have been invalidateds are added to {\ttfamily invalidateds}.
|
||
|
|
||
|
An individual \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} of the net is moved up if it\textquotesingle{}s length is greater that {\ttfamily 150} lambdas, that is, three times the side of a \hyperlink{classKatabatic_1_1GCell}{G\+Cell}. This is hard-\/wired and should be parametrized in the future. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a77833ce938a430785ba869eedbc2300c}\label{classKatabatic_1_1KatabaticEngine_a77833ce938a430785ba869eedbc2300c}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!layer\+Assign@{layer\+Assign}}
|
||
|
\index{layer\+Assign@{layer\+Assign}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{layer\+Assign()}{layerAssign()}}
|
||
|
{\footnotesize\ttfamily void layer\+Assign (\begin{DoxyParamCaption}\item[{unsigned int}]{method }\end{DoxyParamCaption})}
|
||
|
|
||
|
Perform the layer assignment. The global routing loading stage uses only the two bottom most layers, this method spread them on all the availables routing layers, according to \hyperlink{classKatabatic_1_1GCell}{G\+Cell} and Routing\+Pad density criterions.
|
||
|
|
||
|
Two algorithms are availables\+:
|
||
|
\begin{DoxyItemize}
|
||
|
\item {\bfseries Engine\+Layer\+Assign\+By\+Length} \+: the global wires are moved up one by one.
|
||
|
\item {\bfseries Engine\+Layer\+Assign\+By\+Trunk} \+: if one global wire of a net is to be moved up, then all the global trunk of the net is moved along. This methods gives the best results for now.
|
||
|
\end{DoxyItemize}\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a6957a5830a4d6f1b2daf83a7d98df601}\label{classKatabatic_1_1KatabaticEngine_a6957a5830a4d6f1b2daf83a7d98df601}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!compute\+Net\+Constraints@{compute\+Net\+Constraints}}
|
||
|
\index{compute\+Net\+Constraints@{compute\+Net\+Constraints}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{compute\+Net\+Constraints()}{computeNetConstraints()}}
|
||
|
{\footnotesize\ttfamily void compute\+Net\+Constraints (\begin{DoxyParamCaption}\item[{\textbf{ Net} $\ast$}]{net }\end{DoxyParamCaption})}
|
||
|
|
||
|
Compute the box constraints on Auto\+Contacts (and therefore those applied to Auto\+Segments). Constraints comes from Auto\+Contacts anchoreds on Routing\+Pads and transmitted through \hyperlink{classKatabatic_1_1AutoContactHTee}{Auto\+Contact\+H\+Tee} or \hyperlink{classKatabatic_1_1AutoContactVTee}{Auto\+Contact\+V\+Tee}. Constraints are applied to all Auto\+Contacts of an aligned set.
|
||
|
|
||
|
\begin{DoxyParagraph}{Remark\+:}
|
||
|
The {\ttfamily net} must have been canonized before this function to be called.
|
||
|
\end{DoxyParagraph}
|
||
|
\mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_ad6b9f7d94ee4a88f12c485e48d1e644a}\label{classKatabatic_1_1KatabaticEngine_ad6b9f7d94ee4a88f12c485e48d1e644a}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!to\+Optimals@{to\+Optimals}}
|
||
|
\index{to\+Optimals@{to\+Optimals}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{to\+Optimals()}{toOptimals()}}
|
||
|
{\footnotesize\ttfamily void to\+Optimals (\begin{DoxyParamCaption}\item[{\textbf{ Net} $\ast$}]{net }\end{DoxyParamCaption})}
|
||
|
|
||
|
Move all \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} of {\ttfamily net} so that their axis are inside their optimals interval. If a \hyperlink{classKatabatic_1_1AutoSegment}{Auto\+Segment} is already inside the interval is not moved, otherwise it is put on the nearest bound of the optimal interval. \mbox{\Hypertarget{classKatabatic_1_1KatabaticEngine_a468eddb683c04cfeea1c5124a39e1f86}\label{classKatabatic_1_1KatabaticEngine_a468eddb683c04cfeea1c5124a39e1f86}}
|
||
|
\index{Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}!finalize\+Layout@{finalize\+Layout}}
|
||
|
\index{finalize\+Layout@{finalize\+Layout}!Katabatic\+::\+Katabatic\+Engine@{Katabatic\+::\+Katabatic\+Engine}}
|
||
|
\subsubsection{\texorpdfstring{finalize\+Layout()}{finalizeLayout()}}
|
||
|
{\footnotesize\ttfamily void finalize\+Layout (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}
|
||
|
|
||
|
Transform the \hyperlink{namespaceKatabatic}{Katabatic} wires into the Hurricane data-\/structure. Mostly by removing the Auto\+Segment/\+Auto\+Contact {\itshape without} removing their Hurricane conterparts. May also fill gaps that may have appeared.
|
||
|
|
||
|
\begin{DoxyParagraph}{Remark\+:}
|
||
|
The tool state must be {\bfseries Engine\+Active} {\itshape before} calling this method and will be set to {\bfseries Engine\+Gutted} on exit.
|
||
|
\end{DoxyParagraph}
|
||
|
|
||
|
|
||
|
References Hook\+::attach(), Auto\+Segment\+::base(), Auto\+Contact\+::check\+Topology(), Debug\+Session\+::close(), Auto\+Segment\+::compute\+Terminal(), D\+Bo\+::destroy(), Hook\+::detach(), Katabatic\+::\+Engine\+Driving, Katabatic\+::\+Engine\+Gutted, Auto\+Segment\+::get\+Aligneds(), Contact\+::get\+Anchor(), Auto\+Segment\+::get\+Auto\+Source(), Auto\+Segment\+::get\+Auto\+Target(), Component\+::get\+Body\+Hook(), Hook\+::get\+Component(), Net\+::get\+Components(), Data\+Base\+::get\+D\+B(), Segment\+::get\+Length(), Hook\+::get\+Next\+Hook(), Hook\+::get\+Previous\+Master\+Hook(), Net\+::get\+Segments(), Collection$<$ Type $>$\+::get\+Sub\+Set(), Data\+Base\+::get\+Technology(), Db\+U\+::get\+Value\+String(), Technology\+::get\+Via\+Between(), Net\+::is\+External(), Auto\+Segment\+::is\+Invalidated(), Auto\+Contact\+::is\+Invalidated\+Cache(), Katabatic\+::\+Kb\+Realignate, Debug\+Session\+::open(), Contact\+::set\+Layer(), and Db\+U\+::to\+Lambda().
|
||
|
|
||
|
|
||
|
|
||
|
The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
|
||
|
\item
|
||
|
Katabatic\+Engine.\+h\item
|
||
|
Chip\+Tools.\+cpp\item
|
||
|
Load\+Gr\+By\+Net.\+cpp\item
|
||
|
Katabatic\+Engine.\+cpp\item
|
||
|
Katabatic\+Engine.\+dox\end{DoxyCompactItemize}
|