реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> CRC комбинационной схемой?, или я что-то не понял?
sd1074
сообщение Jun 10 2007, 07:47
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 12-05-07
Пользователь №: 27 674



Помогите пока не очень грамотному в области кодирования человеку...
Стоит учебная задача, защитить пакет из 15 бит 5ю битами CRC (ну то есть создать соответствующий кодер). Решить надо на VHDL. Насколько я успел понять, 5 этих битов в реальном времени можно вычислить двумя способами (не вдаваясь в подробности):
1) Делить на соответсвующий образующий полином и взять остаток
2) Сделать готовую табличку соответсвия "12битное число" => "5битный CRCкод" и брать результат оттуда
Нашёл на форуме такую полезную ссылочку:
http://www.easics.com/webtools/crctool
Данная тулза генерит непосредственно VHDL-код. Однако тут меня засмущал такой факт... Она по сути просто создаёт комбинационную схемы (причём довольно компактную). Правильно ли я понимаю, что данная комбинационная схема является результатом минимизации таблички, описанной в п.2?
Выходит в связи с тем, что у меня пакет такой короткий, я могу в один такт с минимальнейшими аппаратными затратами осущестить циклическое кодирование?

Сообщение отредактировал sd1074 - Jun 10 2007, 07:49


--------------------
Ignorance, arrogance keep us from being ourselves so we just follow our leaders. Why? © Stratovarius
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jun 10 2007, 10:47
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(sd1074 @ Jun 10 2007, 10:47) *
Правильно ли я понимаю, что данная комбинационная схема является результатом минимизации таблички, описанной в п.2?
В общем случае да. Вот тут подробно.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
sd1074
сообщение Jun 10 2007, 12:37
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 12-05-07
Пользователь №: 27 674



Премного благодарю, что развеяли сомнения.


--------------------
Ignorance, arrogance keep us from being ourselves so we just follow our leaders. Why? © Stratovarius
Go to the top of the page
 
+Quote Post
vladv
сообщение Jun 13 2007, 22:11
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 128
Регистрация: 7-06-06
Пользователь №: 17 825



Цитата(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]

Собственно, все.

Сообщение отредактировал vladv - Jun 13 2007, 22:12
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 03:07
Рейтинг@Mail.ru


Страница сгенерированна за 0.01844 секунд с 7
ELECTRONIX ©2004-2016