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
These are compared to find a toggled bit in the CLB segment column
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_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 these as a small performance optimization:
-XRAY_ROI_GRID_X1
-XRAY_ROI_GRID_X2
-XRAY_ROI_GRID_Y1
-XRAY_ROI_GRID_Y2
Which 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

