private static void addColumnsToCacheModel(CacheModel cModel,
			CacheConfigPT cacheCfg) {
		cModel.addAddColumns(new PidAddColumns());
		if (cacheCfg.isDataInstrSeparated()) {
			cModel.addAddColumns(new DISepAddColumns((int) Math.pow(2, cacheCfg
					.getNumberEntriesNBits(true))));
		} else {
			cModel.addAddColumns(new DIAddColumns());
		}
		if (cacheCfg.getNumberSetsNBits() != 0) {
			cModel.addAddColumns(new SetsAddColumns((int) Math.pow(2, cacheCfg
					.getNumberSetsNBits())));
		}
		// cache eviction policy
		switch (cacheCfg.getEvictionPolicy()) {
		case CacheEvictionPolicyType.FIFO_POLICY:
			cModel.addAddColumns(new FIFOAddColumns());
			break;
		case CacheEvictionPolicyType.LFU_POLICY:
			cModel.addAddColumns(new LFUAddColumns());
			break;
		case CacheEvictionPolicyType.LRU_POLICY:
			cModel.addAddColumns(new LRUAddColumns());
			break;
		case CacheEvictionPolicyType.MRU_POLICY:
			cModel.addAddColumns(new MRUAddColumns());
			break;
		case CacheEvictionPolicyType.NFU_POLICY:
			cModel.addAddColumns(new NFUAddColumns());
			break;
		case CacheEvictionPolicyType.NRU_POLICY:
			cModel.addAddColumns(new NRUAddColumns());
			break;
		}

	}