read_verilog -icells <<EOF module top(input [2:0] a, input [2:0] b, output [2:0] y); sub sub_i (.a(a[0]), .b(b[0]), .y(y[0])); unknown_sub sub_ii (.a(a[1]), .b(b[1]), .y(y[1])); $__dunder_sub sub_iii (.a(a[2]), .b(b[2]), .y(y[2])); endmodule module sub(input a, input b, output y); assign y = a ^ b; endmodule EOF hierarchy -generate unknown_sub i:a i:b o:y hierarchy -generate $__dunder_sub i:a i:b o:y hierarchy -generate $xor i:A i:B o:Y # this one is ignored hierarchy -top top -check check -assert