if (unassignedPorts.contains(current)) {
if (unassignedPorts.contains(current) && !assignedInputDRAMs(inputT).contains(current)) {
    public static HashMap assignment(OutputTraceNode output, RawChip chip)     {	HashMap assign = new HashMap();	Iterator inputTs = output.getSortedOutputs();	HashSet unassignedPorts = new HashSet();	//populate the unassigned ports set	for (int i = 0; i < chip.getDevices().length; i++) 	    unassignedPorts.add(chip.getDevices()[i]);		while (inputTs.hasNext()) {	    //make sure we have enough ports for the outputs	    assert !unassignedPorts.isEmpty() : "Split width exceeds number of ports on the chip";	    InputTraceNode inputT = (InputTraceNode)inputTs.next();	    //now assign the buffer to the first available port that show up 	    //in the iterator	    Iterator portOrder = assignmentOrder(output, inputT, chip);	    while (portOrder.hasNext()) {		StreamingDram current = ((PortDistance)portOrder.next()).dest;		//assign the current dram to this input trace node		//and exit the inner loop		if (unassignedPorts.contains(current)) {		    unassignedPorts.remove(current);		    assign.put(inputT, current);		    break;		}	    }	}	return assign;    }