log_assert(variables.count(str) != 0);
 
+               if (stmt->type == AST_LOCALPARAM)
+               {
+                       while (stmt->simplify(true, false, false, 1, -1, false, true)) { }
+
+                       if (!backup_scope.count(stmt->str))
+                               backup_scope[stmt->str] = current_scope[stmt->str];
+                       current_scope[stmt->str] = stmt;
+
+                       block->children.erase(block->children.begin());
+                       continue;
+               }
+
                if (stmt->type == AST_ASSIGN_EQ)
                {
                        if (stmt->children.at(0)->type == AST_IDENTIFIER && stmt->children.at(0)->children.size() != 0 &&
 
 module top(out);
        function integer operation;
                input integer num;
+               localparam incr = 1;
+               localparam mult = 1;
                begin
                        operation = 0;
                        begin : op_i
                                integer i;
-                               for (i = 0; i < 2; i = i + 1)
+                               for (i = 0; i * mult < 2; i = i + incr)
                                begin : op_j
                                        integer j;
-                                       for (j = i; j < i * 2; j = j + 1)
-                                               num = num + 1;
+                                       localparam other_mult = 2;
+                                       for (j = i; j < i * other_mult; j = j + incr)
+                                               num = num + incr;
                                end
                                num = num * 2;
                        end