mirror of https://github.com/openXC7/prjxray.git
62 lines
1.7 KiB
ReStructuredText
62 lines
1.7 KiB
ReStructuredText
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:
|
|
???
|
|
|
|
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 <base_frame_address>_<tile_offset>` indicates how to address the tile,
|
|
and `bit <frame_address_offset>_<bit_position>` 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`.
|