""" Auto-generated test vector data for LDPC decoder cocotb tests. Generated by model/gen_firmware_vectors.py LLR packing: 5 LLRs per 32-bit word, 6 bits each (two's complement) Word bits [5:0] = LLR[5*i+0] Word bits [11:6] = LLR[5*i+1] Word bits [17:12] = LLR[5*i+2] Word bits [23:18] = LLR[5*i+3] Word bits [29:24] = LLR[5*i+4] """ # Number of test vectors NUM_VECTORS = 20 LLR_WORDS_PER_VECTOR = 52 # Wishbone register offsets (byte-addressed) # Note: LLR write range (0x10-0xDC) overlaps read-only registers. # This is safe because LLRs are write-only and DECODED/VERSION are read-only. REG_CTRL = 0x00 REG_STATUS = 0x04 REG_LLR_BASE = 0x10 # 52 words: 0x10, 0x14, ..., 0xDC (write-only) REG_DECODED = 0x50 # read-only REG_VERSION = 0x54 # read-only TEST_VECTORS = [ { 'index': 0, 'llr_words': [ 0x1F7DF81F, 0x20C9F7E0, 0x207CC7DF, 0x1F82081F, 0x328207E0, 0x20820820, 0x208207CC, 0x1F81F7DF, 0x1F7F27DF, 0x1F7CC81F, 0x0C81F81F, 0x207E07F2, 0x1F820820, 0x207DF7CC, 0x1F81F7E0, 0x2082081F, 0x0C31F81F, 0x2081F7DF, 0x1FCA081F, 0x20820820, 0x1F7DF7DF, 0x207E07E0, 0x208207CC, 0x1F8207DF, 0x0C7DF7DF, 0x2030C820, 0x207DF7E0, 0x1F82081F, 0x203207DF, 0x20832820, 0x2081F820, 0x20820832, 0x1F82081F, 0x207E081F, 0x207DF820, 0x1F7E0320, 0x1F7E07E0, 0x1F81F820, 0x20CA07CC, 0x0C81F7E0, 0x1F820820, 0x1FCA07DF, 0x1F7E080C, 0x208207F2, 0x207E081F, 0x20820820, 0x207E07DF, 0x2082081F, 0x1F7E07DF, 0x1F7DF7E0, 0x207DF820, 0x00000020 ], 'decoded_word': 0x3FD74222, 'info_bits': [0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0], 'converged': True, 'iterations': 1, 'syndrome_weight': 0, 'bit_errors': 0, }, { 'index': 1, 'llr_words': [ 0x1F8207F2, 0x207DF820, 0x2081F7DF, 0x1F81F81F, 0x2081F81F, 0x1F7E07DF, 0x1F7E031F, 0x207DF7DF, 0x1F8207E0, 0x1F7DF81F, 0x1F81F820, 0x1F81F7E0, 0x1F7DF820, 0x1F82081F, 0x207E07DF, 0x207E0820, 0x207E07DF, 0x2080C7DF, 0x2081F81F, 0x207DF30C, 0x2081F31F, 0x207E081F, 0x1F7DF30C, 0x208207DF, 0x1F81F7E0, 0x207E07DF, 0x1F7E07DF, 0x0C82081F, 0x1F81F7E0, 0x1F7DFC9F, 0x2082081F, 0x1F7E07DF, 0x207DF7DF, 0x208207DF, 0x207E0320, 0x327DF81F, 0x2082030C, 0x1F820820, 0x0CC9F7E0, 0x1F8207DF, 0x1F7E07DF, 0x2081F820, 0x1F7E0820, 0x1F81F320, 0x207E081F, 0x2081F81F, 0x1F81F7E0, 0x1F7DF820, 0x2081F81F, 0x1F81F7E0, 0x20820820, 0x00000020 ], 'decoded_word': 0x09A5626C, 'info_bits': [0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0], 'converged': True, 'iterations': 1, 'syndrome_weight': 0, 'bit_errors': 0, }, { 'index': 2, 'llr_words': [ 0x2082030C, 0x1F820820, 0x1F81F7E0, 0x2080C7DF, 0x20832820, 0x207E0820, 0x327E031F, 0x207DF7CC, 0x20820C8C, 0x1F7F27F2, 0x1F7DF7E0, 0x20832820, 0x1F820820, 0x3281F81F, 0x1F30C7E0, 0x1F8207E0, 0x207E07E0, 0x1F7DF820, 0x0C7DF7DF, 0x20CA07DF, 0x207DF81F, 0x2082081F, 0x1F81F820, 0x20820CA0, 0x2081F81F, 0x1F7E0820, 0x1F81F81F, 0x20820820, 0x1F7DF81F, 0x20CA081F, 0x1F7E07DF, 0x1F7DF81F, 0x1F7E080C, 0x1F82080C, 0x0C81F820, 0x1F81F7DF, 0x1F7CC7E0, 0x328207E0, 0x1F81F820, 0x2081F7DF, 0x1F7E0CA0, 0x1F81F820, 0x2081F81F, 0x20820820, 0x2081F31F, 0x1F81F820, 0x1F7E081F, 0x0C7E081F, 0x1F7E07E0, 0x1F82081F, 0x2081F7DF, 0x00000020 ], 'decoded_word': 0x2FFC25FC, 'info_bits': [0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0], 'converged': True, 'iterations': 1, 'syndrome_weight': 0, 'bit_errors': 0, }, { 'index': 3, 'llr_words': [ 0x1F81F820, 0x1F81F7DF, 0x208207E0, 0x327E0820, 0x2081F81F, 0x1F82081F, 0x1F8207E0, 0x1FCA07E0, 0x1F7DF7E0, 0x207E07E0, 0x20820820, 0x0C81F81F, 0x2081F820, 0x1F81F7E0, 0x1F7E07E0, 0x1F8207DF, 0x1F7E031F, 0x1F82081F, 0x207E07E0, 0x1F820820, 0x1F7DF7E0, 0x207DF820, 0x1F81F7CC, 0x1F7E07E0, 0x208207E0, 0x207DF81F, 0x2081F81F, 0x20820820, 0x1F820820, 0x1F81F7DF, 0x203207E0, 0x1F8207DF, 0x0C7DF7DF, 0x1F7E07E0, 0x2081F7E0, 0x1F7E07E0, 0x1F81F81F, 0x2081F7E0, 0x1F7DF820, 0x2081F820, 0x1F7F281F, 0x2081F7E0, 0x207DF7E0, 0x207E07E0, 0x1F31F820, 0x1F7E07E0, 0x1F7DF7E0, 0x207DF820, 0x1F7DF31F, 0x1F31F7E0, 0x208207DF, 0x00000020 ], 'decoded_word': 0x5DABF50B, 'info_bits': [1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0], 'converged': True, 'iterations': 1, 'syndrome_weight': 0, 'bit_errors': 0, }, { 'index': 4, 'llr_words': [ 0x207DF820, 0x207DF7E0, 0x2081F81F, 0x207DF7E0, 0x208207E0, 0x1F7DFC9F, 0x1F7DF7DF, 0x1F82031F, 0x1F7E081F, 0x1F81F81F, 0x1F7E0820, 0x207E081F, 0x2081F820, 0x1F81F7DF, 0x1F820820, 0x1F7DF81F, 0x1F7CC820, 0x1F81F31F, 0x207E07DF, 0x207E081F, 0x1F8207CC, 0x1F7CC31F, 0x1F82081F, 0x207F2820, 0x207E0820, 0x2082081F, 0x207E07E0, 0x207E0820, 0x1F8207E0, 0x1F7E07E0, 0x2082081F, 0x207DF81F, 0x1F31F7E0, 0x2081F820, 0x1F81F7DF, 0x2081F820, 0x2081F820, 0x2081F81F, 0x207DF7E0, 0x20820820, 0x1F81F7E0, 0x207E07E0, 0x2081F81F, 0x208207DF, 0x0C81F820, 0x1F7E081F, 0x2082081F, 0x207E0820, 0x207E0820, 0x1F81F81F, 0x2080C7E0, 0x0000001F ], 'decoded_word': 0x05D8EA33, 'info_bits': [1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0], 'converged': True, 'iterations': 1, 'syndrome_weight': 0, 'bit_errors': 0, }, { 'index': 5, 'llr_words': [ 0x327DF820, 0x1F7DF820, 0x1F3207E0, 0x2082081F, 0x2081FC9F, 0x1F8207DF, 0x1F8207DF, 0x0C8207DF, 0x1F82081F, 0x207E07DF, 0x2081F7DF, 0x1F81F820, 0x0C31F820, 0x207E0820, 0x207DF7DF, 0x1F82031F, 0x20820820, 0x1F7E0C8C, 0x20C9F81F, 0x20820820, 0x1F7DF7E0, 0x2081F7E0, 0x1F7CC7DF, 0x208207E0, 0x207E0820, 0x2032081F, 0x208207DF, 0x207DF81F, 0x1F7E07E0, 0x1F81F820, 0x2081F820, 0x3281F30C, 0x1F7DF81F, 0x207DFC8C, 0x2083281F, 0x1F8207E0, 0x1F7E07E0, 0x0C7DF820, 0x207E07DF, 0x2031F320, 0x1F7DF820, 0x1F32081F, 0x207DF81F, 0x207DF7DF, 0x1F7E07DF, 0x1F81F31F, 0x1F7DF81F, 0x1F81F80C, 0x208207E0, 0x1F81F7CC, 0x0C81FC9F, 0x00000020 ], 'decoded_word': 0x19AF1473, 'info_bits': [1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0], 'converged': True, 'iterations': 1, 'syndrome_weight': 0, 'bit_errors': 0, }, { 'index': 6, 'llr_words': [ 0x2031FCA0, 0x1F83281F, 0x1F81F7E0, 0x207DF81F, 0x1F8207E0, 0x2081F81F, 0x2081F7DF, 0x1F82031F, 0x2081F81F, 0x1F7E07E0, 0x1F81F7E0, 0x207E081F, 0x0C81F7E0, 0x207E07DF, 0x207DF7E0, 0x1F7DF7E0, 0x1F7DF81F, 0x1F81F7CC, 0x2081FC9F, 0x1F81F31F, 0x1F7E0820, 0x1F820820, 0x1F82081F, 0x1F7E0820, 0x1F31F81F, 0x1F81F81F, 0x1F8207F2, 0x1F820820, 0x2081F820, 0x207E07DF, 0x1F7E0820, 0x1F81F7DF, 0x1F7E07DF, 0x207E07E0, 0x1F31F7E0, 0x20820820, 0x1F7DF820, 0x1F80C7DF, 0x0C81F81F, 0x2082081F, 0x207E081F, 0x1F7CC820, 0x2032081F, 0x2031F81F, 0x1F7E0820, 0x2081F820, 0x1F7E07E0, 0x207DF7DF, 0x1F81F81F, 0x2081F7E0, 0x1F7E081F, 0x0000001F ], 'decoded_word': 0x34D925D3, 'info_bits': [1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0], 'converged': True, 'iterations': 1, 'syndrome_weight': 0, 'bit_errors': 0, }, { 'index': 7, 'llr_words': [ 0x207CC7DF, 0x2031F81F, 0x2081F7E0, 0x0C7DF820, 0x208207DF, 0x1F7DF81F, 0x0C7DF7E0, 0x1F7DF7E0, 0x1F81F81F, 0x1F7E081F, 0x1F820820, 0x207DF7DF, 0x2081F820, 0x3282081F, 0x1F7E07E0, 0x1F7E07DF, 0x1F820820, 0x1F81F31F, 0x207E0832, 0x0C7E07E0, 0x1F81F81F, 0x0CCA081F, 0x1FC8C7DF, 0x207DF81F, 0x1F81F7DF, 0x207CC7DF, 0x1F7E081F, 0x1F81F7DF, 0x1F82081F, 0x1F82081F, 0x2081F820, 0x1F8207DF, 0x2081F7E0, 0x2030C81F, 0x20820820, 0x1F81F7DF, 0x1F81F31F, 0x2080C7E0, 0x1F32081F, 0x1F7DF81F, 0x207DF7DF, 0x20C9F31F, 0x1F7DF7E0, 0x208207E0, 0x327E07DF, 0x1F81F81F, 0x1F7DF820, 0x2081F7DF, 0x1F8207DF, 0x1F81F7E0, 0x1F8207E0, 0x00000020 ], 'decoded_word': 0x45C1E650, 'info_bits': [0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0], 'converged': True, 'iterations': 1, 'syndrome_weight': 0, 'bit_errors': 0, }, { 'index': 8, 'llr_words': [ 0x1F81F7E0, 0x1F81F81F, 0x20820820, 0x203207DF, 0x1F8207DF, 0x207CC81F, 0x207DF81F, 0x1F7E081F, 0x1F81F7E0, 0x208207E0, 0x207DF820, 0x207DF81F, 0x2081F7E0, 0x207F27DF, 0x2031F7E0, 0x1F8207E0, 0x208207E0, 0x207DF7CC, 0x1F82081F, 0x2081F81F, 0x1F81F820, 0x207E07DF, 0x1F7DF820, 0x2081F81F, 0x1F8207DF, 0x207E0820, 0x207DF820, 0x1F81F820, 0x20820820, 0x0C81F81F, 0x1F7E07DF, 0x2081F80C, 0x1F820832, 0x1F7DF820, 0x1F8207CC, 0x207E07DF, 0x1F82080C, 0x1F8207DF, 0x207E080C, 0x1FCA07DF, 0x2081F7DF, 0x1F81F820, 0x1F7DF31F, 0x1F7DF820, 0x1F7E07DF, 0x2081F81F, 0x207E0820, 0x0C7DF81F, 0x207DF7DF, 0x2082081F, 0x1F81F7E0, 0x0000001F ], 'decoded_word': 0xA4CA7D49, 'info_bits': [1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1], 'converged': True, 'iterations': 1, 'syndrome_weight': 0, 'bit_errors': 0, }, { 'index': 9, 'llr_words': [ 0x1F30C7DF, 0x208207DF, 0x2081F81F, 0x207DF820, 0x1F7E07DF, 0x1FCA07DF, 0x1F820820, 0x1F31F820, 0x207DF7DF, 0x1F81F820, 0x1F820820, 0x207DF80C, 0x1F7DF7DF, 0x20820820, 0x208327DF, 0x203207DF, 0x32CA07DF, 0x1F81F7E0, 0x1F7E07DF, 0x207E07CC, 0x207E081F, 0x1F81F81F, 0x1F81F7DF, 0x328327DF, 0x0C81F7E0, 0x1F7F27DF, 0x1F81F7DF, 0x208207E0, 0x207E07DF, 0x1F7DF7E0, 0x1F7DF81F, 0x1F320832, 0x207E081F, 0x2081F7DF, 0x207E080C, 0x207E081F, 0x20C9F320, 0x207E07E0, 0x207E081F, 0x1F7E07DF, 0x207E081F, 0x1F7E07E0, 0x1F81F7E0, 0x1F8207E0, 0x0C8207E0, 0x20820820, 0x1F7DF81F, 0x1F81F7E0, 0x1F7E0320, 0x1F81F320, 0x2081F820, 0x0000001F ], 'decoded_word': 0xD849EB80, 'info_bits': [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1], 'converged': True, 'iterations': 1, 'syndrome_weight': 0, 'bit_errors': 0, }, { 'index': 10, 'llr_words': [ 0x0C30C30C, 0x0C30C80C, 0x0C30CEBA, 0x0C32733A, 0x279E030C, 0x0C820320, 0x0C32780C, 0x0C30C30C, 0x0CE8CEBA, 0x3A9CC80C, 0x3A32030C, 0x2030C9FA, 0x203209CC, 0x0C80C30C, 0x3A30C320, 0x0C30CE8C, 0x209CC320, 0x209CC327, 0x0C30C320, 0x3A9CCE8C, 0x2080C30C, 0x27820EA7, 0x2083A30C, 0x0C9FA33A, 0x0CEA0EA0, 0x20327EBA, 0x2030C320, 0x2732730C, 0x3A820EA0, 0x0C9FA320, 0x0C9FA30C, 0x0C80C320, 0x0CEBA9FA, 0x2780CEBA, 0x0C3209E0, 0x3AE8CE8C, 0x2030C320, 0x2030CE8C, 0x0C30CE8C, 0x2730C327, 0x0C30C30C, 0x0C327327, 0x209E730C, 0x27E8C80C, 0x0CE8C30C, 0x209E030C, 0x3A30C320, 0x0C32730C, 0x0C30CE8C, 0x2030C320, 0x0C32780C, 0x0000000C ], 'decoded_word': 0x9BCA9A40, 'info_bits': [0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1], 'converged': True, 'iterations': 1, 'syndrome_weight': 0, 'bit_errors': 0, }, { 'index': 11, 'llr_words': [ 0x0C30C80C, 0x0C30C30C, 0x2730C820, 0x0C80C30C, 0x0C32730C, 0x0C30C9E7, 0x0CE8C33A, 0x0C9CC320, 0x2032030C, 0x0C32030C, 0x0C30C9E0, 0x209CC320, 0x0C9E730C, 0x0C33A9CC, 0x3A80C30C, 0x0C30C80C, 0x279CC320, 0x0CEA080C, 0x0C30C9CC, 0x279E0320, 0x2730C30C, 0x0CE8C30C, 0x0C80C9CC, 0x0C9CC30C, 0x3AE8CEA0, 0x20E8C320, 0x0C33A80C, 0x0CEBA33A, 0x0C30C9CC, 0x27EA0E8C, 0x0C30CEBA, 0x0CE8C30C, 0x0CEA7EA7, 0x0C30C30C, 0x0C83A327, 0x0CEBA30C, 0x0C83AEA0, 0x2033A80C, 0x0C80C30C, 0x0C30C30C, 0x0C82730C, 0x3A30C33A, 0x3A820E8C, 0x0C30C320, 0x0C30C9E7, 0x279CC320, 0x2080C30C, 0x27320327, 0x3A32083A, 0x0C33A80C, 0x0C9CC30C, 0x0000000C ], 'decoded_word': 0x79FFC352, 'info_bits': [0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0], 'converged': False, 'iterations': 30, 'syndrome_weight': 67, 'bit_errors': 20, }, { 'index': 12, 'llr_words': [ 0x3A82030C, 0x0CE8C827, 0x2083A327, 0x2780C827, 0x2730C320, 0x0C3279FA, 0x2730C30C, 0x2030C83A, 0x279E09E7, 0x3A320320, 0x0CEA7EBA, 0x20320327, 0x0CE8C9CC, 0x0C30C80C, 0x0CE8C33A, 0x0C9CC9E0, 0x0C30C80C, 0x2033A320, 0x0C32780C, 0x0C30C30C, 0x0C33AEBA, 0x0C80C327, 0x0CEA79CC, 0x0C30C320, 0x0C30CEA7, 0x2033A820, 0x0C30C327, 0x2080CE8C, 0x0C32080C, 0x3A82030C, 0x0C30C30C, 0x0C327320, 0x0C80C30C, 0x20EA730C, 0x27E8C80C, 0x3AEA7E8C, 0x2733AE8C, 0x0CE8C80C, 0x2730C33A, 0x3AE8C30C, 0x279CCE8C, 0x0C33AE8C, 0x0C3209E0, 0x0C30C30C, 0x0C30C80C, 0x2780C327, 0x0C320EA0, 0x0C33AEA0, 0x0C9E79E0, 0x2030CEA0, 0x2033AE8C, 0x00000020 ], 'decoded_word': 0x5D2534DC, 'info_bits': [0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1], 'converged': False, 'iterations': 30, 'syndrome_weight': 59, 'bit_errors': 13, }, { 'index': 13, 'llr_words': [ 0x0CE8C80C, 0x2032730C, 0x0CE8CE8C, 0x3A30C9FA, 0x209CC820, 0x0C80CE8C, 0x3A9CC30C, 0x0CE8C30C, 0x2730CEA7, 0x0C30C80C, 0x2783A30C, 0x0C320EBA, 0x2030C33A, 0x0CEA080C, 0x20EA730C, 0x0C30C9E0, 0x0C30C30C, 0x0C827320, 0x0C33A33A, 0x0CEA730C, 0x3A9E09FA, 0x0CE8C327, 0x0C9CC33A, 0x0C80CEA7, 0x0CEA7EA0, 0x0C8209FA, 0x3A3209CC, 0x20327327, 0x0C30CE8C, 0x2030C320, 0x3A30C327, 0x0CEA030C, 0x3A9E0E8C, 0x0CEA0E8C, 0x3AE8C80C, 0x0C9E730C, 0x0C30C30C, 0x2032030C, 0x0C320820, 0x0C33A30C, 0x27E8CEBA, 0x20EA730C, 0x0C30C30C, 0x3A30C820, 0x3A32730C, 0x0C80CEA0, 0x0C82780C, 0x20EA0320, 0x0C32033A, 0x2030C30C, 0x27320EA0, 0x0000003A ], 'decoded_word': 0xF21718ED, 'info_bits': [0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0], 'converged': False, 'iterations': 30, 'syndrome_weight': 61, 'bit_errors': 19, }, { 'index': 14, 'llr_words': [ 0x0CEA0327, 0x0C80CEBA, 0x209CC327, 0x0C30C33A, 0x0C30C30C, 0x0C9CC83A, 0x0C9CC80C, 0x3A32730C, 0x0C9CC30C, 0x0C32033A, 0x0C3209FA, 0x0C82730C, 0x0CEA0E8C, 0x2732730C, 0x0C30C30C, 0x3AE8CEBA, 0x3A30C33A, 0x0C80C9E7, 0x20E8CE8C, 0x2783A327, 0x2083A320, 0x2732030C, 0x2730C30C, 0x0C80C30C, 0x3A327327, 0x0C80C327, 0x0C30CEA7, 0x0C30CE8C, 0x0C80C80C, 0x3A820327, 0x3A30C30C, 0x0CE8C320, 0x3AE8C80C, 0x209FA80C, 0x0C30C320, 0x0C30C33A, 0x2080C80C, 0x0C30C33A, 0x3A9E09E0, 0x0C9CC320, 0x3A30C320, 0x0C83A9FA, 0x0C30C30C, 0x0C30C827, 0x0C327E8C, 0x2730C80C, 0x0C80C30C, 0x3A30C30C, 0x0CE8C33A, 0x0C9E0E8C, 0x0C30C327, 0x0000000C ], 'decoded_word': 0x7FE0197C, 'info_bits': [1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1], 'converged': False, 'iterations': 30, 'syndrome_weight': 65, 'bit_errors': 17, }, { 'index': 15, 'llr_words': [ 0x2780C30C, 0x27827E8C, 0x0C30CE8C, 0x0C32783A, 0x3A80C320, 0x0C30C30C, 0x0C30C30C, 0x0C33A33A, 0x2730C9FA, 0x0CE8C827, 0x0C32030C, 0x0C32033A, 0x2080CEBA, 0x0C9CC30C, 0x2030C9E0, 0x0C30C9FA, 0x2732030C, 0x0C9CC9CC, 0x3A80C320, 0x0C33AE8C, 0x3A80CEBA, 0x2733AEA7, 0x3A80C83A, 0x0CE8C33A, 0x0C327820, 0x27E8CEA7, 0x0CEA7EA0, 0x0C30C30C, 0x0CE8C30C, 0x0C33A9CC, 0x0C30C9FA, 0x0C80C80C, 0x3A30C327, 0x3AE8C80C, 0x0C32033A, 0x3A3209E0, 0x2730C30C, 0x20320E8C, 0x3A33A9CC, 0x2033A33A, 0x3A9CCEBA, 0x0CEA030C, 0x279CCE8C, 0x0C9CC30C, 0x0C820320, 0x0C32033A, 0x0C3209CC, 0x2082033A, 0x3A30C320, 0x20320EA7, 0x27E8C33A, 0x0000000C ], 'decoded_word': 0x9E869CC2, 'info_bits': [0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0], 'converged': False, 'iterations': 30, 'syndrome_weight': 75, 'bit_errors': 16, }, { 'index': 16, 'llr_words': [ 0x3A30C327, 0x3AE8C320, 0x3A33A30C, 0x0C80C9E0, 0x0CE8CE8C, 0x2032030C, 0x3A33A320, 0x3A33A33A, 0x0C3279CC, 0x2730C827, 0x0CEBA83A, 0x0C9CC33A, 0x0C80C320, 0x27327EA7, 0x0C320327, 0x0C9CC83A, 0x3A80CE8C, 0x0C30C33A, 0x0C3209E0, 0x0C30CEBA, 0x0C82783A, 0x0C30C320, 0x0C30CEBA, 0x0C33A30C, 0x0CE8C30C, 0x2030C320, 0x27EBA9E0, 0x0C30C327, 0x3AE8C320, 0x3A30CE8C, 0x2030C827, 0x0C9CC9E0, 0x273209FA, 0x3A30CEA0, 0x3A82730C, 0x0CEBA30C, 0x0C320E8C, 0x0C80C9FA, 0x3A32080C, 0x2032730C, 0x0C33A30C, 0x0C33A327, 0x0C80CEA0, 0x0C327320, 0x0C80C320, 0x20E8C320, 0x0C30C9CC, 0x0C30C820, 0x3A820327, 0x3A82780C, 0x0C32033A, 0x0000003A ], 'decoded_word': 0x4E7507D9, 'info_bits': [1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0], 'converged': False, 'iterations': 30, 'syndrome_weight': 56, 'bit_errors': 14, }, { 'index': 17, 'llr_words': [ 0x3A30C30C, 0x0C80C30C, 0x2033A30C, 0x3AEBA33A, 0x27E8C33A, 0x0CE8C30C, 0x0C80C33A, 0x0C33A80C, 0x0C33A30C, 0x2030C320, 0x0C30C30C, 0x0C30C327, 0x0C33A820, 0x3AEBA30C, 0x2730C80C, 0x0C82080C, 0x0CE8C30C, 0x0CE8CE8C, 0x3A80C327, 0x0C33A30C, 0x0C30CE8C, 0x2732030C, 0x3A30C33A, 0x0CE8C33A, 0x209CC80C, 0x0C30CE8C, 0x0CE8C30C, 0x0C33A9E7, 0x3A83AEA7, 0x2780C30C, 0x2030C33A, 0x0CEBA83A, 0x2080C30C, 0x209CC30C, 0x0C30C30C, 0x0C33A327, 0x0C32030C, 0x3A80C33A, 0x0C83A9CC, 0x0C9FA30C, 0x3A33A30C, 0x0C9CC80C, 0x2782730C, 0x2032730C, 0x0C33AEBA, 0x2033AEA0, 0x2732730C, 0x0C9E7320, 0x0C80C9FA, 0x0C32030C, 0x0C83A9E0, 0x00000020 ], 'decoded_word': 0xBB5F2BF1, 'info_bits': [0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1], 'converged': False, 'iterations': 30, 'syndrome_weight': 51, 'bit_errors': 19, }, { 'index': 18, 'llr_words': [ 0x3A9E083A, 0x2080C30C, 0x27E8C320, 0x3A327EA7, 0x203209E7, 0x0CE8C33A, 0x0C80C33A, 0x278209E7, 0x0CE8C9FA, 0x0C327EA0, 0x209E0827, 0x209FA80C, 0x0C9E083A, 0x0C30C327, 0x0C32730C, 0x0CEA083A, 0x20EA7327, 0x2730C30C, 0x0C9E09E7, 0x2033AEBA, 0x0C30CEBA, 0x0C30C30C, 0x0C9E7EBA, 0x3AE8C9CC, 0x3A30C30C, 0x0C33A9E0, 0x0C9FA30C, 0x3A33A30C, 0x2080C30C, 0x0C9FA30C, 0x3A32730C, 0x27827E8C, 0x2782730C, 0x2080CE8C, 0x0C80C320, 0x2030CE8C, 0x0C82030C, 0x0CEBA30C, 0x20EA79FA, 0x3A32030C, 0x2730C30C, 0x0C3209CC, 0x209E0820, 0x0C9CC33A, 0x3A9CC320, 0x0C9E780C, 0x0C30C80C, 0x0C30C9E0, 0x0C30CE8C, 0x209CC30C, 0x0C80C30C, 0x00000027 ], 'decoded_word': 0xAA500741, 'info_bits': [1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1], 'converged': False, 'iterations': 30, 'syndrome_weight': 76, 'bit_errors': 18, }, { 'index': 19, 'llr_words': [ 0x3A80C33A, 0x0CEA7327, 0x0C32780C, 0x0C30C30C, 0x279CC9CC, 0x3A33A30C, 0x3A32030C, 0x0C30C30C, 0x273209E0, 0x2032030C, 0x0CE8C30C, 0x0C30C30C, 0x3A33A327, 0x0C30C9E0, 0x0C80CEA0, 0x0C30C30C, 0x0C30C320, 0x0C83A33A, 0x0CEA030C, 0x3A80CE8C, 0x0C327EA0, 0x0C80C9E0, 0x3A320827, 0x0C320EA0, 0x0C30C30C, 0x0CE8CE8C, 0x0C30C320, 0x0C327827, 0x203279E0, 0x0C30C30C, 0x0C33A9E7, 0x3A32030C, 0x2030C83A, 0x0C9E09CC, 0x0C3209CC, 0x27E8C9CC, 0x27EBA83A, 0x3AE8C327, 0x27E8C327, 0x0C30C30C, 0x0C80CE8C, 0x0CEA0EBA, 0x0C32730C, 0x2730C9E0, 0x279CC33A, 0x0C30CEBA, 0x2730C320, 0x0C30C30C, 0x0C3209FA, 0x3A33A327, 0x209CCE8C, 0x0000000C ], 'decoded_word': 0xF98E6EFE, 'info_bits': [1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0], 'converged': False, 'iterations': 30, 'syndrome_weight': 42, 'bit_errors': 16, }, ] def get_converged_vectors(): """Return only vectors that converged (for positive testing).""" return [v for v in TEST_VECTORS if v['converged']] def get_failed_vectors(): """Return only vectors that did not converge (for negative testing).""" return [v for v in TEST_VECTORS if not v['converged']]