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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Прошивка ПЛИС Cyclone IV с микроконтроллера
Sprite
сообщение Apr 23 2018, 04:21
Сообщение #16


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

Группа: Участник
Сообщений: 151
Регистрация: 11-05-08
Пользователь №: 37 414



Цитата(Enthusiast @ Apr 21 2018, 17:00) *
Чтобы однозначно удостовериться в правильной загрузке ПЛИСа обычно в самой прошивке ПЛИС предусматривают отправку сообщения с ПЛИС в микроконтроллер в любом виде по любому выводу. Если после загрузки ПЛИСа микроконтроллер получает это сообщение, значит загрузка ПЛИСа прошла успешно.
Я бы отправлял эти сообщения время от времени во время работы устройства, чтобы удостовериться, что прошивка не сбилась в ходе работы и отрабатывает верно. В противном случае просто перезагружаем ПЛИС прошивкой заново. Всяко надёжнее будет, чем просто грузить ПЛИС с ПЗУшки.

Спасибо, учту! Связь МК с ПЛИС планирую осуществлять по SPI.
Go to the top of the page
 
+Quote Post
rolin
сообщение Apr 25 2018, 03:01
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 31-01-09
Пользователь №: 44 224



Всем привет.
Занимаюсь вот чем-то подобным. Пишу бутлоадер для устройства.
Программа на компьютере открывает rbf файл и шлет его кусками по 256 байт на устройство, плисина заливает эти куски постранично во флешку EPCS64.
Перед записью производится стирание нужного участка флехи посекторно, участок заведомо больше rbf файла.
После записи каждой страницы производится чтение ее из флехии и сравнение с буфером, ошибок нет, пишется правильно.
Пишу по нулевому адресу.

Проблема в том, что после перезагрузки плисина не грузится. Уже не знаю что делать, ошибок не вижу. Байты перед записью во флеху переворачиваю задом-наперед.

Подскажите что-нибудь.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 25 2018, 03:45
Сообщение #18


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 256
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Нужно сигналы CONFIG, STATUS, CONF_DONE использовать для инициализации загрузки и контроля. Собственно, больше никаких подтверждений не нужно - это ответ и на предыдущий вопрос в теме.
И, повторю для невнимательных, я ничего не переворачиваю задом наперед. Просто посылаю байты с нужного конца.
Go to the top of the page
 
+Quote Post
rolin
сообщение Apr 25 2018, 16:41
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 31-01-09
Пользователь №: 44 224



Цитата(ViKo @ Apr 25 2018, 07:45) *
И, повторю для невнимательных, я ничего не переворачиваю задом наперед. Просто посылаю байты с нужного конца.

И чем это отличается одно от другого ? Если я работаю с массивом 256*8 бит, то проще отобразить биты данных еще на моменте формирования буфера, чем потом сушить мозг над адрессацией.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 25 2018, 17:22
Сообщение #20


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 256
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(rolin @ Apr 25 2018, 19:41) *
И чем это отличается одно от другого ? Если я работаю с массивом 256*8 бит, то проще отобразить биты данных еще на моменте формирования буфера, чем потом сушить мозг над адрессацией.

Тем, что процессор выполняет меньше команд.
Go to the top of the page
 
+Quote Post
rolin
сообщение Apr 25 2018, 18:04
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 31-01-09
Пользователь №: 44 224



Цитата(ViKo @ Apr 25 2018, 21:22) *
Тем, что процессор выполняет меньше команд.

У нас немного разные сиcтемы. У меня нет процессора и все делает плисина. В Верилоге обратить байт этo просто byte <= byte[0+:7]
Rbf ,шьется во штатную флеш из которой она же потом грузится в режиме AS.

Сообщение отредактировал rolin - Apr 25 2018, 18:04
Go to the top of the page
 
+Quote Post
rolin
сообщение Apr 28 2018, 20:12
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 31-01-09
Пользователь №: 44 224



Разобрался, все работает.
Оказалось, что в Верилоге byte <= byte[0+:7] не реверсирует биты, несмотря на кажущуюся логичность записи.

