From d0458bca71d139e183012343805b2038597380da Mon Sep 17 00:00:00 2001 From: John McMaster Date: Wed, 13 Dec 2017 15:30:25 -0800 Subject: [PATCH] vtemplate improvements Signed-off-by: John McMaster Signed-off-by: Tim 'mithro' Ansell --- utils/vtemplate | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/utils/vtemplate b/utils/vtemplate index a847ea30..be8a1f6f 100755 --- a/utils/vtemplate +++ b/utils/vtemplate @@ -74,6 +74,7 @@ module my_%s (input clk, input [7:0] din, output [7:0] dout); parameter LOC = ""; ''' % modname +print ' (* LOC=LOC, KEEP, DONT_TOUCH *)' print ' %s #(' % modname for pi, p in enumerate(params): name, wout, defval = p @@ -83,6 +84,8 @@ for pi, p in enumerate(params): print ' ) %s (' % modinst +DII_N = 8 +DOI_N = 8 dii = 0 doi = 0 for ioi, io in enumerate(ios): @@ -90,11 +93,23 @@ for ioi, io in enumerate(ios): comma = ',' if ioi != len(ios) - 1 else ');' if aio == 'input': - wire = 'din[%d]' % dii - dii = (dii + 1) % 8 + if wout: + n = int(abs(wout[1] - wout[0]) + 1) + if dii + n >= DII_N: + dii = 0 + wire = 'din[%d:%d]' % (dii + n, dii) + dii = (dii + n) % DII_N + else: + wire = 'din[%d]' % dii + dii = (dii + 1) % DII_N else: - wire = 'dout[%d]' % doi - doi += 1 + if wout: + n = int(abs(wout[1] - wout[0]) + 1) + wire = 'dout[%d:%d]' % (doi + n, doi) + doi = doi + n + else: + wire = 'dout[%d]' % doi + doi += 1 print ' .%s(%s)%s' % (name, wire, comma) print 'endmodule'