Add ISERDESE2.DATA_WIDTH's 2-8.

10 and 14 require ISERDESE2 MASTER/SLAVE which are not currently in use.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
This commit is contained in:
Keith Rothman 2019-07-30 08:33:18 -07:00
parent 693c621e96
commit 716e4ca785
3 changed files with 38 additions and 5 deletions

View File

@ -0,0 +1,2 @@
27_110 27_112 26_109 ,IOB33.IOB_Y0.ISERDES.DATA_WIDTH.W2
26_15 26_17 27_18 ,IOB33.IOB_Y1.ISERDES.DATA_WIDTH.W2

View File

@ -19,13 +19,43 @@ def handle_data_width(segmk, d):
if 'DATA_WIDTH' not in d:
return
if d['DATA_RATE'] == 'DDR':
return
# It appears several widths end up with the same bitstream pattern.
# This groups those widths together for documentation.
widths = [
[2],
[3],
[4, 6],
[5, 7],
[8],
[10],
[14],
]
for opt in [2, 3, 4, 5, 6, 7, 8, 10, 14]:
width_map = {}
for ws in widths:
for w in ws:
width_map[w] = 'W{}'.format('_'.join(map(str, ws)))
zero_opt = 2
W_OPT_ZERO = width_map[zero_opt]
if d['DATA_WIDTH'] == zero_opt:
segmk.add_site_tag(
d['site'], 'ISERDES.DATA_WIDTH.W{}'.format(opt),
d['DATA_WIDTH'] == opt)
d['site'], 'ISERDES.DATA_WIDTH.{}'.format(W_OPT_ZERO), 1)
for opt in width_map.values():
if opt == W_OPT_ZERO:
continue
segmk.add_site_tag(
d['site'], 'ISERDES.DATA_WIDTH.{}'.format(opt), 0)
else:
w_opt = width_map[d['DATA_WIDTH']]
if w_opt != W_OPT_ZERO:
segmk.add_site_tag(
d['site'], 'ISERDES.DATA_WIDTH.{}'.format(W_OPT_ZERO), 0)
segmk.add_site_tag(
d['site'], 'ISERDES.DATA_WIDTH.{}'.format(w_opt), 1)
def handle_data_rate(segmk, d):

View File

@ -221,6 +221,7 @@ def use_iserdese2(p, luts, connects):
.OFB_USED({OFB_USED}),
.NUM_CE({NUM_CE}),
.DATA_RATE({DATA_RATE}),
.DATA_WIDTH({DATA_WIDTH}),
.IOBDELAY({IOBDELAY})
) iserdese2_{site} (
{ddly_connection}