А вообще - берем rbf файл, пишем его по нужному адресу во флешку не забыв реверсировать биты в каждом байте и вперед, все работает.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 29 2018, 04:25
Сообщение #23


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 256
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Браво!
Go to the top of the page
 
+Quote Post
rolin
сообщение May 2 2018, 05:27
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 31-01-09
Пользователь №: 44 224



Исходники проекта бутлоадера https://github.com/Dfinitski/Odyssey-2_2017...ssey_BL_2.0.zip
И программа на Питоне для ПК для работы с ним https://github.com/Dfinitski/Odyssey-2_2017...tLoader_2.0.pyw

Бутлоадер реализует 4 слота для хранения прошивок, один из них используется для загрузки самого бутлоадера ( по нулевому адресу).

Написано для специфичного девайса, коряво, но работает. Модуль Remote не обновлять, его предупреждение игнорировать, иначе не будет работать, не знаю почему.

Также может представлять интерес Gigabit Ethernet trough RGMII стек с ARP, ICMP, UDP уровнями.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 2 2018, 06:07
Сообщение #25


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 256
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(rolin @ Apr 28 2018, 23:12) *
Оказалось, что в Верилоге byte <= byte[0+:7] не реверсирует биты, несмотря на кажущуюся логичность записи.

А просто выбрать биты Y = X[0:7]?
Go to the top of the page
 
+Quote Post
rolin
сообщение May 2 2018, 12:03
Сообщение #26


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 31-01-09
Пользователь №: 44 224



Цитата(ViKo @ May 2 2018, 10:07) *
А просто выбрать биты Y = X[0:7]?

Ну так это то же самое. Будет выбран указанный диапазон линий, старший к старшему, младший к младшему, без реверса.
Видимо сама структура Плис не позволяет так вольно обходиться с адрессацией.
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 2 2018, 12:33
Сообщение #27


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 256
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(rolin @ May 2 2018, 15:03) *
Ну так это то же самое. Будет выбран указанный диапазон линий, старший к старшему, младший к младшему, без реверса.
Видимо сама структура Плис не позволяет так вольно обходиться с адрессацией.

Обычно биты нумеруются так [MSB:LSB]. И, если заметили, я присвоил игреку икс. Т.е., напишите так, конкретно, и биты прицепятся, как нужно.
Y[7:0] = X[0:7].
Это же просто "провода".
Go to the top of the page
 
+Quote Post
rolin
сообщение May 2 2018, 15:12
Сообщение #28


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 31-01-09
Пользователь №: 44 224



Цитата(ViKo @ May 2 2018, 16:33) *
Обычно биты нумеруются так [MSB:LSB]. И, если заметили, я присвоил игреку икс. Т.е., напишите так, конкретно, и биты прицепятся, как нужно.
Y[7:0] = X[0:7].
Это же просто "провода".

Увы, нет. В Верилоге идентично, что 7:0 что 0:7. Вы просто указываете необходимый диапазон адресов в удобной для вас форме, но реверса не будет. Эта оказия часто обсуждается, можете по стековерфлоу пройтись. Говорят, что в SystemVerilog есть спецкоманда компилятора для реверса адрессации, но я не особо специалист в этих вещах, просто хобби.
Go to the top of the page
 
+Quote Post
Realking
сообщение May 3 2018, 04:49
Сообщение #29


Местный
***

Группа: Свой
Сообщений: 494
Регистрация: 4-10-04
Из: Нижний Новгород
Пользователь №: 771



Цитата(rolin @ May 2 2018, 18:12) *
В Верилоге идентично, что 7:0 что 0:7.


а можно об этом поподробнее, где это написано????

я просто хочу сказать, что это не идентично

в 1ом случае старший бит имеет индекс 7, во 2ом - 0


--------------------
Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается.
Go to the top of the page
 
+Quote Post
dvladim
сообщение May 3 2018, 16:51
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



Цитата(rolin @ May 2 2018, 18:12) *
Увы, нет. В Верилоге идентично, что 7:0 что 0:7.

Бред сивой кобылы.
Ну не нравится, напишите так: Y[7:0] = {X[0], X[1], X[2], X[3], X[4], X[5], X[6], X[7]}. Провода, они и есть провода.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 24th May 2018 - 17:12
Рейтинг@Mail.ru


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