Metadata-Version: 2.1
Name: encdec8b10b
Version: 1.0
Summary: 8B10B Encoding and Decoding
Home-page: https://github.com/olagrottvik/encdec8b10b
Author: Ola Grøttvik
Author-email: olagrottvik@gmail.com
License: MIT
Description: [![Build Status](https://travis-ci.com/olagrottvik/encdec8b10b.svg?token=jVu3gMDvjaqfNCVgNVai&branch=master)](https://travis-ci.com/olagrottvik/encdec8b10b)
        
        # encdec8b10b
        
        Encode and decode 8B10B encoding
        
        ## Get
        
        ```
        python3 -m pip install encdec8b10b
        ```
        
        ## Usage
        
        ### Encode Data Byte
        ```
        from encdec8b10b import EncDec8B10B
        
        running_disp = 0
        byte_to_enc = 0xf
        running_disp, encoded = EncDec8B10B.enc_8b10b(byte_to_enc, running_disp)
        print(hex(encoded))
        Output >> 0xba
        ```
        ### Encode Control Byte
        ```
        from encdec8b10b import EncDec8B10B
        
        running_disp = 0
        byte_to_enc = 0xbc # comma
        ctrl = 1
        running_disp, encoded = EncDec8B10B.enc_8b10b(byte_to_enc, running_disp, ctrl)
        print(hex(encoded))
        Output >> 0x17c
        ```
        ### Decode Data Byte
        ```
        from encdec8b10b import EncDec8B10B
        
        byte_to_dec = 0xba
        ctrl, decoded = EncDec8B10B.dec_8b10b(byte_to_dec)
        print(hex(decoded))
        Output >> 0xf
        # ctrl variable confirm that it was a data byte
        print(ctrl)
        Output >> 0
        ```
        ### Decode Control Byte
        ```
        from encdec8b10b import EncDec8B10B
        
        byte_to_dec = 0x17c # comma encoded
        ctrl, decoded = EncDec8B10B.dec_8b10b(byte_to_dec)
        print(hex(decoded))
        Output >> 0xbc
        # ctrl variable confirm that it was a control byte
        print(ctrl)
        Output >> 1
        ```
         
         ### Verbosity
         Both functions have a verbose-mode to make it easier to confirm everything that's happening:
        ```
        from encdec8b10b import EncDec8B10B
        
        running_disp = 0
        byte_to_enc = 0xA0
        running_disp, encoded = EncDec8B10B.enc_8b10b(byte_to_enc, running_disp, verbose=True)
        
        Output >> Encoder - In: A0 - Encoded: 146 - Running Disparity: 0
        
        ctrl, decoded = EncDec8B10B.dec_8b10b(encoded, verbose=True)
        
        Output >> Decoded: A0 - Control: 0
        ```
        
         
         ## 8B10B
         8B10B Encoding were implemented by Al Widmer and Peter Franaszek in 1983. It is still widely used in high-speed electronics.
        
        - [Original article](https://ieeexplore.ieee.org/document/5390392)
        - [Wikipedia](https://en.wikipedia.org/wiki/8b/10b_encoding)
        
        
        ### Thanks
        - [Ryu Shinhyung](https://opencores.org/projects/async_8b10b_encoder_decoder) for creating the tables used in this module
        - [Chuck Benz](http://asics.chuckbenz.com/) for creating awesome combinational 8B10B modules
        - [Alex Forencich](http://www.alexforencich.com/wiki/en/scripts/matlab/enc8b10b)  for his 8B10B Matlab script
Platform: UNKNOWN
Description-Content-Type: text/markdown
