Lines Matching refs:subarray
49 subarray(dp, dp.fully_assoc),
54 cell(subarray.cell), cam_cell(subarray.cam_cell),
92 number_sa_subarray = subarray.num_cols / deg_bl_muxing;
94 number_sa_subarray = (subarray.num_cols_fa_cam + subarray.num_cols_fa_ram) / deg_bl_muxing;
98 number_sa_subarray = (subarray.num_cols_fa_cam) / deg_bl_muxing;
101 int num_dec_signals = subarray.num_rows;
108 R_wire_wl_drv_out = subarray.num_cols * cell.w * g_tp.wire_local.R_per_um;
110 R_wire_wl_drv_out = (subarray.num_cols_fa_cam * cam_cell.w + subarray.num_cols_fa_ram * cell.w) * g_tp.wire_local.R_per_um ;
112 R_wire_wl_drv_out = (subarray.num_cols_fa_cam * cam_cell.w ) * g_tp.wire_local.R_per_um;
115 double R_wire_bit_mux_dec_out = num_subarrays_per_row * subarray.num_cols * g_tp.wire_inside_mat.R_per_um * cell.w;//TODO:revisit for FA
116 double R_wire_sa_mux_dec_out = num_subarrays_per_row * subarray.num_cols * g_tp.wire_inside_mat.R_per_um * cell.w;
120 (2 * num_subarrays_per_mat * subarray.num_cols / deg_bl_muxing) *
122 num_subarrays_per_row * subarray.num_cols *
130 num_subarrays_per_row * subarray.num_cols *
138 num_subarrays_per_row * subarray.num_cols *
152 subarray.C_wl,
195 C_wire_predec_blk_out = num_subarrays_per_row * subarray.num_rows * g_tp.wire_inside_mat.C_per_um * cell.h;
196 R_wire_predec_blk_out = num_subarrays_per_row * subarray.num_rows * g_tp.wire_inside_mat.R_per_um * cell.h;
199 C_wire_predec_blk_out = subarray.num_rows * g_tp.wire_inside_mat.C_per_um * cam_cell.h;
200 R_wire_predec_blk_out = subarray.num_rows * g_tp.wire_inside_mat.R_per_um * cam_cell.h;
248 subarray_out_wire = new Wire(g_ip->wt, subarray.area.h);//Bug should be subarray.area.w Owen and Sheng
257 driver_c_gate_load = (subarray.num_cols_fa_cam ) *
260 driver_c_wire_load = subarray.num_cols_fa_cam * cam_cell.w *
262 driver_r_wire_load = subarray.num_cols_fa_cam * cam_cell.w *
272 driver_c_gate_load = (subarray.num_cols_fa_ram ) *
275 driver_c_wire_load = subarray.num_cols_fa_ram * cell.w *
277 driver_r_wire_load = subarray.num_cols_fa_ram * cell.w *
288 driver_c_gate_load = subarray.num_cols * gate_C(2 * g_tp.w_pmos_bl_precharge + g_tp.w_pmos_bl_eq, 0, is_dram, false, false);
289 driver_c_wire_load = subarray.num_cols * cell.w * g_tp.wire_outside_mat.C_per_um;
290 driver_r_wire_load = subarray.num_cols * cell.w * g_tp.wire_outside_mat.R_per_um;
297 double area_row_decoder = row_dec->area.get_area() * subarray.num_rows * (RWP + ERP + EWP);
298 double w_row_decoder = area_row_decoder / subarray.area.get_h();
304 (subarray.num_cols / (deg_bl_muxing * dp.Ndsam_lev_1 * dp.Ndsam_lev_2)) / subarray.area.get_w();
316 h_comparators = compute_comparators_height(dp.tagbits, dyn_p.num_do_b_mat, subarray.area.get_w());
398 subarray.area.h + h_non_cell_area;
399 area.w = num_subarrays_per_row * subarray.area.get_w() + w_non_cell_area;
401 area_efficiency_mat = subarray.area.get_area() * num_subarrays_per_mat *
411 // cout<<"area.h =" << (num_subarrays_per_mat/num_subarrays_per_row)* subarray.area.h<<endl;
420 // area.h = (num_subarrays_per_mat / num_subarrays_per_row) * subarray.area.get_h() + h_non_cell_area;
421 // area.w = num_subarrays_per_row * subarray.area.get_w() + w_non_cell_area;
423 // area_efficiency_mat = subarray.area.get_area() * num_subarrays_per_row * 100.0 / area.get_area();
500 R_bl = subarray.num_rows * r_b_metal;
501 C_bl = subarray.C_bl;
551 double R_bl = subarray.num_rows * r_b_metal;
552 double C_bl = subarray.C_bl;
758 Htagbits = (int)(ceil ((double) (subarray.num_cols_fa_cam) / 2.0));
767 driver_c_gate_load = subarray.num_cols_fa_cam * gate_C(2 * g_tp.w_pmos_bl_precharge + g_tp.w_pmos_bl_eq, 0, is_dram, false, false);
768 driver_c_wire_load = subarray.num_cols_fa_cam * cam_cell.w * g_tp.wire_outside_mat.C_per_um;
769 driver_r_wire_load = subarray.num_cols_fa_cam * cam_cell.w * g_tp.wire_outside_mat.R_per_um;
777 //searchline data driver ; subarray.num_rows + 1 is because of the dummy row
779 driver_c_gate_load = (subarray.num_rows + 1) * gate_C(Wdummyn, 0, is_dram, false, false);
780 driver_c_wire_load = (subarray.num_rows + 1) * c_searchline_metal;
781 driver_r_wire_load = (subarray.num_rows + 1) * r_searchline_metal;
791 double R_bl = (subarray.num_rows + 1) * r_b_metal;
792 double C_bl = subarray.C_bl_cam;
805 //There are two matchline precharge driver chains per subarray.
806 driver_c_gate_load = (subarray.num_rows + 1) * gate_C(Wfaprechp, 0, is_dram);
807 driver_c_wire_load = (subarray.num_rows + 1) * c_searchline_metal;
808 driver_r_wire_load = (subarray.num_rows + 1) * r_searchline_metal;
845 (subarray.num_rows + 1)) //TODO: need to be precise
860 dynSearchEng += (c_intrinsic * (subarray.num_rows + 1) + c_gate_load * 2) *
867 (subarray.num_rows + 1) / 2;
869 (subarray.num_rows + 1) / 2;
876 dynSearchEng += (c_intrinsic + Cwire + subarray.num_rows * c_gate_load) *
881 //searchline data driver There are two matchline precharge driver chains per subarray.
883 driver_c_wire_load = subarray.C_wl_ram;
884 driver_r_wire_load = subarray.R_wl_ram;
913 Cwire = c_searchline_metal * subarray.num_rows;
914 Rwire = r_searchline_metal * subarray.num_rows;
916 subarray.num_rows;
929 Cwire = c_searchline_metal * subarray.num_rows;
930 Rwire = r_searchline_metal * subarray.num_rows;
932 subarray.num_rows;
948 //leakage in one subarray
970 power_matchline.searchOp.leakage *= (subarray.num_rows + 1) *
971 subarray.num_cols_fa_cam;//TODO:dumy line precise
972 power_matchline.searchOp.leakage += (subarray.num_rows + 1) *
974 power_matchline.searchOp.leakage += (subarray.num_rows + 1) *
976 power_matchline.searchOp.leakage += (subarray.num_rows + 1) *
979 power_matchline.searchOp.leakage += 0;// subarray.num_rows * cmos_Isub_leakage(W_hit_miss_n, 0,1, nmos) * g_tp.cam_cell.Vdd+
1002 power_matchline.searchOp.gate_leakage *= (subarray.num_rows + 1) *
1003 subarray.num_cols_fa_cam;//TODO:dumy line precise
1004 power_matchline.searchOp.gate_leakage += (subarray.num_rows + 1) *
1006 power_matchline.searchOp.gate_leakage += (subarray.num_rows + 1) *
1008 power_matchline.searchOp.gate_leakage += (subarray.num_rows + 1) *
1010 power_matchline.searchOp.gate_leakage += subarray.num_rows *
1051 double R_bl = subarray.num_rows * R_b_metal;
1052 double C_bl = subarray.C_bl;
1137 g_tp.dram_cell_Vdd /* subarray.num_cols * num_subarrays_per_mat*/;
1140 g_tp.dram_cell_Vdd /* subarray.num_cols * num_subarrays_per_mat*/ *
1164 (1.0/*subarray.num_cols * num_subarrays_per_mat*/ /
1166 dynWriteEnergy += ((1.0/*subarray.num_cols *num_subarrays_per_mat*/ /
1176 2 * dp.V_b_sense * g_tp.sram_cell.Vdd /* subarray.num_cols * num_subarrays_per_mat*/;
1177 dynWriteEnergy += (((1.0/*subarray.num_cols * num_subarrays_per_mat*/ /
1222 //int num_sa_subarray = subarray.num_cols / deg_bl_muxing; //in a subarray
1325 // delay of signal through pass-transistor to input of subarray output driver.
1463 //when plain read/write only one subarray in a single mat is active.
1483 num_sa_subarray = subarray.num_cols / deg_bl_muxing;
1489 subarray.num_cols;
1491 subarray.num_cols;
1492 //cout<<"bitline power"<<power_bitline.readOp.dynamic<<"subarray"<<num_subarrays_per_mat<<"cols"<<subarray.num_cols<<endl;
1493 //Add subarray output energy
1510 //for plain read/write only one subarray in a mat is active
1517 num_sa_subarray = (subarray.num_cols_fa_cam +
1518 subarray.num_cols_fa_ram) / deg_bl_muxing;
1519 num_sa_subarray_search = subarray.num_cols_fa_ram / deg_bl_muxing;
1527 power_bitline.readOp.dynamic *= (subarray.num_cols_fa_cam +
1528 subarray.num_cols_fa_ram);
1529 power_bitline.writeOp.dynamic *= (subarray.num_cols_fa_cam +
1530 subarray.num_cols_fa_ram);
1531 power_bitline.searchOp.dynamic *= subarray.num_cols_fa_ram;
1533 //Add subarray output energy
1557 subarray.num_cols_fa_cam * num_subarrays_per_mat;;
1584 num_sa_subarray = subarray.num_cols_fa_cam / deg_bl_muxing;
1588 power_bitline.readOp.dynamic *= subarray.num_cols_fa_cam;
1590 power_bitline.writeOp.dynamic *= subarray.num_cols_fa_cam;
1615 subarray.num_cols_fa_cam * num_subarrays_per_mat;;
1643 power_bitline.readOp.leakage *= subarray.num_rows * subarray.num_cols * num_subarrays_per_mat;
1648 //num_sa_subarray = subarray.num_cols / deg_bl_muxing;
1665 power_row_decoders.readOp.leakage = row_dec->power.readOp.leakage * subarray.num_rows * num_subarrays_per_mat;
1681 power_bitline.readOp.gate_leakage *= subarray.num_rows * subarray.num_cols * num_subarrays_per_mat;
1686 //num_sa_subarray = subarray.num_cols / deg_bl_muxing;
1703 power_row_decoders.readOp.gate_leakage = row_dec->power.readOp.gate_leakage * subarray.num_rows * num_subarrays_per_mat;
1719 power_bitline.readOp.leakage *= subarray.num_rows * subarray.num_cols * num_subarrays_per_mat;
1741 power_row_decoders.readOp.leakage = row_dec->power.readOp.leakage * subarray.num_rows * num_subarrays_per_mat;
1752 sl_data_drv->power.readOp.leakage * subarray.num_cols_fa_cam;
1763 power_bitline.readOp.gate_leakage *= subarray.num_rows * subarray.num_cols * num_subarrays_per_mat;
1785 power_row_decoders.readOp.gate_leakage = row_dec->power.readOp.gate_leakage * subarray.num_rows * num_subarrays_per_mat;
1797 sl_data_drv->power.readOp.gate_leakage * subarray.num_cols_fa_cam;
1807 //power_bitline.readOp.leakage *= subarray.num_rows * subarray.num_cols * num_subarrays_per_mat;
1826 subarray.num_rows * num_subarrays_per_mat * (RWP + ERP + EWP);
1835 sl_data_drv->power.readOp.leakage * subarray.num_cols_fa_cam;
1860 row_dec->power.readOp.gate_leakage * subarray.num_rows *
1871 sl_data_drv->power.readOp.gate_leakage * subarray.num_cols_fa_cam;