DPTC - firmware for FPGA trace compression
General Information
DPTC, difference predicted trace compression,
compresses flash-ADC data
(or other smooth series-data)
on-the-fly on FPGAs, with fast CPU decompression.
- Type
- Scientific firmware and software.
- Language
- Firmware: VHDL. Decompression: C.
- License
- DPTC is free software; distributed under the 3-clause BSD license.
See the accompanying LICENSE file.
- Main developers
- Giovanni Bruni and Håkan T. Johansson,
Chalmers University of Technology, Sweden.
- Distributor
- Experimental subatomic physics group,
Chalmers University of Technology, Sweden.
- Acknowledgment
- The research leading to these results
was supported by the Swedish Research Council:
the Scientific Council for Natural and Engineering Sciences
under grant 2017-03839 and
the Council for Research infrastructure
under grant 822-2014-6644.
- Reference
-
The recommended way to refer to DPTC, when used for work that is
published in a research article, is to cite the following paper:
G. Bruni and H. T. Johansson,
DPTC - an FPGA-based trace compression,
IEEE Transactions on Circuits and Systems I: Regular Papers,
67(1) (2020),
189-197.
eprint https://doi.org/10.1109/TCSI.2019.2945179
Pre-print (2019) at arXiv:1903.10984
Download
- Location
- http://fy.chalmers.se/subatom/dptc/dptc-0.7.1.tar.gz
- Contact
- Håkan T. Johansson (f96hajo@chalmers.se) and Giovanni
Bruni (bruni.gvn@gmail.com)
- Version
- 0.7.1 (CHANGELOG)
- Support
- No formal support.
- Lossy compression extension
- ADS - Adaptive Downsampling of traces by Anton Fredriksson and Lukas Rahmn.
Documentation
See README (included with download).
Interfaces
- FPGA compression module in VHDL
- Data is compressed, one value per clock cycle,
delivering 32-bit data data words:
entity dptc_module is
port (clk: in std_logic;
reset: in std_logic;
data_in: in std_logic_vector; -- Input value.
dv_in: in std_logic; -- Input value is valid.
flush: in std_logic; -- Flush pipeline.
dv_out: out std_logic; -- New output word.
out_word: out std_logic_vector; -- Output data.
done: out std_logic -- All data produced.
);
end;
- CPU decompression in C
- Decompression of a trace is performed by a C routine:
int dptc_unpack(uint32_t *compr, /* Pointer to compressed data (input). */
size_t ncompr, /* Number of compressed data words. */
uint16_t *output, /* Pointer to decompressed data (output). */
size_t ndata, /* Number of decompressed data words. */
int bits /* Number of bits in original data. */
);
Comments? f96hajo@chalmers.se
Last modified: Tue Mar 00:32:53 CEST 2020