Package: Code12b14bPkg

Description

use surf.TextUtilPkg.all;

Constants

Name Type Value Description
K_120_0_C slv(11 downto 0) "000001111000"
K_120_1_C slv(11 downto 0) "000011111000"
K_120_2_C slv(11 downto 0) "000101111000"
K_120_3_C slv(11 downto 0) "000111111000"
K_120_4_C slv(11 downto 0) "001001111000"
K_120_7_C slv(11 downto 0) "001111111000"
K_120_8_C slv(11 downto 0) "010001111000"
K_120_11_C slv(11 downto 0) "010111111000"
K_120_16_C slv(11 downto 0) "100001111000" constant K_120_15_C : slv(11 downto 0) := "011111111000";
K_120_19_C slv(11 downto 0) "100111111000"
K_120_23_C slv(11 downto 0) "101111111000"
K_120_24_C slv(11 downto 0) "110001111000"
K_120_27_C slv(11 downto 0) "110111111000"
K_120_29_C slv(11 downto 0) "111011111000"
K_120_30_C slv(11 downto 0) "111101111000"
K_120_31_C slv(11 downto 0) "111111111000"
K_120_0_CODE_C slv(13 downto 0) "00011011111000" constant K_55_15_C : slv(11 downto 0) := "011110110111"; constant K_57_15_C : slv(11 downto 0) := "011110111001"; constant K_87_15_C : slv(11 downto 0) := "011111010111"; constant K_93_15_C : slv(11 downto 0) := "011111011101"; constant K_117_15_C : slv(11 downto 0) := "011111110101";
K_120_1_CODE_C slv(13 downto 0) "01000111111000"
K_120_2_CODE_C slv(13 downto 0) "01001011111000"
K_120_3_CODE_C slv(13 downto 0) "10001111111000"
K_120_4_CODE_C slv(13 downto 0) "01010011111000"
K_120_7_CODE_C slv(13 downto 0) "11100011111000"
K_120_8_CODE_C slv(13 downto 0) "01100011111000"
K_120_11_CODE_C slv(13 downto 0) "00101111111000"
K_120_16_CODE_C slv(13 downto 0) "00100111111000" constant K_120_15_CODE_C : slv(13 downto 0) := "00001111111000";
K_120_19_CODE_C slv(13 downto 0) "01001111111000"
K_120_23_CODE_C slv(13 downto 0) "10100011111000"
K_120_24_CODE_C slv(13 downto 0) "00110011111000"
K_120_27_CODE_C slv(13 downto 0) "10010011111000"
K_120_29_CODE_C slv(13 downto 0) "10001011111000"
K_120_30_CODE_C slv(13 downto 0) "10000111111000"
K_120_31_CODE_C slv(13 downto 0) "00101011111000"
CODE_8B_C slv8Array(0 to 127) ( "01011000",
"00011001",
"00011010",
"00100011",
"01100100",
"10000101",
"10000110",
"10000111",
-- 7 "01101000",
"10001001",
"01001010",
"10001011",
"01001100",
"10001101",
"10001110",
"11000111",
-- 15 "00010011",
"10010001",
"10010010",
"10010011",
"10010100",
"10010101",
"10010110",
"00010111",
-- 23 "10011000",
"10011001",
"10011010",
"00011011",
"10011100",
"00011101",
"00011110",
"00011100",
-- 31 "00100101",
"10100001",
"00100110",
"10100011",
"10100100",
"10100101",
"10100110",
"00100111",
-- 39 "00101001",
"10101001",
"10101010",
"00101011",
"10101100",
"00101101",
"00101110",
"00101010",
-- 47 "00110010",
"10110001",
"10110010",
"00110011",
"10110100",
"00110101",
"00110110",
"00110111",
-- 55 "10111000",
"00111001",
"00111010",
"00111011",
"00111100",
"10111101",
"00110100",
"10111011",
-- 63 "01010100",
"11000001",
"11000010",
"11000011",
"01000001",
"11000101",
"11000110",
"01000111",
-- 71 "01001001",
"11001001",
"11001010",
"01001011",
"11001100",
"01001101",
"01001110",
"01000101",
-- 79 "01000011",
"11010001",
"11010010",
"01010011",
"11010100",
"01010101",
"01010110",
"01010111",
-- 87 "11011000",
"01011001",
"01011010",
"11010011",
"01011100",
"01011101",
"11001110",
"11011110",
-- 95 "01100010",
"11100001",
"11100010",
"01100011",
"11100100",
"01100101",
"01100110",
"11100111",
-- 103 "11101000",
"01101001",
"01101010",
"11101011",
"01101100",
"11101001",
"11101010",
"11101101",
-- 111 "00100100",
"01110001",
"01110010",
"01010001",
"01110100",
"01110101",
"01010010",
"01110111",
-- 119 "01111000",
"01100001",
"01111011",
"01110011",
"01111100",
"01111101",
"01111110",
"11101110")
Array of codes for 7b/8b D codes constant CODE_8B_C : slv8Array(0 to 127) := ( "00011010", "11110001", "10101110", "00100011", "00001101", "00010101", "00100110", "10000111", "00010011", "00100101", "00101001", "10001011", "00101100", "10001101", "10001110", "00001111", "00101010", "00110001", "00110010", "10010011", "00110100", "10010101", "10010110", "00010111", "01000101", "10011001", "10011010", "10011011", "10011100", "00011101", "00011110", "00011001", "01000111", "01100001", "01001001", "10100011", "01001010", "10100101", "10100110", "00100111", "01011000", "10101001", "10101010", "10101011", "10101100", "10101101", "00101110", "00101111", "01001100", "10110001", "10110010", "00110011", "10110100", "00110101", "00110110", "00110111", "10111000", "00111001", "00111010", "00111011", "00111100", "00111101", "00111110", "00011011", "01000100", "00011100", "01100010", "11000011", "00100100", "11000101", "11000110", "11000111", "01101000", "11001001", "11001010", "01001011", "11001100", "01001101", "01001110", "01001111", "01110000", "11010001", "11010010", "01010011", "11010100", "01010101", "01010110", "01010111", "11011000", "01011001", "01011010", "01011011", "01011100", "01011101", "01011110", "00101011", "00101101", "11100001", "11100010", "01100011", "11100100", "01100101", "01100110", "01100111", "11101000", "01101001", "01101010", "01101011", "01101100", "01101101", "01101110", "01000011", "11110000", "01110001", "01110010", "01110011", "01110100", "01110101", "01110110", "01110111", "01111000", "01111001", "01111010", "01111011", "01111100", "10111101", "11110100", "11101001");
K_120_C slv(6 downto 0) "1111000" 7/8 K-code constants constant K_55_C : slv(6 downto 0) := "0110111"; constant K_57_C : slv(6 downto 0) := "0111001"; constant K_87_C : slv(6 downto 0) := "1010111"; constant K_93_C : slv(6 downto 0) := "1011101"; constant K_117_C : slv(6 downto 0) := "1110101";
K_120_CODE_C slv(7 downto 0) "11111000" constant K_55_CODE_C : slv(7 downto 0) := "10110111"; constant K_57_CODE_C : slv(7 downto 0) := "10111001"; constant K_87_CODE_C : slv(7 downto 0) := "11010111"; constant K_93_CODE_C : slv(7 downto 0) := "11011101"; constant K_117_CODE_C : slv(7 downto 0) := "11110101";
CODE_6B_C slv6Array(0 to 31) ( "000110",
"010001",
"010010",
"100011",
"010100",
"100101",
"100110",
"000111",
"011000",
"101001",
"101010",
"001011",
"101100",
"001101",
"001110",
"111010",
"110110",
"110001",
"110010",
"010011",
"110100",
"010101",
"010110",
"010111",
"001100",
"011001",
"011010",
"011011",
"011100",
"011101",
"011110",
"110101")
K_X_0_C slv(4 downto 0) "00000" 5b/6b K Codes
K_X_1_C slv(4 downto 0) "00001"
K_X_2_C slv(4 downto 0) "00010"
K_X_3_C slv(4 downto 0) "00011"
K_X_4_C slv(4 downto 0) "00100"
K_X_7_C slv(4 downto 0) "00111"
K_X_8_C slv(4 downto 0) "01000"
K_X_11_C slv(4 downto 0) "01011"
K_X_16_C slv(4 downto 0) "10000" constant K_X_15_C : slv(4 downto 0) := "01111";
K_X_19_C slv(4 downto 0) "10011"
K_X_23_C slv(4 downto 0) "10111"
K_X_24_C slv(4 downto 0) "11000"
K_X_27_C slv(4 downto 0) "11011"
K_X_29_C slv(4 downto 0) "11101"
K_X_30_C slv(4 downto 0) "11110"
K_X_31_C slv(4 downto 0) "11111"
K_X_0_CODE_C slv(5 downto 0) "000110" Some of these are inverted from normal code. This doesn't matter as the encoder/decoder are currently written These aren't used for encoder and both normal and inverted are checked for in decoder
K_X_1_CODE_C slv(5 downto 0) "010001"
K_X_2_CODE_C slv(5 downto 0) "010010"
K_X_3_CODE_C slv(5 downto 0) "100011"
K_X_4_CODE_C slv(5 downto 0) "010100"
K_X_7_CODE_C slv(5 downto 0) "111000" Double check this, should invert?
K_X_8_CODE_C slv(5 downto 0) "011000"
K_X_11_CODE_C slv(5 downto 0) "001011"
K_X_16_CODE_C slv(5 downto 0) "001001" constant K_X_15_CODE_C : slv(5 downto 0) := "000011";
K_X_19_CODE_C slv(5 downto 0) "010011"
K_X_23_CODE_C slv(5 downto 0) "101000"
K_X_24_CODE_C slv(5 downto 0) "001100"
K_X_27_CODE_C slv(5 downto 0) "100100"
K_X_29_CODE_C slv(5 downto 0) "100010"
K_X_30_CODE_C slv(5 downto 0) "100001"
K_X_31_CODE_C slv(5 downto 0) "001010"

Types

Name Type Description
KCodeEntryType ----------------------------------------------------------------------------------------------- K-Code table -----------------------------------------------------------------------------------------------
KCodeArray array (natural range <>) of KCodeEntryType
Encode7b8bType ----------------------------------------------------------------------------------------------- Structures for holding 7/8 code table -----------------------------------------------------------------------------------------------
Encode7b8bArray array (natural range <>) of Encode7b8bType
Encode5b6bType constant K78_TABLE_C : Encode7b8bArray(0 to 0); ----------------------------------------------------------------------------------------------- Structure for holding 5/6 code table -----------------------------------------------------------------------------------------------
Encode5b6bArray array (natural range <>) of Encode5b6bType
EncodeTableType constant K56_TABLE_C : Encode5b6bArray(0 to 15); ----------------------------------------------------------------------------------------------- Structure for full encode table -----------------------------------------------------------------------------------------------

Functions

Description
Convert a 12 bit code into "D/K.x.y" form

Description

Procedures for encoding and decoding