sd1074 0 10 июня, 2007 Опубликовано 10 июня, 2007 (изменено) · Жалоба Помогите пока не очень грамотному в области кодирования человеку... Стоит учебная задача, защитить пакет из 15 бит 5ю битами CRC (ну то есть создать соответствующий кодер). Решить надо на VHDL. Насколько я успел понять, 5 этих битов в реальном времени можно вычислить двумя способами (не вдаваясь в подробности): 1) Делить на соответсвующий образующий полином и взять остаток 2) Сделать готовую табличку соответсвия "12битное число" => "5битный CRCкод" и брать результат оттуда Нашёл на форуме такую полезную ссылочку: http://www.easics.com/webtools/crctool Данная тулза генерит непосредственно VHDL-код. Однако тут меня засмущал такой факт... Она по сути просто создаёт комбинационную схемы (причём довольно компактную). Правильно ли я понимаю, что данная комбинационная схема является результатом минимизации таблички, описанной в п.2? Выходит в связи с тем, что у меня пакет такой короткий, я могу в один такт с минимальнейшими аппаратными затратами осущестить циклическое кодирование? Изменено 10 июня, 2007 пользователем sd1074 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 122 10 июня, 2007 Опубликовано 10 июня, 2007 · Жалоба Правильно ли я понимаю, что данная комбинационная схема является результатом минимизации таблички, описанной в п.2?В общем случае да. Вот тут подробно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sd1074 0 10 июня, 2007 Опубликовано 10 июня, 2007 · Жалоба Премного благодарю, что развеяли сомнения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladv 0 13 июня, 2007 Опубликовано 13 июня, 2007 (изменено) · Жалоба Данная тулза генерит непосредственно 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] Собственно, все. Изменено 13 июня, 2007 пользователем vladv Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться