ZipAccel GZIP and GUNZIP Intellectual Property Cores

Introduction

The Superion Technology ZipAccel gzip and gunzip Intellectual Property (IP) cores implement the RFC1951 Inflate and Deflate data compression algorithms with support for Raw, ZLIB and GZIP file formats.

The IP includes separate cores for the search engine, Huffman encoding & decoding, decompression, and data security. The flexible architecture allows maximum system design flexibility by tuning the solution for a target throughput and/or compression ratio.

 

Introduction

A pipelined architecture allows system implementations up to 100+ Gbps. The IP can support stored, static, or dynamic Huffman mode, and the cores can be configured to automatically determine and select the mode that delivers maximum compression ra4o.

Suitable for ASIC, SoC, and FPGA designs, this IP family addresses the data compression requirements of networking, storage, Big Data, and other applications.

Key Features

  • Dynamic Huffman Support
  • Pipelined Implementation
  • Modular Architecture
  • Highly Configurable
  • Multi-Standard Support
  • ECC RAM Support
  • Optional AES Encryption
  • Functionally-Accurate C Model

Block Diagram

ZipAccel Block Diagram

More Details

Search Engine

The LZ77 Search Engine analyzes the input file and looks for repeated patterns in the input data. Repeated patterns of length 3 or greater are reduced to a length / distance pair (a.k.a. Literal, Length-Distance or LLD) which is used in the compressed files to replace the matched data. The maximum length of the look back is determined by the depth of the history window which can be up to 32KB. The resulting stream of “tokens” is then provided to the Huffman encoding engine which further reduces the size of the final compressed data file by encoding most frequently seen tokens with a minimum size bit symbol. RFC1951 specifies the use of the LZ77 algorithm to generate the LLD tokens.

Superion provides two versions of the search engine: hash based or systolic array based. The selection of the version to be used depends on end user requirements for area and performance.

Encoding Engine

RFC1951 specifies the use of Huffman encoding to further reduce the size of the LLD tokens received from the Search Engine. The Superion Huffman Encoding engine supports all three block formats specified in RFC1951 (Stored, Static Huffman, Dynamic Huffman), implementing all three in parallel and then automatically selecting the mode which results in the largest compression ra4o. The encoding engine will generate one or more deflate blocks per compressed file, with each block likely having a different Huffman encoding of its LLD tokens.

Decompression Engine

The Decompress Engine regenerates the original file from the compressed version by first decoding the Huffman encoded LLD tokens from the deflate blocks and then using those tokens to rebuild the file. The final output file format may be Raw, Deflate, ZLIB, or GZIP.

Build-Time Options

  • Search engine history window size
  • Maximum deflate block size
  • Store mode support

Standards

  • RFC1950(ZLIB)
  • RFC1951(Inflate/Deflate)
  • RFC1952(GZIP/GUNZIP)

Performance

  • ASIC: 100+ Gbps
  • FPGA: Vendor and device dependent – Contact Superion for details

Deliverables

  • Synthesizable Verilog RTL
  • Verilog Testbench
  • Synthesis Scripts
  • Simulation Scripts

How can we help?