Научная статья на тему 'Реализация системы автоматизированного проектирования кодеков помехоустойчивых кодов короткой длины'

Реализация системы автоматизированного проектирования кодеков помехоустойчивых кодов короткой длины Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
176
78
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Мальчуков А. Н., Осокин А. Н.

Применение помехоустойчивых кодов является одним из эффективных методов обеспечения верности передачи данных. Проектирование кодеков помехоустойчивых кодов в первую очередь связано с определением параметров корректирующего кода, затем по этим параметрам пытаются подобрать более или менее подходящий код, исправляющий ошибки. Параметрами кода являются длина информационного блока и корректирующая способность кода (количество контролирующих символов).

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Мальчуков А. Н., Осокин А. Н.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Automatic design system for codecs of noise-resistant codes of small dimension

The implementation of system allowing the engineer to project high-speed codecs of noise-resistant codes on two parameters (the length of the informational block and correcting ability of a code) without profound knowledge in the field of noise-resistant coding. The data on system's output is accessible for both the software and the hardware implementations. For hardware implementation design files for configuration Altera PLD can be formed.

Текст научной работы на тему «Реализация системы автоматизированного проектирования кодеков помехоустойчивых кодов короткой длины»

N96(18)2008

А.Н. Мальчуков, А.Н. Осокин

Реализация системы автоматизированного проектирования кодеков помехоустойчивых кодов короткой длины

Применение помехоустойчивых кодов является одним из эффективных методов обеспечения верности передачи данных. Проектирование кодеков помехоустойчивых кодов в первую очередь связано с определением параметров корректирующего кода, затем по этим параметрам пытаются подобрать более или менее подходящий код, исправляющий ошибки. Параметрами кода являются длина информационного блока и корректирующая способность кода (количество контролирующих символов).

Для исправления независимых ошибок различной кратности широко используются линейные блоковые помехоустойчивые коды (далее — коды) небольшой длины: Хемминга, Рида-Маллера, БЧХ-коды (коды Боуза-Чоудхури-Хоквенге-ма) и др. Для непосредственного выбора помехоустойчивого кода с минимальной избыточностью под конкретные параметры необходимы глубокие знания теории помехоустойчивого кодирования.

Благодаря использованию системы автоматизированного проектирования кодеков значительно ускоряется разработка различных систем промышленной автоматизации и сетей сбора информации.

Сформулируем основные требования, предъявляемые к такой системе.

1. Проектирование конечного кодека должно осуществляться по двум параметрам, которые вводит в систему пользователь:

• длина информационного блока;

• корректирующая способность кода.

2. Система не должна быть требовательна к вычислительным ресурсам.

3. На выходе системы должны быть:

• возможность программной реализации кодека.

4. Используемый код должен иметь минимальную избыточность.

Предлагаемый в данной статье вариант реализации системы удовлетворяет указанным выше требованиям.

Рассмотрим структуру такой системы.

Структура системы проектирования кодеков

Система проектирования кодеков состоит из следующих взаимосвязанных модулей (рис. 1):

Данные пользователя

Модули

Выбор образующего полинома

Реализация кодека

Формирование помехоустойчивого . кода ,

Ж

Проектирование кодека

^--У

Реализация кодека на языке описания аппаратуры УегМод

Параметры кода,

таблицы декодирования

• готовое решение аппаратной реализации кодека; Рис. 1. Структура системы проектирования кодеков

106

№>6(18)2008

1) выбор образующего полинома;

2) формирование помехоустойчивого кода;

3) проектирование кодека;

4) реализация на программируемых логических интегральных схемах (ПЛИС).

В системе используются модифицированные циклические помехоустойчивые коды, в которых процедуры кодирования и декодирования основаны на делении кодового слова на образующий полином по модулю два. Основные отличия данной системы: предъявляемые требования к образующему полиному и небольшая длина кодового слова.

Данные пользователя

В качестве входных данных пользователь вводит (рис. 2) длину информационного блока (количество бит данных, передаваемых в одном кодовом слове) и желаемую корректирующую способность кода (количество исправляемых кодом независимых ошибок).

Ввод данных

Разрядность информационного блока 9

Количество исправляемых ошибок 2

Дальше

Рис. 2. Форма ввода данных пользователя системы

Два параметра, введенные пользователем, поступают на вход модуля выбора образующего полинома.

Модуль выбора образующего полинома

На входе модуля — задаваемые пользователем параметры: разрядность информационной последовательности и желаемая

корректирующая способность кода. Мо- Л дуль работает с файлами данных, в которых ig содержатся заранее найденные и прове- ^ ренные полиномы для различных вариаций ^ пользовательских параметров. |

