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

Upload: katherine-perkins

Post on 04-Jan-2016

223 views

Category:

Documents


1 download

TRANSCRIPT

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