Commit Graph

9 Commits

Author SHA1 Message Date
Tomasz Michalak bb400b4f1e Add licensing header to C++ source and header files
Signed-off-by: Tomasz Michalak <tmichalak@antmicro.com>
Signed-off-by: Tim 'mithro' Ansell <tansell@google.com>
2020-05-26 07:33:12 -07:00
Tomasz Michalak 35b7130116 Replace API for Series7
Signed-off-by: Tomasz Michalak <tmichalak@antmicro.com>
2019-10-09 08:45:04 +02:00
Alessandro Comodi 8537b9c9a5 gen_part_base_yaml.cc: Added the possibility to read FAR registers
For xc7z boards the Debug bitstream is unavailable. To get the necessary
information we can use the FAR addresses present in the perframecrc
bitstream.
The gen_part_base_yaml tool has been modified to have the possibility to
read the FAR addresses depending on a flag setting.

Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
2018-12-20 17:06:23 +01:00
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
Rick Altherr 50d2521b33 Apply clang-format to all C++ files
Signed-off-by: Rick Altherr <kc8apf@kc8apf.net>
2018-01-08 17:14:27 -08:00
Rick Altherr 5a664c04ec lib: xc7series: shorten ConfigurationFrameAddress to FrameAddress
Frame addresses are only used in the context of configuration frames.
Remove the prefix to reduce typing that does not improve clarity.

Signed-off-by: Rick Altherr <kc8apf@kc8apf.net>
2018-01-04 15:33:15 -08:00
Rick Altherr a4858be23a lib: accessor to get contents of a memory-mapped file as bytes
MemoryMappedFile's data() method returns a void* as it has no idea what
type the contents are.  Viewing it as bytes is a very common operation
so add a convience method that wraps the pointer in a Span<uint8_t>.

Signed-off-by: Rick Altherr <kc8apf@kc8apf.net>
2018-01-04 11:17:59 -08:00
Rick Altherr 6a17a92d83 tools: rewrite gen_part_base_yaml using xc7series::Part
Signed-off-by: Rick Altherr <kc8apf@kc8apf.net>
Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
2017-12-20 22:46:39 +01:00
Rick Altherr 5eb7e15ad3 tools: Tool to generate part YAML from a debug bitstream
Signed-off-by: Rick Altherr <kc8apf@kc8apf.net>
Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
2017-12-20 22:46:39 +01:00