Entity: misc_bit_lz
- File: misc_bit_lz.vhdl
Diagram
Description
EMACS settings: -- tab-width: 2; indent-tabs-mode: t -- vim: tabstop=2:shiftwidth=2:noexpandtab
kate: tab-width 2; replace-tabs off; indent-width 2;
Description:
An LZ77-based bit stream compressor.
Output Format
1 | Literal A literal bit string of length COUNT_BITS+OFFSET_BITS.
0 |
0 | <1:COUNT_BITS> |
a)If the preceding message was a repetition,
Parameter Constraints
COUNT_BITS <= OFFSET_BITS < 2**COUNT_BITS - COUNT_BITS
============================================================================= Authors: Thomas B. Preusser thomas.preusser@utexas.edu
============================================================================= References:
Original Study Kai-Uwe Irrgang kai-uwe.irrgang@b-tu.de PhD Thesis: "Modellierung von On-Chip-Trace-Architekturen fuer eingebettete Systeme"
Papers Kai-Uwe Irrgang and Thomas B. Preusser and Rainer G. Spallek: "An LZ77-Style Bit-Level Compression for Trace Data Compaction", International Conference on Field Programmable Logic and Applications (FPL 2015), Sep, 2015.
Kai-Uwe Irrgang and Thomas B. Preusser and Rainer G. Spallek: "Kompression von Tracedaten auf der Basis eines auf Bitebene arbeitenden LZ77-Woerterbuchansatzes", Fehlertolerante und energieeffiziente eingebettete Systeme:
Methoden und Anwendungen (FEES 2015), Oct, 2015.
Generics
Generic name | Type | Value | Description |
---|---|---|---|
COUNT_BITS | positive | ||
OFFSET_BITS | positive | ||
OUTPUT_REGS | boolean | true | Register all outputs |
OPTIMIZE_SPEED | boolean | true | Favor achievable clock over size |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
clk | in | std_logic | Global Control |
rst | in | std_logic | |
din | in | std_logic | Data Input |
put | in | std_logic | |
flush | in | std_logic | end of message, |
odat | out | std_logic_vector(COUNT_BITS+OFFSET_BITS downto 0) | to be asserted after last associated putData Output |
ostb | out | std_logic |
Signals
Name | Type | Description |
---|---|---|
History | std_logic_vector(HISTORY_SIZE downto 0) | History and Match Buffers |
Match | std_logic_vector(HISTORY_SIZE-1 downto 0) | |
Count | signed(COUNT_BITS downto 0) | |
Offset | unsigned(OFFSET_BITS-1 downto 0) | |
Term | std_logic | |
Offset_nxt | unsigned(Offset'range) | |
ov | X01 | Counter Overflow |
valid | X01 | Still some Match available |
data | std_logic_vector(odat'range) | Outputs |
push | std_logic |
Constants
Name | Type | Value | Description |
---|---|---|---|
HISTORY_SIZE | positive | 2**OFFSET_BITS | |
LITERAL_LEN | positive | COUNT_BITS + OFFSET_BITS |
Processes
- unnamed: ( clk )
Description
Registers