if (items == 0) return;
    private static void generateOutputDRAMCommands(OutputTraceNode output, boolean init, boolean primepump)     {	FilterTraceNode filter = (FilterTraceNode)output.getPrevious();		//don't do anything for a redundant buffer	if (output.oneOutput() && 	    OffChipBuffer.getBuffer(output, output.getDests()[0][0]).redundant())	    return;		FilterInfo filterInfo = FilterInfo.getFilterInfo(filter);	//calculate the number of items sent	int items = filterInfo.totalItemsSent(init, primepump), 	    iterations, typeSize;		typeSize = Util.getTypeSize(filter.getFilter().getOutputType());		//the numbers of times we should cycle thru this "splitter"	assert items % output.totalWeights() == 0: 	    "weights on output trace node does not divide evenly with items sent";	iterations = items / output.totalWeights();		//generate the command to read from the src of the output trace node	OffChipBuffer srcBuffer = OffChipBuffer.getBuffer(filter, output);	int readBytes = FilterInfo.getFilterInfo(filter).totalItemsSent(init, primepump) *	    Util.getTypeSize(filter.getFilter().getOutputType()) * 4;	readBytes = Util.cacheLineDiv(readBytes);	srcBuffer.getOwner().getComputeCode().addDRAMCommand(true, init || primepump,							     readBytes, srcBuffer, true); 	//generate the commands to write the o/i temp buffer dest	Iterator dests = output.getDestSet().iterator();	while (dests.hasNext()){	    InputTraceNode input = (InputTraceNode)dests.next();	    OffChipBuffer destBuffer = OffChipBuffer.getBuffer(output, input);	    int writeBytes = iterations * typeSize *		output.getWeight(input) * 4;	    writeBytes = Util.cacheLineDiv(writeBytes);	    destBuffer.getOwner().getComputeCode().addDRAMCommand(false, init || primepump,								  writeBytes, destBuffer, true);	}    }