| # 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. |