Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: CRC комбинационной схемой?
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
sd1074
Помогите пока не очень грамотному в области кодирования человеку...
Стоит учебная задача, защитить пакет из 15 бит 5ю битами CRC (ну то есть создать соответствующий кодер). Решить надо на VHDL. Насколько я успел понять, 5 этих битов в реальном времени можно вычислить двумя способами (не вдаваясь в подробности):
1) Делить на соответсвующий образующий полином и взять остаток
2) Сделать готовую табличку соответсвия "12битное число" => "5битный CRCкод" и брать результат оттуда
Нашёл на форуме такую полезную ссылочку:
http://www.easics.com/webtools/crctool
Данная тулза генерит непосредственно VHDL-код. Однако тут меня засмущал такой факт... Она по сути просто создаёт комбинационную схемы (причём довольно компактную). Правильно ли я понимаю, что данная комбинационная схема является результатом минимизации таблички, описанной в п.2?
Выходит в связи с тем, что у меня пакет такой короткий, я могу в один такт с минимальнейшими аппаратными затратами осущестить циклическое кодирование?
Сергей Борщ
Цитата(sd1074 @ Jun 10 2007, 10:47) *
Правильно ли я понимаю, что данная комбинационная схема является результатом минимизации таблички, описанной в п.2?
В общем случае да. Вот тут подробно.
sd1074
Премного благодарю, что развеяли сомнения.
vladv
Цитата(sd1074 @ Jun 10 2007, 11:47) *
Данная тулза генерит непосредственно VHDL-код. Однако тут меня засмущал такой факт... Она по сути просто создаёт комбинационную схемы (причём довольно компактную). Правильно ли я понимаю, что данная комбинационная схема является результатом минимизации таблички, описанной в п.2?

Это зависит от того, что подразумевается под словами "результатом минимизации таблички". Если говорить про сам процесс создания такой комбинационной схемы, то никакая табличка там реально используется и не минимизируется. Комбинационная схема строится исходя из свойств генератора CRC (он же LFSR, он же делитель на образующий полином).

Лично мне нравится такой способ. На примере 4-х бит CRC 1011 (т.е. при сдвиге старший бит XOR-ится с младшим и следующим за младшим битом) для 8-бит входного слова. Старший разряд везде слева.

1. Строим таблицу состояний регистра CRC для 8-ми тактов с начальным состоянием 0001:
0. 0001
1. 0010
2. 0100
3. 1000
4. 0011
5. 0110
6. 1100
7. 1011

2. "Транспонируем" эту таблицу так, что номер такта - это номер бита входного слова, а "1" в значении состояния означает в какой бит результата CRC надо этот входной бит по-XOR-ить:
CRC[0] = D[0] ^ D[4] ^ D[7]
CRC[1] = D[1] ^ D[4] ^ D[5] ^ D[7]
CRC[2] = D[2] ^ D[5] ^ D[6]
CRC[3] = D[3] ^ D[6] ^ D[7]

Собственно, все.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.