ACT Library
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
ActNetlistPass Class Reference

#include <netlist.h>

Inheritance diagram for ActNetlistPass:
ActPass

Public Member Functions

 ActNetlistPass (Act *a)
 
 ~ActNetlistPass ()
 
int run (Process *p=NULL)
 
netlist_tgetNL (Process *p)
 
void enableSharedStat ()
 
void Print (FILE *fp, Process *p)
 
- Public Member Functions inherited from ActPass
 ActPass (Act *_a, const char *name, int doroot=0)
 
virtual ~ActPass ()
 release storage
 
void update (Process *p)
 
int rundeps (Process *p=NULL)
 
const char * getName ()
 
virtual int run (Process *p=NULL)
 
int completed ()
 
int pending ()
 
void * getMap (UserDef *u)
 
void * getGlobalInfo ()
 
ActgetAct ()
 
ActPassgetPass (const char *name)
 
ProcessgetRoot ()
 
virtual void run_recursive (Process *p=NULL, int mode=0)
 
void disableUpdate ()
 
void enableUpdate ()
 
void mkStickyVisited ()
 
void clrStickyVisited ()
 

Static Public Member Functions

static node_tconnection_to_node (netlist_t *n, act_connection *c)
 
static node_tstring_to_node (netlist_t *, char *s)
 
static void sprint_node (char *buf, int sz, netlist_t *N, node_t *n)
 
static void sprint_conn (char *buf, int sz, act_connection *c)
 
static void emit_node (netlist_t *N, FILE *fp, node_t *n, int mangle=0)
 
static void spice_to_act_name (char *s, char *t, int sz, int xconv)
 
static int getGridsPerLambda ()
 
- Static Public Member Functions inherited from ActPass
static void refreshAll (Act *a, Process *p=NULL)
 

Private Member Functions

void * local_op (Process *p, int mode=0)
 
void free_local (void *v)
 
netlist_tgenerate_netlist (Process *p)
 
void generate_netgraph (netlist_t *N, int num_vdd_share, int num_gnd_share, int vdd_len, int gnd_len, node_t *weak_vdd, node_t *weak_gnd)
 
void generate_prs_graph (netlist_t *N, act_prs_lang_t *p, int istree=0)
 
void generate_staticizers (netlist_t *N, int num_vdd_share, int num_gnd_share, int vdd_len, int gnd_len, node_t *weak_vdd, node_t *weak_gnd)
 
netlist_tgenNetlist (Process *p)
 
netlist_temitNetlist (Process *p)
 
void fold_transistors (netlist_t *N)
 
int find_length_window (edge_t *e)
 
int find_length_fit (int len)
 
void set_fet_params (netlist_t *n, edge_t *f, unsigned int type, act_size_spec_t *sz)
 
int create_expr_edges (netlist_t *N, int type, node_t *left, act_prs_expr_t *e, node_t *right, int sense)
 
void _check_emit_warning (int d, int depth, ActId *id)
 

Private Attributes

ActBooleanizePassbools
 
double lambda
 
double manufacturing_grid
 
int min_w_in_lambda
 
int min_l_in_lambda
 
double leak_adjust
 
int _fin_width
 
int max_n_w_in_lambda
 
int max_p_w_in_lambda
 
double p_n_ratio
 
double weak_to_strong_ratio
 
double default_load_cap
 
int black_box_mode
 
int n_fold
 
int p_fold
 
int discrete_len
 
int discrete_fet_length_sz
 
int * discrete_fet_length
 
int ignore_loadcap
 
int emit_parasitics
 
double output_scale_factor
 
int fet_spacing_diffonly
 
int fet_spacing_diffcontact
 
int fet_diff_overhang
 
int use_subckt_models
 
int swap_source_drain
 
const char * extra_fet_string
 
int top_level_only
 
int weak_share_min
 
int weak_share_max
 
int series_n_warning
 
int series_p_warning
 
double unit_cap
 
FILE * _outfp
 

Static Private Attributes

static int grids_per_lambda
 
