Add model and netlist files missing from c05a475

Commit c05a475 added the *_config.m and *.vhd files for updated versions of the
fft_wideband_real_core and xeng_core models, but that commit did not include
the updated models and resulting netlists that those metadata files were
derived from.  These updated files are now being added in this commit.

FWIW, the model files being added are strangely newer than the netlist files.
Hopefully this was just because of an extra cautious File->Save operation and
not because of any real changes.  The timestamp differences are small (only a
few minutes).  In any event, the netlist files being added here are the most
recently built versions of these models.

In an email message from December 13, 2013, Nimish stated:

> I have used mlib_devel in casper-astro repository. It uses the commit 2f40dad
> (which may be the latest commit).
>
> However, this commit requires Fixed Point toolbox for FFT blocks. This
> dependency has been removed now, but that version of FFT block is not part of
> casper-astro repository. It is still part of ska-sa repository only. Hence,
> the FFT black box uses mlib_devel from ska-sa. The corresponding commit is
> a8c43a8.

...so I think that the xeng_core.ngc file was built using mlib_devel 2f40dad
and the fft_wideband_real_core.ngc file was built using mlib_devel a8c43a8.
Remove and ignore extraneous files from repository

A number of intermediate build products had been committed to the repository.
These files do not need to be tracked in the repository so they have been
removed from the repository.

The .gitignore file was added so that these files will be ignored in the future.
Updated *_bb.mdl files (about to be deleted)

This commit contains the updated fft_wideband_real_core_bb.mdl and
xeng_core_bb.mdl files from the "recent" (not so recent really, but recently
commited) updates to the corresponding "real" models.  These *_bb.mdl files are
not really necessary, so they are going to be deleted in the next commit, but I
wanted to save them for posterity (just in case!) before doing that.
Delete unnecessary *_bb.mdl files
Add eovsa_corr_200_v9_2013_Nov_22_0651.bof.gz

This BOF file is from the last successful build that Nimish did.  This version
has bugs in the x_op_select blocks (and possibly other downstream blocks).  It
also uses a version of mlib_devel that had a buggy KATADC yellow block that
affected the board in ZDOK1.

In an email message from December 13, 2013, Nimish stated:

> I have used mlib_devel in casper-astro repository. It uses the commit 2f40dad
> (which may be the latest commit).
>
> However, this commit requires Fixed Point toolbox for FFT blocks. This
> dependency has been removed now, but that version of FFT block is not part of
> casper-astro repository. It is still part of ska-sa repository only. Hence,
> the FFT black box uses mlib_devel from ska-sa. The corresponding commit is
> a8c43a8.

...so I think that this BOF file was built using mlib_devel 2f40dad.
Rename eovsa_corr_200_v9.mdl to eovsa_corr.mdl

This removes clock rate and version infomration from filename.  These metadata
items are better tracked elsewhere (such as in git).
Add xeng_test.mdl and run_xeng_test.m

The run_xeng_test function will generate inputs for xeng_test.mdl, simulate the
model, and then validate the results.  It displays a message for each error
found and then a final message indicating the total number of errors found.  On success, the message `found 0 errors` is displayed.
Change xeng_test to use demux=2

This reflects the xeng demux mode used by the uncommitted xeng_core.mdl file
that was left in fpgadev.njit.edu:/home/observer/projects/eovsa-corr/src.

There seems to be a bug in the casper libraries that requires going into the
xeng block and disabling the link on the xeng_descramble_4ant block so it can
update its parameters (just the annotation string?) when changing the demux
mode.
Add x_op_select_test model and script

This x_op_select_test.mdl file contains the old x_op_select implementation and
the new x_op_select implementation.  The run_x_op_select_test.m script can be
used to setup the input test data and capture the output results.  This can be
used to demonstrate the problem with the old implementation as well as verify
the correctness of the new implementation.
Change x_op_select block for more convenience

Using a shared BRAM in the x_op_select block makes the programming rather
awkward since the correlator model has four such blocks.  All the shared BRAMs
would need to be programmed the same.  This is repetitive and error prone.
Also, shared BRAM do not have init values.

