Snapshot Capture
=================
| **Block:** Snapshot Capture (``snap``)
| **Block Author**: Aaron Parsons
| **Document Author**: Aaron Parsons, Ben Blackman
+--------------------------------------------------------------------------+
| .. raw:: html |
| |
|
|
| |
| .. rubric:: Contents |
| :name: contents |
| |
| .. raw:: html |
| |
|
|
| |
| - `Summary <#summary>`__ |
| - `Mask Parameters <#mask-parameters>`__ |
| - `Ports <#ports>`__ |
| - `Description <#description>`__ |
| |
| - `Usage <#usage>`__ |
+--------------------------------------------------------------------------+
Summary
--------
The snap block provides a packaged solution for capturing data from the
FPGA fabric and making it accessible from the CPU. Snap captures to a 32
bit wide shared BRAM.
Mask Parameters
----------------
+--------------------------------+------------+-------------------------------------------------------------------------------------------------------------+
| Parameter | Variable | Description |
+================================+============+=============================================================================================================+
| No. of Samples (2\ :sup:`?`) | nsamples | Specifies the depth of the Shared BRAM(s); i.e. the number of 32bit samples which are stored per capture. |
+--------------------------------+------------+-------------------------------------------------------------------------------------------------------------+
Ports
------
+--------+-------+-------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| Port | Dir | Data Type | Description |
+========+=======+===================+==============================================================================================================================================+
| din | IN | unsigned\_32\_0 | The data to be captured. Regardless of type, the bit-level representation of these numbers are written as 32bit values to the Shared BRAM. |
+--------+-------+-------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| trig | IN | boolean | When high, triggers the beginning of a data capture. Thereafter, every enabled data is written to the shared BRAM until it is full. |
+--------+-------+-------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
| we | IN | boolean | After a trigger is begun, enables a write to Shared BRAM. |
+--------+-------+-------------------+----------------------------------------------------------------------------------------------------------------------------------------------+
Description
------------
Usage
^^^^^^
Under TinySH/BORPH, this device will have 3 sub-devices: ``ctrl``,
``bram``, and ``addr``. ``ctrl`` is an input register. Bit 0, when
driven from low to high, enables a trigger/data capture to occur. Bit 1,
when high, overrides ``trig`` to trigger instantly. Bit 2, when high,
overrides ``we`` to always write data to bram. ``addr`` is an output
register and records the last address of ``bram`` to which data was
written. ``bram`` is a 32 bit wide Shared BRAM of the depth specified in
``Parameters``.