sd1074 0 June 10, 2007 Posted June 10, 2007 (edited) · Report post Помогите пока не очень грамотному в области кодирования человеку... Стоит учебная задача, защитить пакет из 15 бит 5ю битами CRC (ну то есть создать соответствующий кодер). Решить надо на VHDL. Насколько я успел понять, 5 этих битов в реальном времени можно вычислить двумя способами (не вдаваясь в подробности): 1) Делить на соответсвующий образующий полином и взять остаток 2) Сделать готовую табличку соответсвия "12битное число" => "5битный CRCкод" и брать результат оттуда Нашёл на форуме такую полезную ссылочку: http://www.easics.com/webtools/crctool Данная тулза генерит непосредственно VHDL-код. Однако тут меня засмущал такой факт... Она по сути просто создаёт комбинационную схемы (причём довольно компактную). Правильно ли я понимаю, что данная комбинационная схема является результатом минимизации таблички, описанной в п.2? Выходит в связи с тем, что у меня пакет такой короткий, я могу в один такт с минимальнейшими аппаратными затратами осущестить циклическое кодирование? Edited June 10, 2007 by sd1074 Quote Share this post Link to post Share on other sites More sharing options...
Сергей Борщ 186 June 10, 2007 Posted June 10, 2007 · Report post Правильно ли я понимаю, что данная комбинационная схема является результатом минимизации таблички, описанной в п.2?В общем случае да. Вот тут подробно. Quote Share this post Link to post Share on other sites More sharing options...
sd1074 0 June 10, 2007 Posted June 10, 2007 · Report post Премного благодарю, что развеяли сомнения. Quote Share this post Link to post Share on other sites More sharing options...
vladv 0 June 13, 2007 Posted June 13, 2007 (edited) · Report post Данная тулза генерит непосредственно 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] Собственно, все. Edited June 13, 2007 by vladv Quote Share this post Link to post Share on other sites More sharing options...