From 6a031b6474328f6d7f6080f1a0d8e7eb44ef16d6 Mon Sep 17 00:00:00 2001 From: Ben Reynwar Date: Wed, 4 Aug 2021 12:10:55 -0400 Subject: [PATCH 1/3] Adding short explanations of tools (courtesy of acomodi on the symbiflow chat). Signed-off-by: Ben Reynwar --- docs/db_dev_process/parts.rst | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/db_dev_process/parts.rst b/docs/db_dev_process/parts.rst index be6dc0d2..0ade1566 100644 --- a/docs/db_dev_process/parts.rst +++ b/docs/db_dev_process/parts.rst @@ -4,3 +4,23 @@ Tools `SymbiFlow/prjxray/tools/` Here, you can find various programs to work with bitstreams, mainly to assist building fuzzers. + +bitread: + Used to read a bitstream file to output a readable bitfile that can be than used + 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. + Used to get a high level information on the device structure (number of + configuration rows/columns and maximum frame addresses) +xc7frames2bit: + Used to write a bitstream file starting from a frames one. Where, in turn, + the frames file can be generated starting from a FASM file. +xc7patch: + Used to patch a pre-existing bitstream with additional bits. +bittool: + ??? +bits2rbt: + ??? +frame_address_decoder: + ??? From fdc0dea7c5ae0f1ae3cc3702bfe6cbb91720f736 Mon Sep 17 00:00:00 2001 From: Ben Reynwar Date: Wed, 4 Aug 2021 17:45:47 -0400 Subject: [PATCH 2/3] 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`. From 3d5b29336f358d8b09fa0ceca5a4d070c0baf6b7 Mon Sep 17 00:00:00 2001 From: Ben Reynwar Date: Fri, 3 Sep 2021 16:48:07 -0400 Subject: [PATCH 3/3] Fixing segdata file format description in docs. Signed-off-by: Ben Reynwar --- docs/db_dev_process/parts.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/db_dev_process/parts.rst b/docs/db_dev_process/parts.rst index 9e6ef9d9..53ec4728 100644 --- a/docs/db_dev_process/parts.rst +++ b/docs/db_dev_process/parts.rst @@ -41,8 +41,8 @@ code:: bit 38_15 bit 38_26 -where `seg ` indicates how to address the tile, -and `bit ` indicates the position of the bit +where `seg _` indicates how to address the tile, +and `bit _` indicates the position of the bit within the tile. base_frame_address: