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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Чтение CRC внутри ПЛИС
Вовка_Бызов
сообщение Jan 21 2013, 12:20
Сообщение #16


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

Группа: Свой
Сообщений: 182
Регистрация: 26-11-07
Из: Москва, Зеленоград
Пользователь №: 32 692



Квартус ругается

Error (14277): WYSIWYG CRC block or remote update block primitive "CRC_CTRL" must use CRCERROR port

Чего он от меня хочет? Вызов атома у меня выглядит вот так:

CRC_CTRL: cycloneiii_crcblock generic map (oscillator_divider=>2) port map (clk=>CLK, crcerror=>crc_error, ldsrc=>'0', shiftnld=>not GetIt, regout=>bit_crc32_value);

Мой сигнал crc_error никуда не заведен. Может - он ожидает от меня подключения ручками к соответствующему предопределенному пину? Но я в настройках указал битик использовать CRC-контроль.. До использования атома проблем (и ошибок) не было..

И еще - походу вопрос - нигде не нашел указания, с какого разряда начинается сдвиг. Т.е. regout - это отвод от младшего или от старшего разряда внутреннего сдвигового регистра?
Go to the top of the page
 
+Quote Post
jks
сообщение Jan 21 2013, 14:45
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084



Цитата(Вовка_Бызов @ Jan 21 2013, 16:20) *
Квартус ругается

Error (14277): WYSIWYG CRC block or remote update block primitive "CRC_CTRL" must use CRCERROR port

Чего он от меня хочет? Вызов атома у меня выглядит вот так:

CRC_CTRL: cycloneiii_crcblock generic map (oscillator_divider=>2) port map (clk=>CLK, crcerror=>crc_error, ldsrc=>'0', shiftnld=>not GetIt, regout=>bit_crc32_value);

Мой сигнал crc_error никуда не заведен. Может - он ожидает от меня подключения ручками к соответствующему предопределенному пину? Но я в настройках указал битик использовать CRC-контроль.. До использования атома проблем (и ошибок) не было..

И еще - походу вопрос - нигде не нашел указания, с какого разряда начинается сдвиг. Т.е. regout - это отвод от младшего или от старшего разряда внутреннего сдвигового регистра?


CRCERROR надо подключить на внутреннюю логику или на внешний пин. Выход ДОЛЖЕН использоваться. Вариант с LCELL не прокатит.
Стандартный пин CRC_ERROR в любом случае будет использоваться.

CRC передается MSB first.
Регистр сигнатуры можно не читать, если ошибок не было после конфигурации то он НУЛЕВОЙ.
Go to the top of the page
 
+Quote Post
Вовка_Бызов
сообщение Jan 22 2013, 04:42
Сообщение #18


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

Группа: Свой
Сообщений: 182
Регистрация: 26-11-07
Из: Москва, Зеленоград
Пользователь №: 32 692



Цитата(jks @ Jan 21 2013, 18:45) *
CRCERROR надо подключить на внутреннюю логику или на внешний пин. Выход ДОЛЖЕН использоваться. Вариант с LCELL не прокатит.
Стандартный пин CRC_ERROR в любом случае будет использоваться.

CRC передается MSB first.
Регистр сигнатуры можно не читать, если ошибок не было после конфигурации то он НУЛЕВОЙ.

Спасибо. Т.е. я могу сделать фиктивную обработку - и этого будет достаточно.. Что бы такое придумать wink.gif

На счет чтения по сигналу ошибки - мне как раз нужно безо всякой ошибки прочесть CRC32 (один раз вначале), посчитанную компилятором - как CRC версии прошивки. Она будет доступна для чтения извне и прописываться в ТУ на изделие.. Требование заказчика по контролю за сменой прошивки.
Go to the top of the page
 
+Quote Post
ermilovd
сообщение Feb 7 2013, 09:55
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 22-01-09
Из: Пермь
Пользователь №: 43 767



Здравствуйте!
Возможно, я ошибаюсь, но. в описании (правда, на Cyclone4) написано о проверках на СRC текущего рабочего проекта!
Некоторое время назад была статья о том, что информация стиралась внутри ПЛИС под действием внешних факторов (солнечная радиация). А так как ПЛИС семейств CYCLONE загружаемая - на основе RAM. Появилась требования о проверке правильности проекта при его нормальной работе. При этом считывается "записанная" информация из ячеек ПЛИС и контролируется CRC записанная с той же ПЗУ, ранее при загрузке. При не совпадении (ветром надуло) выдается ошибка.
Если я не прав, поправьте меня! А вообще сейчас пытаюсь найти эту функцию для AHDL, пока глухо. Если есть опыт - поделитесь!
Go to the top of the page
 
+Quote Post
wpost
сообщение Feb 9 2013, 13:20
Сообщение #20


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 1-04-10
Из: СПб
Пользователь №: 56 354



я считал CRC при помощи программы для NIOS. как читать EPCS я рассказывал тут http://electronix.ru/forum/index.php?showt...93233&st=15
посчитать CRC далее не составляет труда. Есть маленькое НО... неизвесно место конца прошивки. я считал CRC всей EPCS. плюс я считал по собственному полиному.
Вывод: получить CRC не трудно, но сделать так чтобы она совпадала с той что выдает байтбластер немного сложнее. Мы вышли из ситуации записью в спецификацию двух CRC. Заказчика это устроило.
Еще одно маленькое но... EPCS не самая быстрая микросхема. следовательно предложенный мною метод расчета CRC требует некоторого времени. на С3 c EPCS64 это примерно 20-30 секунд.
Go to the top of the page
 
+Quote Post
jks
сообщение Feb 11 2013, 08:25
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 249
Регистрация: 3-04-11
Из: .
Пользователь №: 64 084



Цитата(wpost @ Feb 9 2013, 17:20) *
я считал CRC при помощи программы для NIOS. как читать EPCS я рассказывал тут http://electronix.ru/forum/index.php?showt...93233&st=15
посчитать CRC далее не составляет труда. Есть маленькое НО... неизвесно место конца прошивки. я считал CRC всей EPCS. плюс я считал по собственному полиному.
Вывод: получить CRC не трудно, но сделать так чтобы она совпадала с той что выдает байтбластер немного сложнее. Мы вышли из ситуации записью в спецификацию двух CRC. Заказчика это устроило.
Еще одно маленькое но... EPCS не самая быстрая микросхема. следовательно предложенный мною метод расчета CRC требует некоторого времени. на С3 c EPCS64 это примерно 20-30 секунд.


CRC которая считается внутри ПЛИС не учитывает конфигурационные биты I/O блоков и биты RAM блоков.
Поэтому даже зная полином получить, то же значение CRC не получится.
Для этого надо знать распределение конфигурационных битов по блокам.
Если CRC нужна для идентификации прошивки, то достаточно прочитать первый блок прошивки и получить CRC из него.
Go to the top of the page
 
+Quote Post
wpost
сообщение Feb 12 2013, 14:05
Сообщение #22


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 1-04-10
Из: СПб
Пользователь №: 56 354



Цитата(jks @ Feb 11 2013, 12:25) *
CRC которая считается внутри ПЛИС не учитывает конфигурационные биты I/O блоков и биты RAM блоков.
Поэтому даже зная полином получить, то же значение CRC не получится.
Для этого надо знать распределение конфигурационных битов по блокам.
Если CRC нужна для идентификации прошивки, то достаточно прочитать первый блок прошивки и получить CRC из него.


Я решал задачу проверки целостности содержимого EPCS.
Go to the top of the page
 
+Quote Post

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

 


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


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