sourceNode = OffChipBuffer.getBuffer(node.getPrevious(), node).getDRAM();
sourceNode = OffChipBuffer.getBuffer(node.getPrevious(), node).getNonRedundant().getDRAM();
    private static void appendReceiveInstructions(FilterTraceNode node, int itemsReceiving,						  FilterInfo filterInfo,						  boolean init, boolean primePump, RawTile tile,						  RawChip rawChip)     {	//the source of the data, either a device or another raw tile	ComputeNode sourceNode = null;		if (node.getPrevious().isFilterTrace())	    sourceNode = rawChip.getTile(((FilterTraceNode)node.getPrevious()).getX(), 					 ((FilterTraceNode)node.getPrevious()).getY());	else {	    if (KjcOptions.magicdram && node.getPrevious() != null &&		node.getPrevious().isInputTrace() &&		tile.hasIODevice()) 		sourceNode = tile.getIODevice();	    else 		sourceNode = OffChipBuffer.getBuffer(node.getPrevious(), node).getDRAM();	}		for (int j = 0; j < itemsReceiving; j++) {	    RouteIns ins = new RouteIns(tile);	    //add the route from the source tile to this	    //tile's compute processor	    ins.addRoute(sourceNode,			 tile);	    //append the instruction to the appropriate schedule	    //for the primepump append to the end of the init stage	    //so set final arg to true if init or primepump	    tile.getSwitchCode().appendIns(ins, (init || primePump));	    //if we are receiving from an inputtracenode and 	    //magic dram is enabled, generate the magic dram load ins	    if (KjcOptions.magicdram && node.getPrevious() != null &&		node.getPrevious().isInputTrace())		createMagicDramLoad((InputTraceNode)node.getPrevious(), 				    node, (init || primePump), rawChip);	    	}    }