 	}
 	cudaMemGetInfo(&avail, &total);
 	KERNEL_INFO("Neuron State:\t\t%2.3f MB\t%2.3f MB\t%2.3f MB", (float)(previous - avail) / toMB, (float)((total - avail) / toMB), (float)(avail / toMB));
-	previous = avail;
+	previous=avail;
 
 	// initialize (copy from SNN) runtimeData[0].grpDA(5HT,ACh,NE)
 	// initialize (copy from SNN) runtimeData[0].grpDA(5HT,ACh,NE)Buffer[]
 	copyGroupState(netId, ALL, &runtimeData[netId], &managerRuntimeData, cudaMemcpyHostToDevice, true);
 	cudaMemGetInfo(&avail, &total);
 	KERNEL_INFO("Group State:\t\t%2.3f MB\t%2.3f MB\t%2.3f MB", (float)(previous - avail) / toMB, (float)((total - avail) / toMB), (float)(avail / toMB));
-	previous = avail;
+	previous=avail;
 
 	// initialize (cudaMemset) runtimeData[0].I_set, runtimeData[0].poissonFireRate
 	// initialize (copy from SNN) runtimeData[0].firingTableD1, runtimeData[0].firingTableD2

	if (lGrpId == ALL) {
		posN = 0;
		lengthN = networkConfigs[netId].numNReg;
	}
	else {
		assert(lGrpId >= 0);
		posN = groupConfigs[netId][lGrpId].lStartN;
		lengthN = groupConfigs[netId][lGrpId].numN;

		// instead of reading each neuron group separately .....
		// read a whole buffer and use the result ......
		int2 threadLoad = getStaticThreadLoad(bufPos);
		int  lNId	     = (STATIC_LOAD_START(threadLoad) + threadIdx.x);
		int  lastLNId    = STATIC_LOAD_SIZE(threadLoad);
		short int lGrpId = STATIC_LOAD_GROUP(threadLoad);
		bool needToWrite = false;	// used by all neuron to indicate firing condition
		int  fireId      = 0;

		// threadId is valid and lies within the lastId.....
		if ((threadIdx.x < lastLNId) && (lNId < networkConfigGPU.numN)) {
			// Simple poisson spiker uses the poisson firing probability
			// to detect whether it has fired or not....
			if(isPoissonGroup(lGrpId)) { // spikes generated by spikeGenFunc
				if(groupConfigsGPU[lGrpId].isSpikeGenFunc) {
					unsigned int offset = lNId - groupConfigsGPU[lGrpId].lStartN + groupConfigsGPU[lGrpId].Noffset;
					needToWrite = getSpikeGenBit(offset);
				} else { // spikes generated by poission rate
					needToWrite = getPoissonSpike(lNId);
				}
				// Note: valid lastSpikeTime of spike gen neurons is required by userDefinedSpikeGenerator()
				if (needToWrite)
					runtimeDataGPU.lastSpikeTime[lNId] = simTime;
			} else {
				if (runtimeDataGPU.curSpike[lNId]) {
					runtimeDataGPU.curSpike[lNId] = false;
					needToWrite = true;
