Перейти к содержанию
    

Онлайновый tool для генерации CRC,Scrambler,LFSR Counter на Verilog/VHDL

Для полной картины выдаю тестбенч с модулем CRC16

 

Для такого полинома может кто поделится magic number (прогон 123456789)?

CRC16_A001.VHD

tbanch.vhd

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для полной картины выдаю тестбенч с модулем CRC16

 

Попробовал я посмотреть вашу функцию подсчета crc...параллельного подсчета...

BgXng4O7.jpg

У меня получилось, что алгоритм подсчета у вас отличается от того алгоритма, для которого посчитана функция... т.е. для Modbus используют полином нормальный, а у вас в тесте - реверсированый.

 

изучаем мат. часть. http://ru.wikipedia.org/wiki/%D0%A6%D0%B8%...%BA%D0%BE%D0%B4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Огромное спасибо!

вашу функцию ? Она не моя, а полученная в онлайн-генерации.

На самом деле сомнения у меня по поводу тулза. Буду разбираться.... Никуда не денусь. (Полином А001?)

 

Таблица кодов из сишного текста тут совсем не к месту. Вырвано из контекста... Решит проблему образец magic для прогона модели. К чему стремиться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Друзья давайте не путать полиномы.

 

Для случая таблицы (пост №15)

- CRC poly : $8005 CRC init: $0000 reverse data before =1 reverse data after =1 Xorout =0

 

Для случая тестбенч (пост №17)

- CRC poly : $A001 CRC init: $0000 reverse data before =0 reverse data after =0 Xorout =0

 

Подсчет CRC имеет как минимум 5 степеней свободы, из-за чего собственно и путаница.

Если есть сомнения в конкретных значениях - лучше сперва восстановить параметры CRC:

1. Полином

2. Инициация

3. Реверс до

4. Реверс после

5. XOR после

а затем проверять вычисления своих процедур.

Для проверки привожу пример калькулятора для 2-го слова таблицы из поста №15

post-57986-1324045261_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подсчет CRC имеет как минимум 5 степеней свободы, из-за чего собственно и путаница.

Если есть сомнения в конкретных значениях - лучше сперва восстановить параметры CRC:

1. Полином

2. Инициация

3. Реверс до

4. Реверс после

5. XOR после

а затем проверять вычисления своих процедур.

Для проверки привожу пример калькулятора для 2-го слова таблицы из поста №15

 

О! это уже стоящее для magic code!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Написал тестбенч для генератора crc32 (VHDL) с сайта. Однако считает неправильно. Все возможные манипуляции с порядком следования\инвертированием входных байтов, содержимым регистра lfsr_c ситуацию не исправили. Входной поток -- кадр Ethernet с рассчитанной FCS взял отсюда:

http://www.edaboard.com/thread120700.html

 

Проверяю регистр lfsr_c после прихода каждого байта. Например если для x"00" в регистре x"4e08bfb4", что после инвертирования и реверса совпадает с результатом полученным онлайн калькулятором 0xD202EF8D

http://www.lammertbies.nl/comm/info/crc-calculation.html

 

То после прихода второго байта x"0a", текущая контрольная сумма слова x"000a", с результатом онлайн калькулятора расходится: x"00b7647d" а должно быть x"7820сf7a".

 

Есть рабочий модуль на verilog. Но переделывать его для vhdl желание нет, к тому же хочеться убедиться в работоспособности модуля с сайта OutputLogic.Com.

 

Ошибка найдена! Некорректно считывал данные с текстового файла в тестбенче. Очередной раз убедился насколько проще моделировать на verilog!

Изменено пользователем farbius

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...