TpgNode¶
-
class TpgNode : public TpgObjBase¶
DRUID 用のノードを表すクラス
基本的には一つのゲート(セル)に対応しているが, もとのゲートが組み込み型でない場合には複数の TpgNode を組み合わ せてもとのゲートを表す.
参考
参考
参考
参考
そうする理由は side input の値に対する controlling value, non-controlling value が定まっていたほうがバックトレースが やりやすいから.SAT に関しては complex タイプでも問題なく 処理できる.
そのため,場合によってはファンインの故障を表すための仮想的な ノードを挿入する場合もある.
Public Functions
-
TpgNode() = default¶
空のコンストラクタ
不正な値となる.
値を指定したコンストラクタ
- パラメータ:
network -- [in] 親のネットワーク
id -- [in] ノード番号
-
~TpgNode() = default¶
デストラクタ
-
SizeType fanin_num() const¶
ファンイン数を得る.
-
TpgNode fanin(SizeType index) const¶
ファンインを得る.
- パラメータ:
index -- [in] 位置番号 ( 0 <= index < fanin_num() )
-
TpgNodeList fanin_list() const¶
ファンインのリストを得る.
-
SizeType fanout_num() const¶
ファンアウト数を得る.
-
TpgNode fanout(SizeType index) const¶
ファンアウトを得る.
- パラメータ:
index -- [in] 位置番号 ( 0 <= index < fanout_num() )
-
TpgNodeList fanout_list() const¶
ファンアウトのリストを得る.
-
bool is_primary_input() const¶
外部入力タイプの時 true を返す.
-
bool is_dff_output() const¶
DFF の出力に接続している入力タイプの時 true を返す.
紛らわしいが is_pseudo_input() でもある.
-
bool is_ppi() const¶
入力タイプの時 true を返す.
具体的には is_primary_input() || is_dff_output()
-
bool is_primary_output() const¶
外部出力タイプの時 true を返す.
-
bool is_dff_input() const¶
DFF の入力に接続している出力タイプの時 true を返す.
紛らわしいが is_pseudo_output() でもある.
-
bool is_ppo() const¶
出力タイプの時 true を返す.
具体的には is_primary_output() || is_dff_input()
-
SizeType input_id() const¶
外部入力タイプの時に入力番号を返す.
node = TpgNetwork::ppi(node->input_id()) の関係を満たす. is_ppi() が false の場合の返り値は不定
-
SizeType output_id() const¶
外部出力タイプの時に出力番号を返す.
node = TpgNetwork::ppo(node->output_id()) の関係を満たす. is_ppo() が false の場合の返り値は不定
-
SizeType output_id2() const¶
TFIサイズの昇順に並べた時の出力番号を返す.
-
SizeType dff_id() const¶
接続している DFF 番号を返す.
is_dff_input() | is_dff_output() の時に意味を持つ.
-
TpgNode alt_node() const¶
DFFに関する相方のノードを返す.
is_dff_input() | is_dff_output() の時に意味を持つ.
-
bool is_logic() const¶
logic タイプの時 true を返す.
-
PrimType gate_type() const¶
ゲートタイプを得る.
is_logic() が true の時はゲートタイプを返す.
is_ppo() が true の時は PrimType::Buff を返す.
それ以外の時は PrimType::None を返す.
-
Val3 cval() const¶
controling value を得る.
is_logic() が false の場合の返り値は不定 ない場合は Val3::_X を返す.
-
Val3 nval() const¶
noncontroling valueを得る.
is_logic() が false の場合の返り値は不定 ない場合は Val3::_X を返す.
-
Val3 coval() const¶
controling output value を得る.
is_logic() が false の場合の返り値は不定 ない場合は Val3::_X を返す.
-
Val3 noval() const¶
noncontroling output value を得る.
is_logic() が false の場合の返り値は不定 ない場合は Val3::_X を返す.
-
inline std::string str() const¶
ノード名を表す文字列(Node::id)を返す.
-
TpgNode() = default¶