From e8fdac9f705d36a8ea2838fb3c7a72621fa8bc29 Mon Sep 17 00:00:00 2001 From: Tomasz Michalak Date: Tue, 25 Jun 2019 15:31:21 +0200 Subject: [PATCH] prjxray: Enable instance to be printed to file instead of stdout Signed-off-by: Tomasz Michalak --- prjxray/verilog.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/prjxray/verilog.py b/prjxray/verilog.py index 029a01fd..3e3af277 100644 --- a/prjxray/verilog.py +++ b/prjxray/verilog.py @@ -35,21 +35,25 @@ endmodule ''' % (DIN_N, DOUT_N)) -def instance(mod, name, ports, params={}, sort=True): +def instance(mod, name, ports, params={}, sort=True, string_buffer=sys.stdout): # TODO: make this print nicer tosort = sorted if sort else lambda x: x - print(' %s' % mod) + print(' %s' % mod, file=string_buffer) if len(params): - print(' #(') + print(' #(', file=string_buffer) for i, (paramk, paramv) in enumerate(tosort(params.items())): comma = '' if i == len(params) - 1 else ',' - print(' .%s(%s)%s' % (paramk, paramv, comma)) - print(' )') - print(' %s (' % name) + print( + ' .%s(%s)%s' % (paramk, paramv, comma), + file=string_buffer) + print(' )', file=string_buffer) + print(' %s (' % name, file=string_buffer) for i, (portk, portv) in enumerate(tosort(ports.items())): comma = '' if i == len(ports) - 1 else ',' - print(' .%s(%s)%s' % (portk, portv, comma)) - print(' );') + print( + ' .%s(%s)%s' % (portk, portv, comma), + file=string_buffer) + print(' );', file=string_buffer) def quote(s):