prjxray/fuzzers/005-tilegrid
Keith Rothman 465fd4731d Add prohibited site list to tilegrid.
Prohibited sites are sites that Vivado will not place at.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
2020-03-13 15:21:43 -07:00
..
bram Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
bram_block Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
bram_int Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
cfg Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
cfg_int Add some samples for cfg_int to remove discrepancies. 2020-02-19 16:34:12 -08:00
clb Convert CLB/CLB_INT tilegrid fuzzer to workaround prohibited locations. 2020-03-09 13:47:03 -07:00
clb_int Convert CLB/CLB_INT tilegrid fuzzer to workaround prohibited locations. 2020-03-09 13:47:03 -07:00
clk_bufg Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
clk_hrow Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
dsp Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
dsp_int Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
fifo_int Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
fuzzaddr Remove some unused targets from fuzzaddr/common.mk 2020-02-19 16:34:12 -08:00
hclk_cmt Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
hclk_ioi Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
iob zynq: Allow LIOB baseaddr 2020-01-27 10:21:38 +01:00
iob_int Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
ioi Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
mmcm Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
monitor Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
monitor_int Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
orphan_int_column Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
pll Move all part-specific files to dedicated directory 2020-01-24 10:13:33 +01:00
ps7_int generate both xc7010 and xc7020 parts 2020-01-27 11:26:55 +01:00
Makefile Don't clobber other parts build directories on run target. 2020-02-19 16:34:11 -08:00
README.md 005-tilegrid: added comment on EXCLUDE_ROI env variable 2020-01-24 10:13:33 +01:00
add_tdb.py Run make format. 2020-02-19 16:34:12 -08:00
generate.py Add prohibited site list to tilegrid. 2020-03-13 15:21:43 -07:00
generate.sh introduce vivado wrapper 2018-12-28 19:05:49 +01:00
generate_full.py zynq: Add BRKH_INT_PSS tile type to fix assertion 2020-01-27 10:20:22 +01:00
generate_tiles.tcl Add prohibited site list to tilegrid. 2020-03-13 15:21:43 -07:00
top.v tilegrid: fix IBUF define 2018-12-04 20:59:37 -08:00
util.py Remove some of the __future__.] 2019-01-28 12:54:36 -08:00
util.tcl Enable the generation of extra part-dependents files 2020-01-24 10:13:33 +01:00

README.md

Tilegrid Fuzzer

This fuzzer creates the tilegrid.json bitstream database. This database contains segment definitions including base frame address and frame offsets.

Example workflow for CLB

generate.tcl LOCs one LUT per segment column towards generating frame base addresses.

A reference bitstream is generated and then:

  • a series of bitstreams are generated each with one LUT bit toggled; then
  • these are compared to find a toggled bit in the CLB segment column; then
  • the resulting address is truncated to get the base frame address.

Finally, generate.py calculates the segment word offsets based on known segment column structure

Environment variables

XRAY_ROI

This environment variable must be set with a valid ROI. See database for example values

XRAY_EXCLUDE_ROI_TILEGRID

This environment variable must be set in case the part selected does not allow some tiles to be locked.

Error example (when using the artix 200T part): ERROR: [Place 30-25] Component carry4_SLICE_X82Y249 has been locked to a prohibited site SLICE_X82Y249.

To avoid this error, the XRAY_EXCLUDE_ROI_TILEGRID defines an ROI that is not taken into account when building the tilegrid, therefore excluding the problematic un-lockable sites.

As the resulting output file, tilegrid.json, is going to be checked against the one produced in the 074-dump_all fuzzer, also the latter one needs to produce a reduced tilegrid, with the excluded tiles specified with the environment variable.

XRAY_ROI_FRAMES

This can be set to a specific value to speed up processing and reduce disk space If you don't know where your ROI is, just set to to include all values (0x00000000:0xfffffff)

XRAY_ROI_GRID_*

Optionally, use these as a small performance optimization:

  • XRAY_ROI_GRID_X1
  • XRAY_ROI_GRID_X2
  • XRAY_ROI_GRID_Y1
  • XRAY_ROI_GRID_Y2

These should, if unused, be set to -1, with this caveat:

WARNING: CLB test generates this based on CLBs but implicitly includes INT

Therefore, if you don't set an explicit XRAY_ROI_GRID_* it may fail if you don't have a CLB*_L at left and a CLB*_R at right.