if (ssg.isInput(node)) {
if (ssg.isInput(node) || ssg.simulator instanceof NoSimulator) {
    public void visitNode(FlatNode node) {        if (node.isFilter()) {            SIRFilter filter = (SIRFilter) node.contents;                        if (!Layout.assignToATile(node))                return;            //calculate various stats of the filter                        calculateItems(filter);            System.out.print("Generating Raw Code: "                             + node.contents.getName() + " ");            //          attempt to generate direct communication code            // (no buffer), if this returns true it was sucessful            // and the code was produced            if (bottomPeek == 0 && remaining == 0                && DirectCommunication.doit(ssg, node)) {                System.out.println("(Direct Communication)");                return;            }            //if we get here, then we need a buffer!            if (ssg.isInput(node)) {             // dynamic input                // create dynamic network code and a circular buffer                (new BufferedDynamicCommunication(ssg, node)).doit();            } else {                // create static network code and a buffer (maybe circular or                // linear)                (new BufferedStaticCommunication(ssg, node, bottomPeek,                                                 remaining, initFire)).doit();            }        }    }