All Projects → opencomputeproject → Project Zipline

opencomputeproject / Project Zipline

Licence: other
Defines a lossless compressed data format that is independent of CPU type, operating system, file system, and character set, and is suitable for compression using the XP10 algorithm.

Labels

Projects that are alternatives of or similar to Project Zipline

Fpga
The USRP™ Hardware Driver FPGA Repository
Stars: ✭ 176 (-28.74%)
Mutual labels:  verilog
Verilog 6502
A Verilog HDL model of the MOS 6502 CPU
Stars: ✭ 200 (-19.03%)
Mutual labels:  verilog
Fpu
synthesiseable ieee 754 floating point library in verilog
Stars: ✭ 214 (-13.36%)
Mutual labels:  verilog
Openwifi Hw
FPGA/hardware design of openwifi
Stars: ✭ 181 (-26.72%)
Mutual labels:  verilog
Piccolo
RISC-V CPU, simple 3-stage pipeline, for low-end applications (e.g., embedded, IoT)
Stars: ✭ 200 (-19.03%)
Mutual labels:  verilog
Biriscv
32-bit Superscalar RISC-V CPU
Stars: ✭ 208 (-15.79%)
Mutual labels:  verilog
Verilog Uart
Verilog UART
Stars: ✭ 174 (-29.55%)
Mutual labels:  verilog
Convolution network on fpga
CNN acceleration on virtex-7 FPGA with verilog HDL
Stars: ✭ 236 (-4.45%)
Mutual labels:  verilog
Fpga nes
FPGA-based Nintendo Entertainment System Emulator
Stars: ✭ 199 (-19.43%)
Mutual labels:  verilog
Opentimer
A High-performance Timing Analysis Tool for VLSI Systems
Stars: ✭ 213 (-13.77%)
Mutual labels:  verilog
Basejump stl
BaseJump STL: A Standard Template Library for SystemVerilog
Stars: ✭ 179 (-27.53%)
Mutual labels:  verilog
Ridecore
RIDECORE (RIsc-v Dynamic Execution CORE) is an Out-of-Order RISC-V processor written in Verilog HDL.
Stars: ✭ 199 (-19.43%)
Mutual labels:  verilog
Litepcie
Small footprint and configurable PCIe core
Stars: ✭ 206 (-16.6%)
Mutual labels:  verilog
Wb2axip
Bus bridges and other odds and ends
Stars: ✭ 177 (-28.34%)
Mutual labels:  verilog
Zet
Open source implementation of a x86 processor
Stars: ✭ 216 (-12.55%)
Mutual labels:  verilog
Accdnn
A compiler from AI model to RTL (Verilog) accelerator in FPGA hardware with auto design space exploration.
Stars: ✭ 175 (-29.15%)
Mutual labels:  verilog
Red Pitaya Notes
Notes on the Red Pitaya Open Source Instrument
Stars: ✭ 205 (-17%)
Mutual labels:  verilog
Fpga Litecoin Miner
A litecoin scrypt miner implemented with FPGA on-chip memory.
Stars: ✭ 245 (-0.81%)
Mutual labels:  verilog
Spispy
An open source SPI flash emulator and monitor
Stars: ✭ 220 (-10.93%)
Mutual labels:  verilog
Flute
RISC-V CPU, simple 5-stage in-order pipeline, for low-end applications needing MMUs and some performance
Stars: ✭ 210 (-14.98%)
Mutual labels:  verilog

Project Zipline

Introduction

Project Zipline is a program to accelerate innovation in lossless compression. With this release Microsoft is making available:

  • A new compression format called XP10 which is tailored for modern cloud datasets.
  • All specifications for the entire pipeline.
  • All RTL to support implementation for the entire pipeline.
  • A testbench environment specifically developed for the VCS simulator.

Project Zipline is open-sourced under the MIT License, see the LICENSE file.

Specifications

The following Project Zipline specifications have been included under the “specs” directory in this repository:

  • Project_Zipline_Compression_Specification
  • Project_Zipline_Huffman_Encoder_Micro_Architecture_Specification
  • Project_Zipline_Comp_lz77_Micro_Architecture_Specification
  • Project_Zipline_Crypto_Engine_Micro_Architecture_Specification
  • Project_Zipline_Decompression_Top_Micro_Architecture_Specification
  • Project_Zipline_Keyblob_Micro_Architecture_Specification
  • Project_Zipline_KME_Micro_Architecture_Specification
  • Project_Zipline_Prefix_Attach_Micro_Architecture_Specification
  • Project_Zipline_Prefix_Micro_Architecture_Specification
  • Project_Zipline_SSB_Micro_Architecture_Specification
  • Project_Zipline_Top_Micro_Architecture_Specification

Simulation Notes

Edit the file ./zipline.setup for VCS, SYNTH, and VERDI environment settings.

Then source the file as follows:

source zipline.setup

Go to either the CCE_64, CDD_64, or KME run directory:

cd dv/CCE_64/run

cd dv/CDD_64/run

cd dv/KME/run

To build the simv executable:

make build_simv

Example for simulating a test:

make run_simv TESTNAME=xp10

Example for simulating a test with waves (.vpd):

make run_simv TESTNAME=xp10 WAVES=1

Example for simulating a test with Verdi waves (.fsdb):

make run_simv TESTNAME=xp10 VERDI_WAVES=1

All of the tests for the CCE_64, CDD_64, and KME can be run via a regress script in the associated "run" directory:

dv/CCE_64/run/regress

dv/CDD_64/run/regress

dv/KME/run/regress

All test files are located in the associated engine directory "tests". Each directory also contains a README file with a description of each test.

dv/CCE_64/tests

dv/CDD_64/tests

dv/KME/tests

A description of the programmable registers in the CCE/CDD/KME can be found in the register_doc directory. Please read register_doc/README for more details.

KME Notes

The KME RTL (rtl/cr_kme) has been modified to remove the following modules:

  • AES engine in the random GUID generator
  • SHA engines within the KDF function
  • AES engine within the Key Decryption logic

With these reductions, the RTL only supports Key Types 1-6 without KDF and Key Type 0 without encryption/authentication

Additionally, the KME output has been reduced to support a single engine.

All modifications are identified with "KME_MODIFICATION_NOTE" comments in the RTL code.

Synthesis Notes

Note: For synthesis, please edit syn/Makefile to choose an LSF or dedicated machine with at least 16G of memory. Edit the contents of this line, before "dc_shell":

bsub -Is -q irv-cpx-M16 -R "rusage [mem=16000]" dc_shell -f syn_example.tcl | tee ./LOGS/syn_eample.tcl.date '+%m%d.%H:%M'.log

To run synthesis for CDD

cd syn/cr_cddip

make syn

To run synthesis for CCE

cd syn/cr_cceip_64

make syn

To run synthesis for KME

cd syn/cr_kme

make syn

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].