diff options
| author | JRPan <[email protected]> | 2022-02-07 13:59:57 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-02-07 13:59:57 -0500 |
| commit | e466afb0391c6644406ec1d02fc8d06082cb3ca7 (patch) | |
| tree | 4dc221c1e39b604884bdd21e46f5147c0590da9c /src/gpuwattch/cacti/basic_circuit.h | |
| parent | 921835274eb67dbe30a5bbb86d7e19028713dd2a (diff) | |
| parent | 011891abfae060903f76d5c7aee23208cd295e71 (diff) | |
Merge pull request #27 from JRPan/accelwattach-dev
Merge AccelWattach
Diffstat (limited to 'src/gpuwattch/cacti/basic_circuit.h')
| -rw-r--r-- | src/gpuwattch/cacti/basic_circuit.h | 248 |
1 files changed, 0 insertions, 248 deletions
diff --git a/src/gpuwattch/cacti/basic_circuit.h b/src/gpuwattch/cacti/basic_circuit.h deleted file mode 100644 index bafd3d3..0000000 --- a/src/gpuwattch/cacti/basic_circuit.h +++ /dev/null @@ -1,248 +0,0 @@ -/***************************************************************************** - * McPAT/CACTI - * SOFTWARE LICENSE AGREEMENT - * Copyright 2012 Hewlett-Packard Development Company, L.P. - * All Rights Reserved - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.” - * - ***************************************************************************/ - - - -#ifndef __BASIC_CIRCUIT_H__ -#define __BASIC_CIRCUIT_H__ - -#include "const.h" -#include "cacti_interface.h" - -using namespace std; - -#define UNI_LEAK_STACK_FACTOR 0.43 - -int powers (int base, int n); -bool is_pow2(int64_t val); -uint32_t _log2(uint64_t num); -int factorial(int n, int m = 1); -int combination(int n, int m); - -//#define DBG -#ifdef DBG - #define PRINTDW(a);\ - a; -#else - #define PRINTDW(a);\ - -#endif - - -enum Wire_placement { - outside_mat, - inside_mat, - local_wires -}; - - - -enum Htree_type { - Add_htree, - Data_in_htree, - Data_out_htree, - Search_in_htree, - Search_out_htree, -}; - -enum Gate_type { - nmos, - pmos, - inv, - nand, - nor, - tri, - tg -}; - -enum Half_net_topology { - parallel, - series -}; - -double logtwo (double x); - -double gate_C( - double width, - double wirelength, - bool _is_dram = false, - bool _is_sram = false, - bool _is_wl_tr = false); - -double gate_C_pass( - double width, - double wirelength, - bool _is_dram = false, - bool _is_sram = false, - bool _is_wl_tr = false); - -double drain_C_( - double width, - int nchannel, - int stack, - int next_arg_thresh_folding_width_or_height_cell, - double fold_dimension, - bool _is_dram = false, - bool _is_sram = false, - bool _is_wl_tr = false); - -double tr_R_on( - double width, - int nchannel, - int stack, - bool _is_dram = false, - bool _is_sram = false, - bool _is_wl_tr = false); - -double R_to_w( - double res, - int nchannel, - bool _is_dram = false, - bool _is_sram = false, - bool _is_wl_tr = false); - -double horowitz ( - double inputramptime, - double tf, - double vs1, - double vs2, - int rise); - -double pmos_to_nmos_sz_ratio( - bool _is_dram = false, - bool _is_wl_tr = false); - -double simplified_nmos_leakage( - double nwidth, - bool _is_dram = false, - bool _is_cell = false, - bool _is_wl_tr = false); - -double simplified_pmos_leakage( - double pwidth, - bool _is_dram = false, - bool _is_cell = false, - bool _is_wl_tr = false); - - -double cmos_Ileak( - double nWidth, - double pWidth, - bool _is_dram = false, - bool _is_cell = false, - bool _is_wl_tr = false); - -double cmos_Ig_n( - double nWidth, - bool _is_dram = false, - bool _is_cell = false, - bool _is_wl_tr= false); - -double cmos_Ig_p( - double pWidth, - bool _is_dram = false, - bool _is_cell = false, - bool _is_wl_tr= false); - - -double cmos_Isub_leakage( - double nWidth, - double pWidth, - int fanin, - enum Gate_type g_type, - bool _is_dram = false, - bool _is_cell = false, - bool _is_wl_tr = false, - enum Half_net_topology topo = series); - -double cmos_Ig_leakage( - double nWidth, - double pWidth, - int fanin, - enum Gate_type g_type, - bool _is_dram = false, - bool _is_cell = false, - bool _is_wl_tr = false, - enum Half_net_topology topo = series); - -double shortcircuit( - double vt, - double velocity_index, - double c_in, - double c_out, - double w_nmos, - double w_pmos, - double i_on_n, - double i_on_p, - double i_on_n_in, - double i_on_p_in, - double vdd); - -double shortcircuit_simple( - double vt, - double velocity_index, - double c_in, - double c_out, - double w_nmos, - double w_pmos, - double i_on_n, - double i_on_p, - double i_on_n_in, - double i_on_p_in, - double vdd); -//set power point product mask; strictly speaking this is not real point product -inline void set_pppm( - double * pppv, - double a=1, - double b=1, - double c=1, - double d=1 - ){ - pppv[0]= a; - pppv[1]= b; - pppv[2]= c; - pppv[3]= d; - -} - -inline void set_sppm( - double * sppv, - double a=1, - double b=1, - double c=1, - double d=1 - ){ - sppv[0]= a; - sppv[1]= b; - sppv[2]= c; -} - -#endif |