static const char * local_vdd
 
static const char * local_gnd
 
static const char * global_vdd
 
static const char * global_gnd
 
static Actcurrent_act
 

Additional Inherited Members

- Protected Member Functions inherited from ActPass
virtual void _actual_update (Process *p)
 
int AddDependency (const char *pass)
 
- Protected Attributes inherited from ActPass
int _finished
 has the pass finished execution?
 
int _sticky_visited
 
Acta
 
list_t * deps
 
list_t * fwdeps
 
const char * name
 the name for the pass
 
int _update_propagate
 
int _root_dirty
 
Process_root
 the root of the design
 
void * _global_info
 

Constructor & Destructor Documentation

◆ ActNetlistPass()

ActNetlistPass::ActNetlistPass ( Act a)

◆ ~ActNetlistPass()

ActNetlistPass::~ActNetlistPass ( )

Member Function Documentation

◆ _check_emit_warning()

void ActNetlistPass::_check_emit_warning ( int  d,
int  depth,
ActId id 
)
private

◆ connection_to_node()

static node_t * ActNetlistPass::connection_to_node ( netlist_t n,
act_connection c 
)
static

◆ create_expr_edges()

int ActNetlistPass::create_expr_edges ( netlist_t N,
int  type,
node_t left,
act_prs_expr_t e,
node_t right,
int  sense 
)
private

◆ emit_node()

static void ActNetlistPass::emit_node ( netlist_t N,
FILE *  fp,
node_t n,
int  mangle = 0 
)
static

◆ emitNetlist()

netlist_t * ActNetlistPass::emitNetlist ( Process p)
private

◆ enableSharedStat()

void ActNetlistPass::enableSharedStat ( )

◆ find_length_fit()

int ActNetlistPass::find_length_fit ( int  len)
private

◆ find_length_window()

int ActNetlistPass::find_length_window ( edge_t e)
private

◆ fold_transistors()

void ActNetlistPass::fold_transistors ( netlist_t N)
private

◆ free_local()

void ActNetlistPass::free_local ( void *  )
privatevirtual

Free the data structure allocated by calls to pre_op()/local_op().

Reimplemented from ActPass.

◆ generate_netgraph()

void ActNetlistPass::generate_netgraph ( netlist_t N,
int  num_vdd_share,
int  num_gnd_share,
int  vdd_len,
int  gnd_len,
node_t weak_vdd,
node_t weak_gnd 
)
private

◆ generate_netlist()

netlist_t * ActNetlistPass::generate_netlist ( Process p)
private

◆ generate_prs_graph()

void ActNetlistPass::generate_prs_graph ( netlist_t N,
act_prs_lang_t p,
int  istree = 0 
)
private

◆ generate_staticizers()

void ActNetlistPass::generate_staticizers ( netlist_t N,
int  num_vdd_share,
int  num_gnd_share,
int  vdd_len,
int  gnd_len,
node_t weak_vdd,
node_t weak_gnd 
)
private

◆ genNetlist()

netlist_t * ActNetlistPass::genNetlist ( Process p)
private

◆ getGridsPerLambda()

static int ActNetlistPass::getGridsPerLambda ( )
inlinestatic

◆ getNL()

netlist_t * ActNetlistPass::getNL ( Process p)

◆ local_op()

void * ActNetlistPass::local_op ( Process p,
int  mode = 0 
)
privatevirtual

This function is called exactly once per process that is reachable from the root of the pass. It is called after all the types instantiated within the process are visited.

Parameters
pis the process type
modeis the mode flag passed to this call.
Returns
the data structure that is to be associated with this process

Reimplemented from ActPass.

◆ Print()

void ActNetlistPass::Print ( FILE *  fp,
Process p 
)

◆ run()

int ActNetlistPass::run ( Process p = NULL)
virtual

Run the entire pass with the specified top-level process name

Parameters
pis the tyoe of the top-level process; NULL means that the top-level of the design is the global namespace and not a specific process.
Returns
1 on success, 0 if any dependencies failed.

