lzss Decompression verilog synthesizeable RTL

Status
Not open for further replies.

sham1810

Newbie level 3
Joined
Nov 29, 2011
Messages
4
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Visit site
Activity points
1,315
Hi,

I am currently writing a decompression engine for lzss in verilog. I need it be fast and need a minimum throughput of 4bytes/cycle. I am currently reading in 4bytes of input data every cycle and then decode the input data to figure out if its a pointer or a literal. If a literal i write it into output FIFO and if its a pointer i push the length and offset in another FIFO(this one is simple synchronous FIFO). I am also designing the output FIFO to have dual reading and writing ports. However i am still not able to meet minimum throughput. Any suggestions on how can i achieve minimum throughput?
 

Pipeline the design.

My initial thoughts were to pipeline the design but since decompression does not perform any operation on the data it doesn't make sense to pipeline it. It you go through through the decompression algorithm you'll know that it involves a lot of copy pasting data already being written in the output memory. I am planning to use 4 banks for the memory so that i have a way of writing 4bytes/cycle. Any better way you can think of?
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…