mirror of https://github.com/openXC7/prjxray.git
FUZZER - DSP - Add A & B Input Attributes
Adding `A_INPUT` and `B_INPUT` attribute fuzzing for the DSP48 tiles. Signed-off-by: Jake Mercer <jmercer04@qub.ac.uk>
This commit is contained in:
parent
5598d39d6d
commit
c575adf8a0
|
|
@ -10,6 +10,16 @@ with open('params.csv', 'r') as f:
|
|||
for d in csv.DictReader(f):
|
||||
dsp = "DSP_0" if d['site'][-1] in "02468" else "DSP_1"
|
||||
|
||||
a_input = str(d['a_input'])
|
||||
segmk.add_site_tag(
|
||||
d['site'], "%s.A_INPUT[0]" % (dsp),
|
||||
(1 if a_input == "DIRECT" else 0))
|
||||
|
||||
b_input = str(d['b_input'])
|
||||
segmk.add_site_tag(
|
||||
d['site'], "%s.B_INPUT[0]" % (dsp),
|
||||
(1 if b_input == "DIRECT" else 0))
|
||||
|
||||
mask = int(d['mask'])
|
||||
pattern = int(d['pattern'])
|
||||
|
||||
|
|
|
|||
|
|
@ -18,9 +18,14 @@ def gen_sites():
|
|||
|
||||
|
||||
def write_params(lines):
|
||||
pinstr = 'tile,site,mask,pattern\n'
|
||||
for tile, site, mask, pattern in lines:
|
||||
pinstr += '%s,%s,%s,%s\n' % (tile, site, mask, pattern)
|
||||
pinstr = 'tile,site,a_input,b_input,mask,pattern\n'
|
||||
for tile, site, a_input, b_input, mask, pattern in lines:
|
||||
pinstr += '%s,' % (tile)
|
||||
pinstr += '%s,' % (site)
|
||||
pinstr += '%s,' % (a_input)
|
||||
pinstr += '%s,' % (b_input)
|
||||
pinstr += '%s,' % (mask)
|
||||
pinstr += '%s\n' % (pattern)
|
||||
|
||||
open('params.csv', 'w').write(pinstr)
|
||||
|
||||
|
|
@ -36,17 +41,21 @@ module top();
|
|||
for (tile_name, site_name) in sites:
|
||||
mask = random.randint(0, 2**48 - 1)
|
||||
pattern = random.randint(0, 2**48 - 1)
|
||||
lines.append((tile_name, site_name, mask, pattern))
|
||||
a_input = random.choice(('DIRECT', 'CASCADE'))
|
||||
b_input = random.choice(('DIRECT', 'CASCADE'))
|
||||
lines.append((tile_name, site_name, a_input, b_input, mask, pattern))
|
||||
|
||||
print(
|
||||
'''
|
||||
(* KEEP, DONT_TOUCH, LOC = "{0}" *)
|
||||
DSP48E1 #(
|
||||
.MASK(48'h{1:x}),
|
||||
.PATTERN(48'h{2:x})
|
||||
.A_INPUT("{1}"),
|
||||
.B_INPUT("{2}"),
|
||||
.MASK(48'h{3:x}),
|
||||
.PATTERN(48'h{4:x})
|
||||
) dsp_{0} (
|
||||
);
|
||||
'''.format(site_name, mask, pattern))
|
||||
'''.format(site_name, a_input, b_input, mask, pattern))
|
||||
|
||||
print("endmodule")
|
||||
write_params(lines)
|
||||
|
|
|
|||
Loading…
Reference in New Issue