Reimplemented from ActPass.

◆ set_fet_params()

void ActNetlistPass::set_fet_params ( netlist_t n,
edge_t f,
unsigned int  type,
act_size_spec_t sz 
)
private

◆ spice_to_act_name()

static void ActNetlistPass::spice_to_act_name ( char *  s,
char *  t,
int  sz,
int  xconv 
)
static

◆ sprint_conn()

static void ActNetlistPass::sprint_conn ( char *  buf,
int  sz,
act_connection c 
)
static

◆ sprint_node()

static void ActNetlistPass::sprint_node ( char *  buf,
int  sz,
netlist_t N,
node_t n 
)
static

◆ string_to_node()

static node_t * ActNetlistPass::string_to_node ( netlist_t ,
char *  s 
)
static

Member Data Documentation

◆ _fin_width

int ActNetlistPass::_fin_width
private

◆ _outfp

FILE* ActNetlistPass::_outfp
private

◆ black_box_mode

int ActNetlistPass::black_box_mode
private

◆ bools

ActBooleanizePass* ActNetlistPass::bools
private

◆ current_act

Act* ActNetlistPass::current_act
staticprivate

◆ default_load_cap

double ActNetlistPass::default_load_cap
private

◆ discrete_fet_length

int* ActNetlistPass::discrete_fet_length
private

◆ discrete_fet_length_sz

int ActNetlistPass::discrete_fet_length_sz
private

◆ discrete_len

int ActNetlistPass::discrete_len
private

◆ emit_parasitics

int ActNetlistPass::emit_parasitics
private

◆ extra_fet_string

const char* ActNetlistPass::extra_fet_string
private

◆ fet_diff_overhang

int ActNetlistPass::fet_diff_overhang
private

◆ fet_spacing_diffcontact

int ActNetlistPass::fet_spacing_diffcontact
private

◆ fet_spacing_diffonly

int ActNetlistPass::fet_spacing_diffonly
private

◆ global_gnd

const char * ActNetlistPass::global_gnd
staticprivate

◆ global_vdd

const char * ActNetlistPass::global_vdd
staticprivate

◆ grids_per_lambda

int ActNetlistPass::grids_per_lambda
staticprivate

◆ ignore_loadcap

int ActNetlistPass::ignore_loadcap
private

◆ lambda

double ActNetlistPass::lambda
private

◆ leak_adjust

double ActNetlistPass::leak_adjust
private

◆ local_gnd

const char * ActNetlistPass::local_gnd
staticprivate

◆ local_vdd

const char* ActNetlistPass::local_vdd
staticprivate

◆ manufacturing_grid

double ActNetlistPass::manufacturing_grid
private

◆ max_n_w_in_lambda

int ActNetlistPass::max_n_w_in_lambda
private

◆ max_p_w_in_lambda

int ActNetlistPass::max_p_w_in_lambda
private

◆ min_l_in_lambda

int ActNetlistPass::min_l_in_lambda
private

◆ min_w_in_lambda

int ActNetlistPass::min_w_in_lambda
private

◆ n_fold

int ActNetlistPass::n_fold
private

◆ output_scale_factor

double ActNetlistPass::output_scale_factor
private

◆ p_fold

int ActNetlistPass::p_fold
private

◆ p_n_ratio

double ActNetlistPass::p_n_ratio
private

◆ series_n_warning

int ActNetlistPass::series_n_warning
private

◆ series_p_warning

int ActNetlistPass::series_p_warning
private

◆ swap_source_drain

int ActNetlistPass::swap_source_drain
private

◆ top_level_only

int ActNetlistPass::top_level_only
private

◆ unit_cap

double ActNetlistPass::unit_cap
private

◆ use_subckt_models

int ActNetlistPass::use_subckt_models
private

◆ weak_share_max

int ActNetlistPass::weak_share_max
private

◆ weak_share_min

int ActNetlistPass::weak_share_min
private

◆ weak_to_strong_ratio

double ActNetlistPass::weak_to_strong_ratio
private

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