Commit Graph

13 Commits

Author SHA1 Message Date
Rick Altherr bd3fa58584 lib: xc7series: class to hold a configuration
Currently is able to parse IDCODE and frames from a sequence of
ConfigurationPackets.

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 d251aa0ed7 lib: xc7series: wrapper for part-specific information
Currently just the pieces required to successfully identify and decode
a bitstream into configuration frames.

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 4f6046d177 lib: xc7series: wrapper for ranges of config frame addresses
Includes conversion to/from YAML.

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 92509c5043 lib: xc7series: Fix frame address YAML decoding
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 <kc8apf@kc8apf.net>
Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
2017-12-20 22:46:39 +01:00
Rick Altherr 6a2fb25013 lib: xc7series: YAML conversion tests for ConfigurationFrameAddress
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 7e2cdc0947 lib: xc7series: block_type YAML conversion tests
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 195323e0c8 lib: xc7series: enable conversion to/from YAML for frame addresses
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 7345f2630a lib: xc7series: Handle the curious case of Type 0 packets
Type 0 shouldn't exist but bitstreams generated with
BITSTREAM.GENERAL.DEBUGBITSTREAM=YES seem to use them as padding.

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 9cbd9bac28 lib: replace binary literals with hex literals
binary literals are a C++14 feature.  Use hex literals instead to
keep C++11 compatibility.

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 4a80475db9 lib: xc7series: record header type in configuration packets
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 <kc8apf@kc8apf.net>
Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
2017-12-20 22:46:39 +01:00
Rick Altherr fd3a5d8bab lib: xc7series: ostream overload for BlockType
Makes debugging a bit easier.

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 47e02d4cfd lib: xc7series: move register details to reusable enum
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 <kc8apf@kc8apf.net>
Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
2017-12-20 22:46:39 +01:00
Rick Altherr 0a005ab5a1 lib: move Xilinx 7series classes into a separate namespace
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 <kc8apf@kc8apf.net>
Signed-off-by: Tim 'mithro' Ansell <mithro@mithis.com>
2017-12-20 22:46:39 +01:00