def visit_GenerateFor(self, node): genfor_visitor = VerilogBlockingVisitor() pre = genfor_visitor.visit(node.pre) cond = genfor_visitor.visit(node.cond) post = genfor_visitor.visit(node.post) items = self._visit_Generate(node) block = vast.Block(items, scope=node.scope) _for = vast.ForStatement(pre, cond, post, block) return vast.GenerateStatement(tuple([_for]))
def visit_GenerateIf(self, node): genif_visitor = VerilogBlockingVisitor() cond = genif_visitor.visit(node.cond) true_items = self._visit_Generate(node) true_block = vast.Block(true_items, scope=node.true_scope) false_items = self._visit_Generate(node.Else) false_block = (vast.Block(false_items, scope=node.Else.false_scope) if false_items else None) _if = vast.IfStatement(cond, true_block, false_block) return vast.GenerateStatement(tuple([_if]))