FUZZER - DSP - Add AUTORESET_PATDET Attribute Fuzzing

Added fuzzing for the AUTORESET_PATDET attribute of the DSP48 block.  Values are RESET_MATCH,
NO_RESET, and RESET_NOT_MATCH; so this can be represented by 2 bits.

Signed-off-by: Jake Mercer <jmercer04@qub.ac.uk>
This commit is contained in:
Jake Mercer 2019-10-06 16:30:10 +01:00 committed by Jake Mercer
parent c575adf8a0
commit 78d64f7558
2 changed files with 24 additions and 6 deletions

View File

@ -20,6 +20,17 @@ with open('params.csv', 'r') as f:
d['site'], "%s.B_INPUT[0]" % (dsp),
(1 if b_input == "DIRECT" else 0))
autoreset_patdet = str(d['autoreset_patdet'])
if autoreset_patdet == "RESET_MATCH":
segmk.add_site_tag(d['site'], "%s.AUTO_RESET_PATDET[0]" % (dsp), 0)
segmk.add_site_tag(d['site'], "%s.AUTO_RESET_PATDET[1]" % (dsp), 0)
elif autoreset_patdet == "NO_RESET":
segmk.add_site_tag(d['site'], "%s.AUTO_RESET_PATDET[0]" % (dsp), 0)
segmk.add_site_tag(d['site'], "%s.AUTO_RESET_PATDET[1]" % (dsp), 1)
elif autoreset_patdet == "RESET_NOT_MATCH":
segmk.add_site_tag(d['site'], "%s.AUTO_RESET_PATDET[0]" % (dsp), 1)
segmk.add_site_tag(d['site'], "%s.AUTO_RESET_PATDET[1]" % (dsp), 0)
mask = int(d['mask'])
pattern = int(d['pattern'])

View File

@ -18,12 +18,13 @@ def gen_sites():
def write_params(lines):
pinstr = 'tile,site,a_input,b_input,mask,pattern\n'
for tile, site, a_input, b_input, mask, pattern in lines:
pinstr = 'tile,site,a_input,b_input,autoreset_patdet,mask,pattern\n'
for tile, site, a_input, b_input, autoreset_patdet, mask, pattern in lines:
pinstr += '%s,' % (tile)
pinstr += '%s,' % (site)
pinstr += '%s,' % (a_input)
pinstr += '%s,' % (b_input)
pinstr += '%s,' % (autoreset_patdet)
pinstr += '%s,' % (mask)
pinstr += '%s\n' % (pattern)
@ -43,7 +44,12 @@ module top();
pattern = random.randint(0, 2**48 - 1)
a_input = random.choice(('DIRECT', 'CASCADE'))
b_input = random.choice(('DIRECT', 'CASCADE'))
lines.append((tile_name, site_name, a_input, b_input, mask, pattern))
autoreset_patdet = random.choice(
('NO_RESET', 'RESET_MATCH', 'RESET_NOT_MATCH'))
lines.append(
(
tile_name, site_name, a_input, b_input, autoreset_patdet, mask,
pattern))
print(
'''
@ -51,11 +57,12 @@ module top();
DSP48E1 #(
.A_INPUT("{1}"),
.B_INPUT("{2}"),
.MASK(48'h{3:x}),
.PATTERN(48'h{4:x})
.AUTORESET_PATDET("{3}"),
.MASK(48'h{4:x}),
.PATTERN(48'h{5:x})
) dsp_{0} (
);
'''.format(site_name, a_input, b_input, mask, pattern))
'''.format(site_name, a_input, b_input, autoreset_patdet, mask, pattern))
print("endmodule")
write_params(lines)