Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ALTERA CRC MegaCore
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
DuHast
Пытался сегодня использовать этот Альтеровский IP модуль для проверки правельности принемаемых Ethernet пакетов. Не получилось. Думаю что параметры не правильно выставляю. Если кто-то использовал этот модуль, поделитесь опытом.
У меня данные подаются 64 битым словом. Младший бит первого слова соответствует LSB первого байта Ethernet пакета.
Заранее спасибо.
imperman
В чем конкретно проблема? Какая ошибка?
DuHast
Цитата(imperman @ Oct 2 2011, 22:42) *
В чем конкретно проблема? Какая ошибка?

Использую эту корку в режиме CRC check, на вход подаю Ethernet пакеты, на выходе сигнал bad CRC всегда '1'.
BSACPLD
Вот генератор Verilog/VHDL кода для расчёта CRC:
http://www.easics.be/webtools/crctool
Я сначала тоже пытался использовать Альтеровский CRC, но оказалось проще воспользоваться этим генератором.
Только не забудьте проинвертировать все биты и сделать битреверс внутри каждого байта (номер RFC, где об этом написано, к сожалению не помню).
Во вложении пример для 8 бит входных данных. Для 64 бит делается аналогичным образом.
DuHast
Цитата(BSACPLD @ Oct 3 2011, 09:14) *
Вот генератор Verilog/VHDL кода для расчёта CRC:

Я им раньше и пользовался, когда данные шли по байтно или по словно. А вот когда на вход поступает 8-мь байт, то для того чтобы обработать последнее, неполное слово пакета приходитсясильно извращаться, чтобы по частоте всё поместилось.

А у Вас с Альтеровской коркой тоже не получилась, или просто не удобно пользоваться было?
BSACPLD
Цитата(DuHast @ Oct 3 2011, 13:45) *
Я им раньше и пользовался, когда данные шли по байтно или по словно. А вот когда на вход поступает 8-мь байт, то для того чтобы обработать последнее, неполное слово пакета приходитсясильно извращаться, чтобы по частоте всё поместилось.

А у Вас с Альтеровской коркой тоже не получилась, или просто не удобно пользоваться было?

Не получилось нормально настроить.
imperman
Цитата(DuHast @ Oct 3 2011, 07:59) *
Использую эту корку в режиме CRC check, на вход подаю Ethernet пакеты, на выходе сигнал bad CRC всегда '1'.


Вот это читали?
http://www.google.com.ua/url?sa=t&sour...6RcemKQPLEutGxQ

У себя не смог найти старые исходники, но вроде получалось все нормально настрить.
DuHast
Цитата(imperman @ Oct 4 2011, 13:49) *
Вот это читали?

У себя не смог найти старые исходники, но вроде получалось все нормально настрить.

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


Можно скачать xapp209.zip от xilinx.
Достаточно, чтобы самому и генератор и чеккер слепить с его волшебным словом 32'hc704dd7b
imperman
Цитата(DuHast @ Oct 4 2011, 13:00) *
Читал. Я более новый модуль использую, он от этого отличается.


Так может стоит тогда его указать? sm.gif
DuHast
Цитата(imperman @ Oct 4 2011, 14:25) *
Так может стоит тогда его указать? sm.gif

CRC compiler v.11

Цитата(sazh @ Oct 4 2011, 14:25) *
Достаточно, чтобы самому и генератор и чеккер слепить

Я уже писал выше по этому поводу - проблема в ширине шины, возни много. Мне этот модуль, вобщемно-то, уже особо не нужен, у меня в схеме была возможность перейти от 64-х разрядной шине к 16-ти, а там уже использую свой модуль. Но, чисто из спортивного интереса, хочется разобраться именно с Алтеровским модулем/
DuHast
Может быть начальное заполнение CRC для Ethernet должно быть не FFFF?
AndrewS6
Цитата(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

DuHast
Цитата(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, а в альтеровском модуле такого параметра нет, поэтому его надо немного доработать перед использованием.
doom13
Приветствую.
Может кто знает куда девался CRC Compiler в Quartus II v14?
des00
Цитата(doom13 @ Apr 27 2015, 19:00) *
Приветствую.
Может кто знает куда девался CRC Compiler в Quartus II v14?

зная полином любая CRC пишется за 5-10минут wink.gif
iosifk
Цитата(DuHast @ Oct 4 2011, 14:06) *
CRC compiler v.11


Я уже писал выше по этому поводу - проблема в ширине шины, возни много. Мне этот модуль, вобщемно-то, уже особо не нужен, у меня в схеме была возможность перейти от 64-х разрядной шине к 16-ти, а там уже использую свой модуль. Но, чисто из спортивного интереса, хочется разобраться именно с Алтеровским модулем/


Я помню, что очень давно имел дело с Альтеровским CRC. Вот только тогда я его модифицировал в 4-х битовый вариант и загонял в него данные тетрадами прямо из трансивера... При этом проблема с "шириной" снимается...
Stewart Little
Цитата(doom13 @ Apr 27 2015, 14:00) *
Может кто знает куда девался CRC Compiler в Quartus II v14?

Я знаю sm.gif
Altera прекратила поддержку этого IP-ядра (как и ряда еще некоторых IP-ядер - 8b10b, например).
См. Product Discontinuance Notification PDN1304

Вместо IP-CRC можно воспользоваться примерами из раздела 12 альтеровского Synthesis cookbook

Вот прямая ссылка на архив с исходниками примеров: www.altera.com/literature/manual/cookbook.zip.
doom13
Спасибо.
DuHast
Цитата(doom13 @ Apr 27 2015, 14:00) *
Приветствую.
Может кто знает куда девался CRC Compiler в Quartus II v14?

Исчез ещё раньше, в 12 или 13 версии. На сайте Альеры написано, что поддержка этого продукта им экономически невыгодна.
Приходится держать на компе 11-ю версию Квартуса.
krux
я-таки прошу прощения, а зачем?

есть же вот:
http://www.easics.be/webtools/crctool
doom13
Цитата(DuHast @ Apr 27 2015, 19:41) *
Исчез ещё раньше, в 12 или 13 версии. На сайте Альеры написано, что поддержка этого продукта им экономически невыгодна.
Приходится держать на компе 11-ю версию Квартуса.

В Q13 эта корка ещё есть.


Цитата(krux @ Apr 27 2015, 20:23) *
я-таки прошу прощения, а зачем?

Хочу переделать пример Альтеры, а там используются crc_generator и crc_checker, вот и обнаружил, что в Q14 этого ядра уже нет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.