basic_circuit.h (10152:52c552138ba1) | basic_circuit.h (10234:5cb711fa6176) |
---|---|
1/***************************************************************************** 2 * McPAT/CACTI 3 * SOFTWARE LICENSE AGREEMENT 4 * Copyright 2012 Hewlett-Packard Development Company, L.P. | 1/***************************************************************************** 2 * McPAT/CACTI 3 * SOFTWARE LICENSE AGREEMENT 4 * Copyright 2012 Hewlett-Packard Development Company, L.P. |
5 * Copyright (c) 2010-2013 Advanced Micro Devices, Inc. |
|
5 * All Rights Reserved 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions are 9 * met: redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer; 11 * redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the --- 7 unchanged lines hidden (view full) --- 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 6 * All Rights Reserved 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions are 10 * met: redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer; 12 * redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the --- 7 unchanged lines hidden (view full) --- 21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.” | 29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
29 * 30 ***************************************************************************/ 31 32 33 34#ifndef __BASIC_CIRCUIT_H__ 35#define __BASIC_CIRCUIT_H__ 36 --- 7 unchanged lines hidden (view full) --- 44int powers (int base, int n); 45bool is_pow2(int64_t val); 46uint32_t _log2(uint64_t num); 47int factorial(int n, int m = 1); 48int combination(int n, int m); 49 50//#define DBG 51#ifdef DBG | 30 * 31 ***************************************************************************/ 32 33 34 35#ifndef __BASIC_CIRCUIT_H__ 36#define __BASIC_CIRCUIT_H__ 37 --- 7 unchanged lines hidden (view full) --- 45int powers (int base, int n); 46bool is_pow2(int64_t val); 47uint32_t _log2(uint64_t num); 48int factorial(int n, int m = 1); 49int combination(int n, int m); 50 51//#define DBG 52#ifdef DBG |
52 #define PRINTDW(a);\ | 53#define PRINTDW(a);\ |
53 a; 54#else | 54 a; 55#else |
55 #define PRINTDW(a);\ | 56#define PRINTDW(a);\ |
56 57#endif 58 59 60enum Wire_placement { 61 outside_mat, 62 inside_mat, 63 local_wires --- 7 unchanged lines hidden (view full) --- 71 Data_out_htree, 72 Search_in_htree, 73 Search_out_htree, 74}; 75 76enum Gate_type { 77 nmos, 78 pmos, | 57 58#endif 59 60 61enum Wire_placement { 62 outside_mat, 63 inside_mat, 64 local_wires --- 7 unchanged lines hidden (view full) --- 72 Data_out_htree, 73 Search_in_htree, 74 Search_out_htree, 75}; 76 77enum Gate_type { 78 nmos, 79 pmos, |
79 inv, | 80 inv, |
80 nand, 81 nor, 82 tri, 83 tg 84}; 85 86enum Half_net_topology { 87 parallel, --- 71 unchanged lines hidden (view full) --- 159 bool _is_dram = false, 160 bool _is_cell = false, 161 bool _is_wl_tr = false); 162 163double cmos_Ig_n( 164 double nWidth, 165 bool _is_dram = false, 166 bool _is_cell = false, | 81 nand, 82 nor, 83 tri, 84 tg 85}; 86 87enum Half_net_topology { 88 parallel, --- 71 unchanged lines hidden (view full) --- 160 bool _is_dram = false, 161 bool _is_cell = false, 162 bool _is_wl_tr = false); 163 164double cmos_Ig_n( 165 double nWidth, 166 bool _is_dram = false, 167 bool _is_cell = false, |
167 bool _is_wl_tr= false); | 168 bool _is_wl_tr = false); |
168 169double cmos_Ig_p( 170 double pWidth, 171 bool _is_dram = false, 172 bool _is_cell = false, | 169 170double cmos_Ig_p( 171 double pWidth, 172 bool _is_dram = false, 173 bool _is_cell = false, |
173 bool _is_wl_tr= false); | 174 bool _is_wl_tr = false); |
174 175 176double cmos_Isub_leakage( 177 double nWidth, 178 double pWidth, 179 int fanin, 180 enum Gate_type g_type, 181 bool _is_dram = false, --- 33 unchanged lines hidden (view full) --- 215 double w_pmos, 216 double i_on_n, 217 double i_on_p, 218 double i_on_n_in, 219 double i_on_p_in, 220 double vdd); 221//set power point product mask; strictly speaking this is not real point product 222inline void set_pppm( | 175 176 177double cmos_Isub_leakage( 178 double nWidth, 179 double pWidth, 180 int fanin, 181 enum Gate_type g_type, 182 bool _is_dram = false, --- 33 unchanged lines hidden (view full) --- 216 double w_pmos, 217 double i_on_n, 218 double i_on_p, 219 double i_on_n_in, 220 double i_on_p_in, 221 double vdd); 222//set power point product mask; strictly speaking this is not real point product 223inline void set_pppm( |
223 double * pppv, 224 double a=1, 225 double b=1, 226 double c=1, 227 double d=1 228 ){ 229 pppv[0]= a; 230 pppv[1]= b; 231 pppv[2]= c; 232 pppv[3]= d; | 224 double * pppv, 225 double a = 1, 226 double b = 1, 227 double c = 1, 228 double d = 1 229) { 230 pppv[0] = a; 231 pppv[1] = b; 232 pppv[2] = c; 233 pppv[3] = d; |
233 234} 235 236inline void set_sppm( | 234 235} 236 237inline void set_sppm( |
237 double * sppv, 238 double a=1, 239 double b=1, 240 double c=1, 241 double d=1 242 ){ 243 sppv[0]= a; 244 sppv[1]= b; 245 sppv[2]= c; | 238 double * sppv, 239 double a = 1, 240 double b = 1, 241 double c = 1, 242 double d = 1 243) { 244 sppv[0] = a; 245 sppv[1] = b; 246 sppv[2] = c; |
246} 247 248#endif | 247} 248 249#endif |