@@ -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 ,
@@ -48,11 +48,11 @@ def main_runner(parser, args, design, platform=None, name="top", ports=()):
4848 fragment = Fragment .get (design , platform )
4949 generate_type = args .generate_type
5050 if generate_type is None and args .generate_file :
51- if args .generate_file .name . endswith (".il" ):
51+ if args .generate_file .endswith (".il" ):
5252 generate_type = "il"
53- if args .generate_file .name . endswith (".cc" ):
53+ if args .generate_file .endswith (".cc" ):
5454 generate_type = "cc"
55- if args .generate_file .name . endswith (".v" ):
55+ if args .generate_file .endswith (".v" ):
5656 generate_type = "v"
5757 if generate_type is None :
5858 parser .error ("Unable to auto-detect language, specify explicitly with -t/--type" )
@@ -63,7 +63,8 @@ def main_runner(parser, args, design, platform=None, name="top", ports=()):
6363 if generate_type == "v" :
6464 output = verilog .convert (fragment , name = name , ports = ports , emit_src = args .emit_src )
6565 if args .generate_file :
66- args .generate_file .write (output )
66+ with open (args .generate_file , "w" ) as f :
67+ f .write (output )
6768 else :
6869 print (output )
6970
0 commit comments