@@ -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