prjxray/tools
Rick Altherr 2b34fbb35d xc7series: refactor Part()
ConfigurationFrameAddress row-half and row fields translate directly to
the clock region structure used in 7-series parts.  Break these concepts
out into separate classes and encode them as such in Part YAML.

Columns within a row are more complicated. Column indices are relative
to a BlockType. Think of each BlockType as a data bus that terminates at
some particular tile type (e.g. CLB_IO_CLK maps to INT_{L,R} tiles).
Column indices act as addresses of endpoints on the associated BlockType
bus.  As the bus is 1 frame (101 words, 404 bytes) wide, each endpoint
feeds frames into multiple tiles simultaneously.

Minor addresses are frame addresses within a BlockType bus endpoint.
These can refer to frames either stored within the endpoint tiles
or in tiles chained behind them.

Note that a given tile can be connected on multiple BlockType buses.
For example, block RAMs appear to be attached both by being chained
behind an INT_{L,R} on the CLB_IO_CLK bus as well as being a direct
endpoint on the BLOCK_RAM bus.  Due to this, tiles conceptually belong
to the row rather than a single column.

Signed-off-by: Rick Altherr <kc8apf@kc8apf.net>
2018-01-10 14:28:23 -08:00
..
.gitignore Ignore cmake generated files 2017-12-20 22:46:39 +01:00
CMakeLists.txt tools: Rewrite bitread using libprjxray 2017-12-20 22:46:39 +01:00
bitread.cc lib: xc7series: shorten accessor names 2018-01-10 14:28:17 -08:00
bittool.cc Apply clang-format to all C++ files 2018-01-08 17:14:27 -08:00
frame_address_decoder.cc lib: xc7series: shorten accessor names 2018-01-10 14:28:17 -08:00
gen_part_base_yaml.cc xc7series: refactor Part() 2018-01-10 14:28:23 -08:00
segmatch.cc Apply clang-format to all C++ files 2018-01-08 17:14:27 -08:00