Reverting to a dual port ram that is programmed via a software register bit
banging one port of the BRAM allows one software register to write to all four
BRAMs.  It also allows for an initial value so that the BRAM will come up with
a default output sequence.

Adding a software register to the output of the "programming" port of the BRAM
will provide for software read-back of the BRAM contents.  Just set the address
bits to the desired location, the data bits to anything and the write enable
bit to 0 (obviously but also importantly!).

This model gives the expected results with the run_x_op_select_test.m script.
Add pass/fail indicator to run_x_op_select_test.m
Replace x_op_select blocks with new version

Replace all four x_op_select blocks with the new version developed in
x_op_select_test.mdl.  One of the blocks has a Goto block for reading back the
contents of the "read map" via bit banging the sw_reg/x_op_select and
sw_reg/x_op_readback software registers.

sw_reg/x_op_select[31:16] = Address (only lowest 5 are bits used)
sw_reg/x_op_select[51:04] = Data (only lowest 6 bits are used)
sw_reg/x_op_select[0]     = Write enable

sw_reg/x_op_readback = Data in "read map" BRAM at address specified by
                       sw_reg/x_op_select[31:16].
Regen and resynth fft_wideband_real_core.ngc

In an effort to ease timing, the fft_wideband_real_core netlist was regenerated
from fft_wideband_real_core.mdl using mlib_devel a8c43a8 (the current HEAD of
the eovsa-devel-fft branch).  The sysgen generated netlist was resynthesized
using this command in the Matlab command window:

    resynth_netlist('fft_wideband_real_core', ...
        '-register_balancing', 'yes', ...
        '-optimize_primitives', 'yes', ...
        '-read_cores', 'yes', ...
        '-equivalent_register_removal', 'no' ...
    );
Use wide_bram_vaccs in vector_acc subsystem

The vector_acc subsystem has a number of fairly wide (56 and 64 bit) vector
accumulators to accumulate the power and power squared values for spectral
kurtosis.  These vector acculators (vaccs) were also preceded by a mux to blank
(i.e. substitute zero for) the data values during LO settling time.  The vaccs
had been simple_bram_vacc blocks preceded by muxes, but now the
simple_bram_vaccs and the preceding muxes, have been replaced with
wide_bram_muxes, which are optimized for wide accumulator widths and support
the blanking functionality using muxes internal to the DSP48 slices.
Optimize part of power_td blocks with DSP48 slices

The power_td blocks used a multiply/add tree to compute the power of four
parallel input samples.  This implementation was not so efficient so it was
replaced with a stack of cascaded DSP48 slices.  There is more room for
optimization here (e.g. by including the accumulation(s) in the stack(s) of
cascaded DSP48 slices), but the current (interim) implementation was done to
avoid having to change any control logic.

The overall latency of the dsp48_sq_add block is 2 cycles longer than the
original multipler/adder implementation.  To accomodate this change in latency,
the sync_in signal has been delayed by a corresponding 2 cycles.
Use behavioral HDL in polarimetry block

This is a text editor change to the model file to sets "use_behavioral_HDL" to
"on" for every block that supports it in/under the "polarimitry" block.  This
is primarily multipliers, but perhaps some adders as well.
Add test bench for fft_wideband_real_core.mdl

This does not change the FFT implementation at all.  FFT tests look good using
mlib_devel a8c43a8.
Update fft_wideband_real_core to mlib_devel 01ff4b

This updates fft_wideband_real_core.mdl to mlib devel 01ff4b5.  The
run_fft_wideband_real_core script still returns good output.

The fft_wideband_real_core.ngc netlist is also updated in this commit.  It was
generated from the updated fft_wideband_real_core.mdl file that is also part of
this commit.
Update fft_wideband_real_core to mlib_devel ef2cda

The fft_wideband_real_core.mdl file was updated to mlib_devel ef2cda2.  The
main changes are that all mlib_devel fabric counters are now implemented using
behavioral HDL and all delays are set to use reg_retiming=on.

This also updates the fft_wideband_real_core.ngc netlist that was generated
from the updated fft_wideband_real_core.mdl model file.
Update eovsa_corr.mdl to mlib_devel ef2cda2

This is the result of running "update_casper_blocks('eovsa_corr')" with
mlib_devel at commit ef2cda2.