LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor:...

39
LZRW3 LZRW3 Data Compression Core Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013

Transcript of LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor:...

Page 1: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

LZRW3LZRW3 Data Compression CoreData Compression Core

Project part B final presentation

Shahar Zuta Netanel Yamin

Advisor: Moshe porian

December 2013

Page 2: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Contents Project goals & overview Algorithm review Architectures GUI Implementation Test Plan Methods Project Movie

Page 3: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Project OverviewWhy do we need an hardware data

compressor?Reduce storage capacity

Reduce power consumption Reduce amount of data to handle with.

Reduce communication co$tsSpeed

Page 4: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

COMPRESSION &SYSTEMS EFFICIENCY

Reduce traffic packets

Reduce comm. resources

Reduce expensesBetter traffic reliability

STORAGE

LZRW3 DECOMPRESSOR

LZRW3 COMPRESSOR LZRW3

DECOMPRESSOR

Less capacity

Less storage discs

Less Area

Less Power

More environmental

Fast lossless compression

Full data recovery

Efficient System

LAN/WAN NETWORK

USER

USER

LZRW3 COMPRESSOR

Page 5: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Project GoalsImplementation of LZRW3 data compression

algorithm High performance- data transfer of 1GbpsAdapted to data templates of 2Kbyte to

32KbyteInternal memory on FPGA only ( Virtex-5 ), no

interface to external memory

Implementing strong debugging capabilities

via GUI

Page 6: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Lossless Data CompressionThe following algorithm is lossless, which

guarantees that the original data could be reconstructed from the compressed file.

Lossy compression could give better compression rates in exchange of data loss (JPEG, MP3)

Known lossless application: ZIP, GZIP and other.

Lossless data compressions are which mean the compressor and decompressor maintain a data structure to help them find repeated strings.

dictionary coding,

Page 7: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

mechanism

HASH FUNCTIO

N

INDEX4095

0

INPUT FILE:

Offset

Expression_compress _ion

E x p

Offset value=

0

XXX

ZZZ

YYY

UUU

demonstration

UUU

r e s

3

XXX

Output

Exp

res

L.I

L.I

NOTE: The next 3 byte should be

“x p r” , then “ p r e “ and only then “r e s”, we did’nt demonstrate all the actions

for simplicity.

“L.I“ stands for

“Literal Item “

Page 8: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

mechanism

HASH FUNCTIO

N

INDEX4095

0

INPUT FILE:

Expres sion_compress _ion

Offset value=

XXX

ZZZ

YYY

UUU

demonstration

ZZZ

03

6

s i

9

_ o

YYYExp

res

Output

L.I

L.I

sio L.I

n_c L.I

Offset

cn

Page 9: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

mechanism

HASH FUNCTIO

N

INDEX4095

0

INPUT FILE:

Expression_c ompress _ion

Offset value=

XXX

ZZZ

YYY

UUU

demonstration

o m p

03

12

6

9

Exp

res

Output

L.I

L.I

sio L.I

n_c L.I

omp L.I

Offset

Page 10: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

mechanism

HASH FUNCTIO

N

INDEX4095

0

INPUT FILE:

Express _comp ress _i o

Offset value=

XXX

ZZZ

YYY

UUU

r e s

XXX

03

15

12

96

demonstration

Exp

res

Output

L.I

L.I

sio L.I

n_c L.I

omp L.I

123

C.IXXX

io nn

3+ 012345

Offset

“C.I“ stands for

“Copy Item“

Page 11: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Input file analyze Output file analyze

Input file made of repeating strings Output file made of header + groups

File compression example

Page 12: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.
Page 13: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Top Architecture

Rx PATH

Tx PATH

INPUT BLOCK memory LZRW3

COMPRESSOR

CORE

COMPRESSED FILE memory

GUI

XILINX VIRTEX 5 ON XUVP505 BOARD

UART

UART

Page 14: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Top Architecture

Rx PATH

Tx PATH

INPUT BLOCKmemory LZRW3

COMPRESSOR

CORE

COMPRESSED FILE memory

GUI

XILINX VIRTEX 5 ON XUVP505 BOARD

UART

UART

Page 15: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.
Page 16: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.
Page 17: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.
Page 18: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Simulations

Frame type 1 Frame type 2

INPUT BLOCK save bytes from

RX PATH

Compression & transffering to output block

OUTPUT BLOCK transffers data to

TX PATH

TX PATHData Encapsulation

&Transmittion

Data out Frame type 0

OUTPUT BLOCK receive compressed

file to FIFO

RAW DATA:

COMPRESSED DATA:

Zoom on compressor

Page 19: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Compressor START, filling the pipeline

“FLY” mode,All stages enabled

EOF arrives,Last 18 bytes

Sending HEADER

SendingDATA

Zoom on compressor

Compressor DONE

PipelineCLEAR

COMPRESSORREADY

COMPRESSOR READY

Page 20: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Test PlanThe tests include different series of data insertion which are supposed to bring the core to it’s extreme cases.

Whenever a change was made in the design all the tests validity was reasserted.

Page 21: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Basic set examplesRandom input (Length, Num Of Vars)

INPUT VAR. LENGTH OUTPUTLENGTH

CASE

RANDOM 10 32K 23K Reasonable compression

RANDOM 10 32K 7407 Each variable repeated 18 times

RANDOM 1 32K 3886 Very high compression ratio ~90 % compression

RANDOM 256 32K 32K Output = input

Page 22: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Input buffer

Test methods:

Hash function

Hash table

comparator

Output block

Compression core

TB

checked

TB TB TB TB

checked

checked

checked

checked

Page 23: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Test methods:

Compression core

Simulation and comparison against golden model

Core periphery

Compression core

Page 24: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Compression core

Core periphery

Simulation adapted to the full chip and comparison against golden model

Verification environment GUI

Simulating full testplan + debug

Page 25: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

GUIDirect file path insertion interface

Manually inserted text interface

LZRW3 .Verification environment

Page 26: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

GUIConsole

Box

Progress bar

Manually inserted text interface

LZRW3 .Verification environment

Page 27: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

GUIRandom data generation characteristics

Random data generationstart button

CLICK

LZRW3 .Verification environment

Page 28: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

GUIStart

analyzing buttonCLICK

LZRW3 .Verification environment

Page 29: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Work methodIdentifying bugs such as unreceived data or any

difference from the GM using the verification environment.

Tracing the problem using ChipScope or the simulation environment.

Solving the issue and fixing the code.Asserting the solution validity in the simulation

environment.Resynthesizing the solution and burn it to the FPGA.Verification using the GUI.Reasserting the validity of former tests.Progress.

Page 30: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Resource Utilization

Plan Ahead synthesis result

Yamin, Netanel
Page 31: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Implementation ResultsPost -place & route report showed that user

timing constraint is not met. Project goal was 125MHz, the achieved

frequency of the full design is 88MHz.

The critical path found in stage 4.

Page 32: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Input file memorybanks

comparator

Continue

1

0

clk

clkTentative

Next address

clk

counter

offset

TAG

Com

pris

on_v

alid

Compare_success

clk

Offset_tag

Tentative_tag

clk

Tentative_taken

Compare_success_P

Item_length_p

Offs

et_v

alid

Bank 0,1,2addresses

0

1

Addresses

alignment

Older_byte_P

Offset_valid

TENT

B CD

BD

C

C

11

1

0

Page 33: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Input file memorybanks

comparator

Continue

1

0

clk

clkTentative

Next address

clk

counter

offset

TAG

Com

pris

on_v

alid

Compare_success

clk

Offset_tag

Tentative_tag

clk

Tentative_taken

Compare_success_P

Item_length_p

Offs

et_v

alid

Bank 0,1,2addresses

0

1

Addresses

alignment

Older_byte_P

Offset_valid

01

Page 34: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Performance improving actionsAnalyzing critical paths and rewriting their

logic.Checking the extra effort flag (in ISE) and

target to maximum speed.Trying to synthesize with third party

synthesis tools (Precision, Synplify_pro).Swapping the RAM simple blocks

implemented by VHDL code with blocks created by the Core generator (Xilinx tool).

Page 35: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

What have we learned?Planning and Specifying a Project.Consider the specifications for micro/macro

architectureRTL coding and “hardware thinking”.Utilizing softwares: Modelsim, ISE, PlanAhead, Synplify, ChipScope, CoreGenerator, Visual Studio (and learning C#)…Testing blocks and determining wanted resultsSynthesizing design and validating it using GUIIncisively explore the FPGA-computer

communicationProtocols: UART, Wishbone

Page 36: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Lab examinationAll we saw this summer

Page 37: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Add picture ofXUP5 BOARD

GPI/O-5: Blinking led, indicates that the DCM

is locked

System reset “push button”

Board JTAG connection

Serial DB-9 connectionXUP5 BOARD

Page 38: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.

Project MovieLZRW3 Project movie on YouTube

Page 39: LZRW3 Data Compression Core Project part B final presentation Shahar Zuta Netanel Yamin Advisor: Moshe porian December 2013.