add kintex 480T support

Signed-off-by: Hans Baier <hansfbaier@gmail.com>
This commit is contained in:
Hans Baier 2022-06-07 09:25:33 +07:00 committed by Hans Baier
parent 4214de4ece
commit ee5ffe2333
5 changed files with 243 additions and 5 deletions

View File

@ -189,7 +189,7 @@ $(foreach DB,$(DATABASES),$(eval $(call database,$(DB))))
ARTIX_PARTS=artix7_50t artix7_200t
ZYNQ_PARTS=zynq7010
KINTEX_PARTS=kintex7_160t
KINTEX_PARTS=kintex7_160t kintex7_480t
SPARTAN_PARTS=
XRAY_PARTS=${ARTIX_PARTS} ${ZYNQ_PARTS} ${KINTEX_PARTS} ${SPARTAN_PARTS}

View File

@ -111,17 +111,32 @@ def add_tile_bits(
assert offset + words <= 101, (
tile_name, offset + words, offset, words, block_type)
is_xc7k480t = 'xc7k480t' in os.environ['XRAY_PART']
baseaddr_str = '0x%08X' % baseaddr
block = bits.get(block_type, None)
if block is not None:
done = True
verbose and print(
"%s: existing defintion for %s" % (tile_name, block_type))
assert block["baseaddr"] == baseaddr_str
assert block["frames"] == frames, (block, frames)
assert block["offset"] == offset, "%s; orig offset %s, new %s" % (
tile_name, block["offset"], offset)
# TODO: HACK: some of the offsets of the K480T seem to be messed up
# using the maximum offset below seems to make most sense when looking
# at the preceding blocks
if is_xc7k480t:
if not block["offset"] == offset:
print("XXX Hack: %s; orig offset %s, new %s" % (tile_name, block["offset"], offset))
offset = max(block['offset'], offset)
print("XXX Hack: using offset {offset}")
done = False
else:
assert block["offset"] == offset, "%s; orig offset %s, new %s" % (
- tile_name, block["offset"], offset)
assert block["words"] == words
return
if done: return
block = bits.setdefault(block_type, {})
# FDRI address

View File

@ -0,0 +1,176 @@
CMT_TOP_R_LOWER_T_X8Y122/CMT_PHASER_DOWN_DQS_TO_PHASER_A
CMT_TOP_R_LOWER_T_X8Y174/CMT_PHASER_DOWN_DQS_TO_PHASER_A
CMT_TOP_R_LOWER_T_X8Y18/CMT_PHASER_DOWN_DQS_TO_PHASER_A
CMT_TOP_R_LOWER_T_X8Y226/CMT_PHASER_DOWN_DQS_TO_PHASER_A
CMT_TOP_R_LOWER_T_X8Y278/CMT_PHASER_DOWN_DQS_TO_PHASER_A
CMT_TOP_R_LOWER_T_X8Y330/CMT_PHASER_DOWN_DQS_TO_PHASER_A
CMT_TOP_R_LOWER_T_X8Y382/CMT_PHASER_DOWN_DQS_TO_PHASER_A
CMT_TOP_R_LOWER_T_X8Y70/CMT_PHASER_DOWN_DQS_TO_PHASER_A
CMT_TOP_R_UPPER_B_X8Y135/CMT_PHASER_UP_DQS_TO_PHASER_D
CMT_TOP_R_UPPER_B_X8Y187/CMT_PHASER_UP_DQS_TO_PHASER_D
CMT_TOP_R_UPPER_B_X8Y239/CMT_PHASER_UP_DQS_TO_PHASER_D
CMT_TOP_R_UPPER_B_X8Y291/CMT_PHASER_UP_DQS_TO_PHASER_D
CMT_TOP_R_UPPER_B_X8Y31/CMT_PHASER_UP_DQS_TO_PHASER_D
CMT_TOP_R_UPPER_B_X8Y343/CMT_PHASER_UP_DQS_TO_PHASER_D
CMT_TOP_R_UPPER_B_X8Y395/CMT_PHASER_UP_DQS_TO_PHASER_D
CMT_TOP_R_UPPER_B_X8Y83/CMT_PHASER_UP_DQS_TO_PHASER_D
LIOI3_TBYTESRC_X0Y107/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y107/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y119/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y119/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y131/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y131/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y143/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y143/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y157/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y157/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y169/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y169/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y181/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y181/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y193/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y193/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y19/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y19/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y207/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y207/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y219/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y219/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y231/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y231/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y243/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y243/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y257/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y257/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y269/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y269/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y281/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y281/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y293/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y293/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y307/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y307/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y319/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y319/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y31/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y31/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y331/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y331/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y343/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y343/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y357/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y357/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y369/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y369/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y381/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y381/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y393/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y393/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y43/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y43/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y57/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y57/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y69/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y69/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y7/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y7/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y81/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y81/LIOI_I2GCLK_TOP1
LIOI3_TBYTESRC_X0Y93/LIOI_I2GCLK_BOT1
LIOI3_TBYTESRC_X0Y93/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y113/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y113/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y137/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y137/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y13/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y13/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y163/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y163/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y187/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y187/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y213/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y213/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y237/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y237/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y263/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y263/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y287/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y287/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y313/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y313/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y337/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y337/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y363/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y363/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y37/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y37/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y387/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y387/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y63/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y63/LIOI_I2GCLK_TOP1
LIOI3_TBYTETERM_X0Y87/LIOI_I2GCLK_BOT1
LIOI3_TBYTETERM_X0Y87/LIOI_I2GCLK_TOP1
LIOI3_X0Y105/LIOI_I2GCLK_TOP1
LIOI3_X0Y109/LIOI_I2GCLK_BOT1
LIOI3_X0Y117/LIOI_I2GCLK_TOP1
LIOI3_X0Y121/LIOI_I2GCLK_BOT1
LIOI3_X0Y129/LIOI_I2GCLK_TOP1
LIOI3_X0Y133/LIOI_I2GCLK_BOT1
LIOI3_X0Y141/LIOI_I2GCLK_TOP1
LIOI3_X0Y145/LIOI_I2GCLK_BOT1
LIOI3_X0Y155/LIOI_I2GCLK_TOP1
LIOI3_X0Y159/LIOI_I2GCLK_BOT1
LIOI3_X0Y167/LIOI_I2GCLK_TOP1
LIOI3_X0Y171/LIOI_I2GCLK_BOT1
LIOI3_X0Y179/LIOI_I2GCLK_TOP1
LIOI3_X0Y17/LIOI_I2GCLK_TOP1
LIOI3_X0Y183/LIOI_I2GCLK_BOT1
LIOI3_X0Y191/LIOI_I2GCLK_TOP1
LIOI3_X0Y195/LIOI_I2GCLK_BOT1
LIOI3_X0Y205/LIOI_I2GCLK_TOP1
LIOI3_X0Y209/LIOI_I2GCLK_BOT1
LIOI3_X0Y217/LIOI_I2GCLK_TOP1
LIOI3_X0Y21/LIOI_I2GCLK_BOT1
LIOI3_X0Y221/LIOI_I2GCLK_BOT1
LIOI3_X0Y229/LIOI_I2GCLK_TOP1
LIOI3_X0Y233/LIOI_I2GCLK_BOT1
LIOI3_X0Y241/LIOI_I2GCLK_TOP1
LIOI3_X0Y245/LIOI_I2GCLK_BOT1
LIOI3_X0Y255/LIOI_I2GCLK_TOP1
LIOI3_X0Y259/LIOI_I2GCLK_BOT1
LIOI3_X0Y267/LIOI_I2GCLK_TOP1
LIOI3_X0Y271/LIOI_I2GCLK_BOT1
LIOI3_X0Y279/LIOI_I2GCLK_TOP1
LIOI3_X0Y283/LIOI_I2GCLK_BOT1
LIOI3_X0Y291/LIOI_I2GCLK_TOP1
LIOI3_X0Y295/LIOI_I2GCLK_BOT1
LIOI3_X0Y29/LIOI_I2GCLK_TOP1
LIOI3_X0Y305/LIOI_I2GCLK_TOP1
LIOI3_X0Y309/LIOI_I2GCLK_BOT1
LIOI3_X0Y317/LIOI_I2GCLK_TOP1
LIOI3_X0Y321/LIOI_I2GCLK_BOT1
LIOI3_X0Y329/LIOI_I2GCLK_TOP1
LIOI3_X0Y333/LIOI_I2GCLK_BOT1
LIOI3_X0Y33/LIOI_I2GCLK_BOT1
LIOI3_X0Y341/LIOI_I2GCLK_TOP1
LIOI3_X0Y345/LIOI_I2GCLK_BOT1
LIOI3_X0Y355/LIOI_I2GCLK_TOP1
LIOI3_X0Y359/LIOI_I2GCLK_BOT1
LIOI3_X0Y367/LIOI_I2GCLK_TOP1
LIOI3_X0Y371/LIOI_I2GCLK_BOT1
LIOI3_X0Y379/LIOI_I2GCLK_TOP1
LIOI3_X0Y383/LIOI_I2GCLK_BOT1
LIOI3_X0Y391/LIOI_I2GCLK_TOP1
LIOI3_X0Y395/LIOI_I2GCLK_BOT1
LIOI3_X0Y41/LIOI_I2GCLK_TOP1
LIOI3_X0Y45/LIOI_I2GCLK_BOT1
LIOI3_X0Y55/LIOI_I2GCLK_TOP1
LIOI3_X0Y59/LIOI_I2GCLK_BOT1
LIOI3_X0Y5/LIOI_I2GCLK_TOP1
LIOI3_X0Y67/LIOI_I2GCLK_TOP1
LIOI3_X0Y71/LIOI_I2GCLK_BOT1
LIOI3_X0Y79/LIOI_I2GCLK_TOP1
LIOI3_X0Y83/LIOI_I2GCLK_BOT1
LIOI3_X0Y91/LIOI_I2GCLK_TOP1
LIOI3_X0Y95/LIOI_I2GCLK_BOT1
LIOI3_X0Y9/LIOI_I2GCLK_BOT1

View File

@ -3,4 +3,7 @@
fabric: "xc7k70t"
"xc7k160t":
fabric: "xc7k160t"
"xc7k420t":
fabric: "xc7k480t"
"xc7k480t":
fabric: "xc7k480t"

44
settings/kintex7_480t.sh Normal file
View File

@ -0,0 +1,44 @@
# Copyright (C) 2017-2020 The Project X-Ray Authors.
#
# Use of this source code is governed by a ISC-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/ISC
#
# SPDX-License-Identifier: ISC
export XRAY_DATABASE="kintex7"
export XRAY_PART="xc7k480tffg1156-2"
export XRAY_ROI_FRAMES="0x00000000:0xffffffff"
export XRAY_PIN_00=AL18
export XRAY_PIN_01=AL19
export XRAY_PIN_02=AK18
export XRAY_PIN_03=AK19
# select the whole part
export XRAY_ROI_TILEGRID="SLICE_X0Y0:SLICE_X153Y349 DSP48_X0Y0:DSP48_X5Y139 RAMB18_X0Y0:RAMB18_X5Y139 RAMB36_X0Y0:RAMB36_X4Y69"
export XRAY_EXCLUDE_ROI_TILEGRID=""
# This is used by fuzzers/005-tilegrid/generate_full.py
# (special handling for frame addresses of certain IOIs -- see the script for details).
# This needs to be changed for any new device!
# If you have a FASM mismatch or unknown bits in IOIs, CHECK THIS FIRST.
export XRAY_IOI3_TILES="LIOI3_X0Y9"
# These settings must remain in sync
export XRAY_ROI="SLICE_X0Y0:SLICE_X153Y349 DSP48_X0Y0:DSP48_X5Y139 RAMB18_X0Y0:RAMB18_X5Y139 RAMB36_X0Y0:RAMB36_X4Y69"
# Part of CMT X0Y1
export XRAY_ROI_GRID_X1="-1"
export XRAY_ROI_GRID_X2="-1"
# Include VBRK / VTERM
export XRAY_ROI_GRID_Y1="-1"
export XRAY_ROI_GRID_Y2="-1"
source $(dirname ${BASH_SOURCE[0]})/../utils/environment.sh
env=$(python3 ${XRAY_UTILS_DIR}/create_environment.py)
ENV_RET=$?
if [[ $ENV_RET != 0 ]] ; then
return $ENV_RET
fi
eval $env