При формировании файлов предвычис- ^ ленных многочленов использовался автор- J| ский алгоритм поиска образующих полино- ^ мов [1]. Несмотря на то что количество ите- ^ раций алгоритма поиска было существенно сокращено, поиск образующих полиномов остается по-прежнему ресурсоемким процессом. В связи с этим для поиска, результаты которого сведены в табл. 1, использовался суперкомпьютерный кластер «СКИФ-политех».

В табл. 1 на пересечении строк и столбцов указаны образующие полиномы, найденные автором [1]. Полученные результаты сопоставимы с результатами, опубликованными группой разработчиков программы MAGMA (Markus Grassl, Greg White, Damien Fisher) [4].

В итоге на выход модуля поступают выбранный образующий полином и вычисленная длина кодового слова, которые передаются в модуль формирования помехоустойчивого кода.

Модуль формирования помехоустойчивого кода

Основной операцией в процедурах кодирования и декодирования помехоустойчивых кодов системы является нахождение остатков (от деления кодового слова на образующий полином по модулю два). Для увеличения быстродействия кодеков, проектируемых системой, разработан авторский алгоритм матричного деления полиномов в арифметике по модулю два [5], позволяющий быстро вычислять контрольный блок или синдром ошибки. Пример реализации системой блока матричного деления на языке описания аппаратуры Verilog представлен на рис. 3.

Матрица задержек для ПЛИС семейства Flex10k фирмы Altera представлена на рис. 4.

^^v 107

N96(18)2008

Таблица 1

Полиномы, найденные автором

т /1 1 2 3 4

1 111 11111 1111111 111111111

2 1101 1101101 1110110101 1110101110101

3 1101 11001101 11101100101 111010011101001

4 1101 11100101 11101100101 1111000101100101

5 11001 110101001 11101100101 1111000100101101

6 11001 111010001 101101110001 10111000110110001

7 11001 111010001 110001110101 111000101001011001

8 11001 100111001 110001110101 110000111000110101

9 11001 100111001 110001110101 1110000110010010101

10 11001 1100001101 110001110101 1001100001010101101

11 11001 1101000011 110001110101 1000111110010100001

12 110001 1101000011 110001110101 11100001010110000011

13 110001 1101000011 110010101000101 10110001100101001001

14 110001 11000011001 1100001010010101 111001000000100110101

15 110001 11000011001 1100001010010101 111001110001000000101

16 110001 11000011001 1100001010010101 1111011000001000000101

17 101001 11000011001 11000011010000011 1111010000100011000001

18 101001 11000011001 11001000001100101 1110000100011100010001

19 101001 11000011001 110100001000010011 1011100100000001110001

20 101001 11000011001 100110010001100001 11110001000010100001001

21 101001 11000011001 100110010001100001 11001011000100000010101

22 101001 101100001001 100110010001100001 111100100000010001001001

23 101001 101100001001 110010100001100001 111100100000010001001001

24 101001 101100001001 110010100001100001 111010001000100001000011

25 101001 1100010010001 110010100001100001 111010001000100001000011

26 101001 1101010000001 110010100001100001 111010001000100001000011

27 1100001 1100010010001 1100100100010001001 1111001000010010000000011

28 1100001 1010110000001 1101000101000000011 1111001000010010000000011

29 1100001 1010110000001 1101000101000000011 1100110000000010001010011

Примечание. t — количество исправляемых кодом независимых ошибок.

108

№6(18)2008

I

0

эё

ео

1

I

■S3

ай

Рис. 3. Пример реализации системой матричного деления в САПР Altera Max+plusII

Рис. 4. Матрица задержек для схемы матричного деления

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

109

N96(18)2008

I

I

со о

3

-а §

0 с со

1 I

I

I

0 &

1 £

§

о &

в §

о

€ Й

г! ¡8

£

Рис. 5. Структура кодека

По авторскому алгоритму матричного деления на основании образующего полинома (выбран предыдущим модулем) данный модуль формирует таблицы вычисления остатков от деления, которые будут использоваться в процедурах кодирования и декодирования. На выходе модуля доступен сформированный быстродействующий блок вычисления контрольных разрядов и синдрома ошибок.

Модуль проектирования кодека

Для выбора структуры кодека системы проектирования проведено исследование [6], в результате которого выбрана и формализована структура быстродействующего кодека помехоустойчивых кодов

(на рис. 5 представлена одна из возможных структур реализации). Для окончательной конфигурации кодека модуль генерирует таблицы декодирования.

На выходе модуля доступны все параметры кодека, необходимые для программной реализации. Для аппаратной реализации все вычисленные параметры передаются в модуль реализации на ПЛИС.

Модуль реализации кодека на ПЛИС

