Vivado bram fix (#1838)
* testing fix to correctly generate brams in vivado * added case of no maskpid * fixed typo
This commit is contained in:
parent
c3e03be0f5
commit
313cd1ff7e
|
@ -167,10 +167,15 @@ def gen_mem(name, width, depth, mask_gran, mask_seg, ports):
|
||||||
prefix = 'RW%d_' % idx
|
prefix = 'RW%d_' % idx
|
||||||
sequential.append('always @(posedge %sclk)' % prefix)
|
sequential.append('always @(posedge %sclk)' % prefix)
|
||||||
sequential.append(" if (%sen && %swmode) begin" % (prefix, prefix))
|
sequential.append(" if (%sen && %swmode) begin" % (prefix, prefix))
|
||||||
for i in range(mask_seg):
|
if mask_seg > 0:
|
||||||
mask = ('if (%swmask[%d]) ' % (prefix, i)) if pid in maskedports else ''
|
sequential.append(" for(i=0;i<%d;i=i+1) begin" % mask_seg)
|
||||||
ram_range = '%d:%d' % ((i+1)*mask_gran-1, i*mask_gran)
|
if pid in maskedports:
|
||||||
sequential.append(" %sram[%saddr][%s] <= %swdata[%s];" % (mask, prefix, ram_range, prefix, ram_range))
|
sequential.append(" if(%swmask[i]) begin" % prefix)
|
||||||
|
sequential.append(" ram[%saddr][i*%d +: %d] <= %swdata[i*%d +: %d];" %(prefix, mask_gran, mask_gran, prefix, mask_gran, mask_gran))
|
||||||
|
sequential.append(" end")
|
||||||
|
else:
|
||||||
|
sequential.append(" ram[%saddr][i*%d +: %d] <= %swdata[i*%d +: %d];" %(prefix, mask_gran, mask_gran, prefix, mask_gran, mask_gran))
|
||||||
|
sequential.append(" end")
|
||||||
sequential.append(" end")
|
sequential.append(" end")
|
||||||
body = "\
|
body = "\
|
||||||
%s\n\
|
%s\n\
|
||||||
|
|
Loading…
Reference in New Issue