00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef CHIP_T
00017 #define CHIP_T
00018 #include "parameters.h"
00019
00020 class intsim_chip_t {
00021 public:
00022 intsim_chip_t() {}
00023 ~intsim_chip_t() {}
00024
00025 double total_power;
00026
00027
00028 int gate_sizing(intsim_param_t * param);
00029 void st_wiring(intsim_param_t * param);
00030 void baseline_param(intsim_param_t * param, double total_estimated_power);
00031 void local_interconnect(intsim_param_t * param);
00032 void no_repeaters(intsim_param_t * param);
00033 void global_interconnect(intsim_param_t * param, double total_estimated_power);
00034 void insert_repeaters(intsim_param_t * param);
00035
00036 void output(intsim_param_t * param, double total_power);
00037
00038
00039 void leakage_feedback(intsim_param_t * intsim_param);
00040
00041 double leakage_power_logic_gates, dyn_power_logic_gates;
00042 double leakage_power_repeaters, dyn_power_repeaters;
00043 double power_wires, clock_power;
00044 double clock_power_dynamic, clock_power_leakage;
00045 int tier;
00046
00047 private:
00048
00049 double total_area_logic_gates;
00050
00051
00052 double *intg_number;
00053 double *intg_length;
00054 double *pitch;
00055 double *net_wire_efficiency;
00056 double *length_max;
00057 double *net_wire_efficiency_repeaters;
00058 double *pitch_updated_with_repeaters;
00059 double *length_max_updated_with_repeaters;
00060 double *number_repeaters;
00061
00062
00063 double total_length;
00064 double leakage_power_two_input_nand, dyn_power_two_input_nand;
00065 double leakage_power_inv, dyn_power_inv;
00066 double area_two_input_nand_gate, area_rep_total, available_area;
00067 double total_number_repeaters;
00068 double max_power_repeaters, nv_power_ground;
00069 double global_wire_pitch;
00070 double l_last, lmin, lmax, n;
00071 double phigate, net_wl_rep;
00072 double cbuffer, number_rep_global, size_rep_global;
00073 };
00074
00075 #endif