From 8434bf85a2f9b219c9b5f872ef3da8afbdd15d97 Mon Sep 17 00:00:00 2001 From: Ben Reynwar Date: Wed, 4 Aug 2021 17:45:47 -0400 Subject: [PATCH] Adding description of segdata file format. Signed-off-by: Ben Reynwar --- docs/db_dev_process/parts.rst | 37 ++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/docs/db_dev_process/parts.rst b/docs/db_dev_process/parts.rst index 0ade1566..9e6ef9d9 100644 --- a/docs/db_dev_process/parts.rst +++ b/docs/db_dev_process/parts.rst @@ -10,7 +10,7 @@ bitread: to get the various FASM features. segmatch: Used in the fuzzing process to correlate the different bits and find which one belong to which feature. -gen_part_base_yaml. +gen_part_base_yaml: Used to get a high level information on the device structure (number of configuration rows/columns and maximum frame addresses) xc7frames2bit: @@ -24,3 +24,38 @@ bits2rbt: ??? frame_address_decoder: ??? + +segmatch +-------- +This tools takes input files of the format: + +code:: + seg 00000000_050 + bit 38_15 + bit 39_14 + <....> + tag HCLK_IOI3.LVDS_25_IN_USE 0 + tag HCLK_IOI3.ONLY_DIFF_IN_USE 0 + <...> + seg 00001C80_050 + bit 38_15 + bit 38_26 + +where `seg ` indicates how to address the tile, +and `bit ` indicates the position of the bit +within the tile. + +base_frame_address: + The frame address of the first frame that configures the tile. + +tile_offset: + The word index of the first word that configures the tile within a frame. + +frame_address_offset: + frame_address - base_frame_address + +bit_position: + The index of the bit within the words of this frame that configure this tile. + +The `prjxray.segmaker.Segmaker` is a helper class that can be used to write these +files inside the fuzzer's `generate.py`.