|
ALTERA CRC MegaCore, Кто нибудь использовал? |
|
|
|
Oct 3 2011, 05:14
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Вот генератор Verilog/VHDL кода для расчёта CRC: http://www.easics.be/webtools/crctoolЯ сначала тоже пытался использовать Альтеровский CRC, но оказалось проще воспользоваться этим генератором. Только не забудьте проинвертировать все биты и сделать битреверс внутри каждого байта (номер RFC, где об этом написано, к сожалению не помню). Во вложении пример для 8 бит входных данных. Для 64 бит делается аналогичным образом.
Прикрепленные файлы
CRC32_D8.v ( 3.34 килобайт )
Кол-во скачиваний: 174
|
|
|
|
|
Oct 3 2011, 09:45
|

Местный
  
Группа: Свой
Сообщений: 314
Регистрация: 13-07-06
Из: Москва
Пользователь №: 18 797

|
Цитата(BSACPLD @ Oct 3 2011, 09:14)  Вот генератор Verilog/VHDL кода для расчёта CRC: Я им раньше и пользовался, когда данные шли по байтно или по словно. А вот когда на вход поступает 8-мь байт, то для того чтобы обработать последнее, неполное слово пакета приходитсясильно извращаться, чтобы по частоте всё поместилось. А у Вас с Альтеровской коркой тоже не получилась, или просто не удобно пользоваться было?
|
|
|
|
|
Oct 3 2011, 10:58
|
Местный
  
Группа: Свой
Сообщений: 371
Регистрация: 24-07-05
Из: Москва
Пользователь №: 7 056

|
Цитата(DuHast @ Oct 3 2011, 13:45)  Я им раньше и пользовался, когда данные шли по байтно или по словно. А вот когда на вход поступает 8-мь байт, то для того чтобы обработать последнее, неполное слово пакета приходитсясильно извращаться, чтобы по частоте всё поместилось.
А у Вас с Альтеровской коркой тоже не получилась, или просто не удобно пользоваться было? Не получилось нормально настроить.
|
|
|
|
|
Oct 4 2011, 09:49
|
Частый гость
 
Группа: Свой
Сообщений: 114
Регистрация: 14-08-11
Из: Андорра
Пользователь №: 66 720

|
Цитата(DuHast @ Oct 3 2011, 07:59)  Использую эту корку в режиме CRC check, на вход подаю Ethernet пакеты, на выходе сигнал bad CRC всегда '1'. Вот это читали? http://www.google.com.ua/url?sa=t&sour...6RcemKQPLEutGxQУ себя не смог найти старые исходники, но вроде получалось все нормально настрить.
|
|
|
|
|
Oct 4 2011, 10:25
|
Частый гость
 
Группа: Свой
Сообщений: 114
Регистрация: 14-08-11
Из: Андорра
Пользователь №: 66 720

|
Цитата(DuHast @ Oct 4 2011, 13:00)  Читал. Я более новый модуль использую, он от этого отличается. Так может стоит тогда его указать?
|
|
|
|
|
Oct 4 2011, 11:06
|

Местный
  
Группа: Свой
Сообщений: 314
Регистрация: 13-07-06
Из: Москва
Пользователь №: 18 797

|
Цитата(imperman @ Oct 4 2011, 14:25)  Так может стоит тогда его указать?  CRC compiler v.11 Цитата(sazh @ Oct 4 2011, 14:25)  Достаточно, чтобы самому и генератор и чеккер слепить Я уже писал выше по этому поводу - проблема в ширине шины, возни много. Мне этот модуль, вобщемно-то, уже особо не нужен, у меня в схеме была возможность перейти от 64-х разрядной шине к 16-ти, а там уже использую свой модуль. Но, чисто из спортивного интереса, хочется разобраться именно с Алтеровским модулем/
|
|
|
|
|
Oct 7 2011, 07:17
|
Частый гость
 
Группа: Участник
Сообщений: 125
Регистрация: 9-10-05
Из: С.-Петербург
Пользователь №: 9 418

|
Цитата(DuHast @ Oct 6 2011, 15:29)  Может быть начальное заполнение CRC для Ethernet должно быть не FFFF? Если имеется в виду общая CRC по пакету, то таки да - не FFFF, а FFFFFFFF. Если серьезно, могу посоветовать погонять тестовую последовательность через корку и через вот это. В калькуляторе по ссылке поиграйте параметрами "Final XOR value" (все единицы или все нули), reverse data bytes, reverse CRC result before Final XOR. Когда добьетесь правильного результата, поймете, что надо допилить в альтеровской корке, вернее во входных/выходных данных. P.S.: данные в шестнадцатиричном виде вводятся в калькуляторе через символ %, например 0x01020304 следует вводить как %01%02%03%04
|
|
|
|
|
Oct 7 2011, 13:01
|

Местный
  
Группа: Свой
Сообщений: 314
Регистрация: 13-07-06
Из: Москва
Пользователь №: 18 797

|
Цитата(AndrewS6 @ Oct 7 2011, 11:17)  Если имеется в виду общая CRC по пакету, то таки да - не FFFF, а FFFFFFFF. Если серьезно, могу посоветовать погонять тестовую последовательность через корку и через вот это. В калькуляторе по ссылке поиграйте параметрами "Final XOR value" (все единицы или все нули), reverse data bytes, reverse CRC result before Final XOR. Когда добьетесь правильного результата, поймете, что надо допилить в альтеровской корке, вернее во входных/выходных данных. P.S.: данные в шестнадцатиричном виде вводятся в калькуляторе через символ %, например 0x01020304 следует вводить как %01%02%03%04 Спасибо за ссылку, както видел этот сайт, а потом не смог найти. Думаю проблема в том, что при подсчёте CRC в Ehternete накладывается Final XOR value, а в альтеровском модуле такого параметра нет, поэтому его надо немного доработать перед использованием.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|