@@ -22,16 +22,16 @@ def main_parser(parser=None):
2222    p_generate .add_argument ("--no-src" , dest = "emit_src" , default = True , action = "store_false" ,
2323        help = "suppress generation of source location attributes" )
2424    p_generate .add_argument ("generate_file" ,
25-         metavar = "FILE" , type = argparse . FileType ( "w" ) , nargs = "?" ,
25+         metavar = "FILE" , type = str , nargs = "?" ,
2626        help = "write generated code to FILE" )
2727
2828    p_simulate  =  p_action .add_parser (
2929        "simulate" , help = "simulate the design" )
3030    p_simulate .add_argument ("-v" , "--vcd-file" ,
31-         metavar = "VCD-FILE" , type = argparse . FileType ( "w" ) ,
31+         metavar = "VCD-FILE" , type = str ,
3232        help = "write execution trace to VCD-FILE" )
3333    p_simulate .add_argument ("-w" , "--gtkw-file" ,
34-         metavar = "GTKW-FILE" , type = argparse . FileType ( "w" ) ,
34+         metavar = "GTKW-FILE" , type = str ,
3535        help = "write GTKWave configuration to GTKW-FILE" )
3636    p_simulate .add_argument ("-p" , "--period" , dest = "sync_period" ,
3737        metavar = "TIME" , type = float , default = 1e-6 ,
@@ -47,11 +47,11 @@ def main_runner(parser, args, design, platform=None, name="top", ports=None):
4747    if  args .action  ==  "generate" :
4848        generate_type  =  args .generate_type 
4949        if  generate_type  is  None  and  args .generate_file :
50-             if  args .generate_file .name . endswith (".il" ):
50+             if  args .generate_file .endswith (".il" ):
5151                generate_type  =  "il" 
52-             if  args .generate_file .name . endswith (".cc" ):
52+             if  args .generate_file .endswith (".cc" ):
5353                generate_type  =  "cc" 
54-             if  args .generate_file .name . endswith (".v" ):
54+             if  args .generate_file .endswith (".v" ):
5555                generate_type  =  "v" 
5656        if  generate_type  is  None :
5757            parser .error ("Unable to auto-detect language, specify explicitly with -t/--type" )
@@ -62,7 +62,8 @@ def main_runner(parser, args, design, platform=None, name="top", ports=None):
6262        if  generate_type  ==  "v" :
6363            output  =  verilog .convert (design , platform = platform , name = name , ports = ports , emit_src = args .emit_src )
6464        if  args .generate_file :
65-             args .generate_file .write (output )
65+             with  open (args .generate_file , "w" ) as  f :
66+                 f .write (output )
6667        else :
6768            print (output )
6869
0 commit comments