Vivado bram fix (#1838)

* testing fix to correctly generate brams in vivado

* added case of no maskpid

* fixed typo
This commit is contained in:
Erik Danie 2019-02-12 20:10:20 -08:00 committed by Henry Cook
parent c3e03be0f5
commit 313cd1ff7e
1 changed files with 9 additions and 4 deletions

View File

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