xengine that runs on FPGAs
FPGA xengine initialization
Rename to be consistent
Renamed for consistency
rename to fit in with corr2 infrastructure
Access to configuration info, resources etc

Class provides an means to access information stored in
a configuration file (default) or katcp client (unimplemented).

Configuration information and hosts can be requested. This can
be used by an Instrument to share access to configuration information
with component processing engines.
basic engine

Configuration access added. Various compulsory methods added
engine_fpga

engine_fpga provides many generic methods for engines resident
on fpga hosts.

Basic useful functions are implemented which can be used assuming engines
follow certain rules e.g naming of registers for each engine

An attempt is made to automatically cater for;
* Multiple engines of the same type on an FPGA can be differentiated by affixing
an index starting at 0 for every engine.
* Different types of engine coresident can have a prefix added to each register
name.

This is done via entries in a configuration file, and __getattr__ overloading
various log_*_error

Methods to force errors to be logged before exiting (for non ipython use)
basic fengine, xengine

These engines are decoupled from engines and cannot have instances
made of them
host update

Each host must provide a get_config_file_info method to help
engines determine if they are running on an appropriate host.
This information is stored with each engine's configuration.

katcp_client_fpga updated to automatically call get_host_information
when a connection is made and there is something running. Also,
device and system_info structures are cleared of info got from the
FPGA when a programming event occurs to help prevent stale information
being used.
NOTE: there is still a danger of someone else programming the FPGA
behind our backs, perhaps some locking mechanism or something?
RTS f and x engine

Basic functionality implemented.

TODO:
Get epoch info from digitiser...?
Set delay coefficients at certain time for fengine
Set accumulation to start at certain time for xengine
generic fpga based f and x engines

The hope is that all FPGA based f and x engines operate in a
similar manner, e.g setting pre-equalisation gain coefficients etc
configuration file

Configuration file used to provide information about instruments,
engines, hosts, data products etc.

Used by Instrument to automagically erect an instrument consisting
of hosts, configure these hosts, and add processing engines.
non working mock_rts instrument

Instrument class created which automagically instantiates
links to hosts, programs fpgas, sets up processing engines.

FxCorrelator class which does generic fxcorrelator stuff with
help from Instrument and instrument class being implemented.

Left in the middle of editing so patchy and may not work! Sorry about
that, will fix when I get back :(
Moved fpga code to casperfpga module.
pre fpga split commit

Committing now to try to clean up separation of fpga stuff
from corr2. corr2 not in a state to be used
Merge branch 'master' of https://github.com/ska-sa/corr2

Conflicts:
	src/__init__.py
	src/fxcorrelator.py
	src/misc.py
	src/mock_rts.py
	src/xengine_fpga.py
Moved to casperfpga
casperfpga extraction, bug fixes

Changes related to separation of agnostic FPGA stuff from corr2.

Various bug fixes so that basic instrument can be brought up and
simple initialisation done