На заключительном этапе формируется проект, состоящий из файлов, содержащих программу, описывающую работу кодека на языке описания аппаратуры Verilog (на рис. 6 приведен пример компиляции проек-

110

№6(18)2008

I

0

S

эё ^

ci

1

il ■SS

Рис. 6. Пример компиляции проекта в САПР Max+plusII

а)

Name: Value: С 20.0ns 40.0ns 60.0ns £ 1-1-1-1- 77.1ns 0.0ns 100.0ns 120.0ns 1 1 1

codec clock ip= data fix_data 1 0

11010110 100000000

00000000000000000 3 11010110001001000

b)

Name:

codec clock data ^ fix data

Value- I 260.0ns 280.0ns 300.0ns 320.0ns 340.0

-Ha-1-1-1-'-

11010110011100010 \ 1

Jj 10010100011100010 J

Рис. 7. Моделирование работы кодека в режимах кодирования (а) и декодирования (Ь)

111

Не6(18)2008

'S ê

ï

«

Q

3

-а =s

Si

0

с «

8

il

1

5

i

о

6

g

lg §

о &

8

Si

<3

S

e 8 S

s g

¿S

та). Формируется прошивка для ПЗУ, в которой будут содержаться таблицы декодирования. При генерации конфигурационного файла для ПЗУ применяется метод уменьшения требуемого объема памяти при табличном декодировании. Используется метод, подобный частично-ассоциативной организации кэш-памяти. Затем готовый проект применяют для конфигурирования ПЛИС (на рис. 9 приведены диаграммы задержек в режимах кодирования и декодирования), используя САПР фирмы Altera (Max+plus II, Quartus).

Задержки в режимах кодирования и декодирования равняются 20 и 25 нс соответственно для кристалла EPF10K30ETC144-1 семейства ПЛИС Flex10KE фирмы Altera.

Предлагаемая в статье система позволит инженеру проектировать быстродействующие кодеки помехоустойчивых кодов [6] без углубленных знаний в области помехоустойчивого кодирования по двум параметрам (длина информационного блока, корректирующая способность кода). На выходе системы доступны данные как для программной, так и для аппаратной реализации. В качестве аппаратной реализации формируются проектные файлы для конфигурирования ПЛИС фирмы Altera.

Помехоустойчивые кодеки, проектируемые системой, имеют следующие особенности:

• быстродействие (кодирование 20 нс, декодирование 25 нс при длине кодового слова, равной 2 байтам);

• длина кодового слова меньше, чем у БЧХ-кодов для случаев t =2, m = {1-4, 8-13, 22-24}, для t =3, m = {2, 6-13, 17-26} и для t=4, m = {1-26};

• возможность работать с данными при параллельном способе передаче (за счет блока матричного деления);

• исправление пакетов ошибок в дополнение к исправлению независимых ошибок;

• сигнализация о нахождении неисправимой ошибки.

Требования к системе:

система

Windows

• операционная 95/98/2000/XP/Vista;

• 441 кб на жестком диске;

• 7 Мб оперативной памяти;

Авторы благодарят администрацию суперкомпьютерного кластера «СКИФ-политех» за содействие при проведении расчетов.

Работа выполнена на кафедре вычислительной техники института «Кибернетический центр» Томский политехнический университет и поддержана грантом «У.М.Н.И.К.» Фонда содействия развитию малых форм предприятий в научно-технической сфере.

Список литературы

1. Мальчуков А.Н. Алгоритм поиска образующих полиномов для системы проектирования кодеков помехоустойчивых кодов // Сб. трудов 13-й международной научно-практической конференции студентов, аспирантов и молодых ученых «Современные техника и технологии». Томск: изд-во ТПУ, 2008 (в печати).

2. Морелос-Сарагоса Р. Искусство помехоустойчивого кодирования. Методы, алгоритмы, применение. М.: Техносфера, 2005.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

3. Мак-Вильямс Ф.Дж, Слоэн Н.Дж.А. Теория кодов, исправляющих ошибки. Пер. с англ. И. И. Грушко, В. А. Зиновьева. М.: Связь, 1979.

4. Markus Grassl. On-line Tables of linear Codes. http://www.codetables.de

5. Буркатовская Ю.Б., Мальчуков А.Н., Осо-кин А.Н. Быстродействующие алгоритмы деления полиномов в арифметике по модулю два // Известия Томского политехнического университета. 2006. T. 309. № 1. С. 19-24.

6. Буркатовская Ю.Б., Мальчуков А.Н., Осо-кин А.Н. Быстродействующий кодек БЧХ-кодов на ПЛИС // Приборы и системы. Управление. Контроль. Диагностика. 2006. № 3. С. 21-23.

112

i Надоели баннеры? Вы всегда можете отключить рекламу.