Currently is able to parse IDCODE and frames from a sequence of
ConfigurationPackets.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>
Currently just the pieces required to successfully identify and decode
a bitstream into configuration frames.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>
Need to manually translate row_half from human-readable form in YAML
(top/bottom) to true/false. Requesting a Node as a uint8_t returns the
first char in the YAML field rather than parsing the field as an
integer. Just used unsigned ints and let the constructor force them to
smaller types.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>
Type 0 shouldn't exist but bitstreams generated with
BITSTREAM.GENERAL.DEBUGBITSTREAM=YES seem to use them as padding.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>
binary literals are a C++14 feature. Use hex literals instead to
keep C++11 compatibility.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>
Type 2 packets are used for when the amount of data required exceeds the
word count field in a Type 1 header. ConfigurationPacket mostly hides
this detail from the user but occasionally it is handy for debugging.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>
Both ConfigurationPacket and Configuration need to reference registers.
Use a common scoped enum to reduce change of errors. Leverage stream
operator to simplify outputing register names.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>
Class names were getting unwieldy. Use a namespace to group all the
7series classes and allow for shorter class names.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>
Reads the raw bitstream into configuration packets that represent
internal register writes.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>
Encapsulates configuration packets used in Xilinx 7-Series bitstream
format. The same class handles both Type 1 and Type 2 packets.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>
Functions for hiding all the masking and shifting required for accessing
bit ranges within an integer type.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>
Currently provides list of segbits files saved in the database.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>
Acts as an iterator that yields a single record from the file. Uses a
memory-mapped file and absl::string_view to avoid copies within the
reader.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>
mmap() will fail for a zero-length mapping. A valid object should still
be returned to signal that the file was opened to the caller but it
should have a nullptr for data and zero for size.
Signed-off-by: Rick Altherr <[email protected]>
Signed-off-by: Tim 'mithro' Ansell <[email protected]>