|
Постоянно теряется System ID, Задолбало нету сил!!! |
|
|
|
Oct 27 2012, 08:28
|
Частый гость
 
Группа: Участник
Сообщений: 121
Регистрация: 7-04-08
Из: Наро-Фоминск
Пользователь №: 36 543

|
Цитата(Acvarif @ Oct 27 2012, 11:14)  Потратив время на разные перекомпиляции наткнулся на то, что System ID и Timestamp начинает корректно читаться независимо от проекта, независимо от проца и незавсимо от его частоты если в .sdc файл добавить строки типа Код #создаются все выходные клоки PLL derive_pll_clocks -create_base_clocks #вычисляется джиттер derive_clock_uncertainty Глубоко с этим не разбирался. Если кто знает в чем хитрость поясните пожалуйста. Наверное дело не в этом, у меня это всё было описано. Проблема видимо в порче прошивки. Я только, что разрешил Error Detection CRC (это в Device and Pin options). И когда схема сбоит, error-нога показывает, что CRC плохой, если стоит в '0' то всё работает ок, ну это и понятно если прошивка испорчена то тут что угодно может быть. У меня DE0-nano, загружаю или через встроенный usb-blaster или через ecps, сбоит одинаково и по тому и по другому, если когда зашьётся, то всё работает. Обычно пока холодная плата сбоит, прогреется зашивается почти всегда. Описано это в an357, an539, но почему прошивка портится? вот вопрос... Или у них вообще нет CRC контроля при конфигурации устройства?.. Я помню раньше flex10k если неправильно конфиг запихнёшь, то она вообще не работает...
Сообщение отредактировал gridinp - Oct 27 2012, 08:48
|
|
|
|
|
Oct 27 2012, 10:45
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(gridinp @ Oct 27 2012, 11:28)  Наверное дело не в этом, у меня это всё было описано. Проблема видимо в порче прошивки. Я только, что разрешил Error Detection CRC (это в Device and Pin options). И когда схема сбоит, error-нога показывает, что CRC плохой, если стоит в '0' то всё работает ок, ну это и понятно если прошивка испорчена то тут что угодно может быть. У меня DE0-nano, загружаю или через встроенный usb-blaster или через ecps, сбоит одинаково и по тому и по другому, если когда зашьётся, то всё работает. Обычно пока холодная плата сбоит, прогреется зашивается почти всегда. Описано это в an357, an539, но почему прошивка портится? вот вопрос... Или у них вообще нет CRC контроля при конфигурации устройства?.. Я помню раньше flex10k если неправильно конфиг запихнёшь, то она вообще не работает... Спасибо за информацию. Я тоже борюсь с DE0-nano. На работе стоит DE0 - работает гораздо надежнее. Правда там использую Q90. С проблемой System ID и Timestamp столкнулся когда запустил Q110. Если-бы в Q90 был Cyclon 4 думаю было-бы проще. Программа которая исправно работает на DE0, в Nano работает с кучей странностей при одной и той-же конфигурации системы. Не понятно, то-ли компилятор Q110 (Эклипс) совсем не то комплит, то-ли весь Q110 глючит. Например, простая функция передачи по Ethernet типа eth_ocm_raw_send(ethmass, sizeof(ethmass)); при размере массива ethmass 1168 байт в DE0 посылает то, что прописано, а DE0 Nano посылает 1164 байта. Чудеса. ..
|
|
|
|
|
Oct 27 2012, 12:45
|
Частый гость
 
Группа: Участник
Сообщений: 121
Регистрация: 7-04-08
Из: Наро-Фоминск
Пользователь №: 36 543

|
Цитата(Acvarif @ Oct 27 2012, 14:45)  Спасибо за информацию. Я тоже борюсь с DE0-nano. На работе стоит DE0 - работает гораздо надежнее. Правда там использую Q90. С проблемой System ID и Timestamp столкнулся когда запустил Q110. Если-бы в Q90 был Cyclon 4 думаю было-бы проще. Программа которая исправно работает на DE0, в Nano работает с кучей странностей при одной и той-же конфигурации системы. Не понятно, то-ли компилятор Q110 (Эклипс) совсем не то комплит, то-ли весь Q110 глючит. Например, простая функция передачи по Ethernet типа eth_ocm_raw_send(ethmass, sizeof(ethmass)); при размере массива ethmass 1168 байт в DE0 посылает то, что прописано, а DE0 Nano посылает 1164 байта. Чудеса. .. Да я такие ошибки тоже вижу, при этом процессор на первый взгляд работает, а CRC контроль показывает ошибку. Это легко проверить, просто поставить галочку "Error Detection CRC "и осциллограф на JP3-17. В общем всё это очень грустно, получается, что сигналу CONF_DONE нельзя верить, а чтобы убедиться в правильной конфигурации надо потратить 10% ёмкости FPGA на самодиагностику.
|
|
|
|
|
Oct 27 2012, 14:24
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(gridinp @ Oct 27 2012, 15:45)  Да я такие ошибки тоже вижу, при этом процессор на первый взгляд работает, а CRC контроль показывает ошибку. Это легко проверить, просто поставить галочку "Error Detection CRC "и осциллограф на JP3-17.
В общем всё это очень грустно, получается, что сигналу CONF_DONE нельзя верить, а чтобы убедиться в правильной конфигурации надо потратить 10% ёмкости FPGA на самодиагностику. Попробую с CRC. Поскольку Вы Работаете с Nano подскажите пожалуйста как корректно импортировать демо проект "DE0_Nano_SOPC_DEMO" в Eclipse Q11.0. Демка создана с DE0_Nano_Syslib (вроде под Q10.1), а в Q11.0 нужен BSP файл. Иначе не компилится main.c. Не врубаюсь как все перенести без потерь в Q11.0
|
|
|
|
|
Oct 27 2012, 15:21
|
Частый гость
 
Группа: Участник
Сообщений: 121
Регистрация: 7-04-08
Из: Наро-Фоминск
Пользователь №: 36 543

|
Цитата(Acvarif @ Oct 27 2012, 18:24)  Попробую с CRC. Поскольку Вы Работаете с Nano подскажите пожалуйста как корректно импортировать демо проект "DE0_Nano_SOPC_DEMO" в Eclipse Q11.0. Демка создана с DE0_Nano_Syslib (вроде под Q10.1), а в Q11.0 нужен BSP файл. Иначе не компилится main.c. Не врубаюсь как все перенести без потерь в Q11.0 Я эти проекты вообще не собирал, я сразу делал в eclipse из template. Сначала попробовал Counter Binary по алтеровским tutorial. Потом Hello MicroC/OS-II начал переделывать для себя. А из этого проекта я только sopc-файл взял и в Qsys сконвертил
Сообщение отредактировал gridinp - Oct 27 2012, 15:24
|
|
|
|
|
Oct 27 2012, 17:24
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(gridinp @ Oct 27 2012, 18:21)  Я эти проекты вообще не собирал, я сразу делал в eclipse из template. Сначала попробовал Counter Binary по алтеровским tutorial. Потом Hello MicroC/OS-II начал переделывать для себя. А из этого проекта я только sopc-файл взял и в Qsys сконвертил Понял. Если не сложно, подскажите как из SOPC в Qsys конвертить. Мне удалось таки запустить DE0_Nano_SOPC_DEMO в Q11.0 Пришлось заново пересоздать проект в Eclipse. Все зараотало. Обратил внимание, что System ID и Timestamp в проекте стоит устойчиво, во всяком случае после двух изменений. Там имеются компоненты Clock Crossing Bridge Может стоит их использовать...
|
|
|
|
|
Oct 27 2012, 17:36
|
Частый гость
 
Группа: Участник
Сообщений: 121
Регистрация: 7-04-08
Из: Наро-Фоминск
Пользователь №: 36 543

|
Цитата(Acvarif @ Oct 27 2012, 21:24)  Понял. Если не сложно, подскажите как из SOPC в Qsys конвертить. Мне удалось таки запустить DE0_Nano_SOPC_DEMO в Q11.0 Пришлось заново пересоздать проект в Eclipse. Все зараотало. Обратил внимание, что System ID и Timestamp в проекте стоит устойчиво, во всяком случае после двух изменений. Там имеются компоненты Clock Crossing Bridge Может стоит их использовать... А просто открываем sopc-файл из Qsys он преобразует, а сохраняем уже qsys-файл. Clock Crossing Bridge, как написано в описании облегчает работу avalon, но ошибок из-за их отсутствия не будет, лишь бы не ругался TimeQuest. Всё равно я думаю будет сбоить, у меня сбои плавно нарастали с увеличением проекта, это и понятно что увеличивается вероятность, может попробую сменить epcs64 на epcs16, что-то epcs64 spansion народ не любит... Еще надо попробовать снизить частоту конфига используя CLKUSR И хорошо бы вызвонить резисторы, чтобы перепаять AS FAST на AS STANDART
|
|
|
|
|
Oct 29 2012, 14:29
|
Знающий
   
Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850

|
Цитата(gridinp @ Oct 29 2012, 14:39)  Вылечили мы свою DE0-nano, Vcore плавало 1.5-1.7V вместо 1.2, выкусили REG3 и впаяли свой стабилизатор. Похоже, что было впаяно что другое по ошибке вместо LP38500SD-ADJ Да...уж. На моей Nano перестал теряться ID. По поводу 1.2 В тоже нужно проверить. По ходу возник вопрос, который поставил в тупик. Имеем макет с EP3C25 + EPCS16. Пытаюсь его настроить. Конфигурация в EPCS16 зашивается нормально. А как теперь быть с программой Nios, которая пока работает во внутренней памяти (в дальнейшем должна работать в SDRAM). Куда и как ее загружать. Я по наивности считал, что все можно поместить в EPCS16. Если это не так, подскажите пожалуйста как?
|
|
|
|
|
Oct 29 2012, 19:15
|
Частый гость
 
Группа: Участник
Сообщений: 121
Регистрация: 7-04-08
Из: Наро-Фоминск
Пользователь №: 36 543

|
Цитата(Acvarif @ Oct 29 2012, 18:29)  Да...уж. На моей Nano перестал теряться ID. По поводу 1.2 В тоже нужно проверить. По ходу возник вопрос, который поставил в тупик. Имеем макет с EP3C25 + EPCS16. Пытаюсь его настроить. Конфигурация в EPCS16 зашивается нормально. А как теперь быть с программой Nios, которая пока работает во внутренней памяти (в дальнейшем должна работать в SDRAM). Куда и как ее загружать. Я по наивности считал, что все можно поместить в EPCS16. Если это не так, подскажите пожалуйста как? Надо у процессора поставить Reset vector memory: имя_epcs_контроллера.epcs_control_port. Начальный загрузчик делает Quartus и помещает его в адреса EPCS контроллера. После компиляции сконфигурить через бластер fpga чтобы совпадал system Id с BSP и далее нужно зашить в ecps с помощью Flash Programmer сразу и SOF и ELF. Flash Programmer шьёт как я понимаю через JTAG_UART->JTAG_CPU->ECPS_контроллер. *.jic - jtag indirect файл в этом случае можно не делать. Это я описал случай, когда бластер подключается к JTAG. Да ещё процессор должен к ECPS контроллеру подключаться по обоим шинам и данных и инструкций, так как загрузчик прямо с него выполняется.
Сообщение отредактировал gridinp - Oct 29 2012, 19:23
|
|
|
|
|
Dec 10 2016, 17:21
|
Участник

Группа: Участник
Сообщений: 45
Регистрация: 18-04-14
Из: Екатеринбург
Пользователь №: 81 446

|
Столкнулся с аналогичной проблемой. Отладочная плата SoCKit. Днем ранее загрузил Quartus, открыл в нем проект SoCKit_DDR3_Nios_Test с диска к плате. Загрузил, в ПЛИС, все заработало. Начал его переделывать, удалил on-chip, перекинул все на DDR3, добавил sgdma, fifo, rgb конвертер vsync generator, все что нужно для рисования Ниосом на экране. В eclipse создал новый проект HelloWorld, запустил, все заработало, на мониторе тоже все хорошо, видно как запустилась видиоподсистема. Сохранил его как шаблон для дальнейших экспериментов. Сегодня продолжил работу. Примерно в 12:15 приступил к сборке проекта в eclipse. Скопировал файлы от другого тестового проекта в свой проект. Повозился немного с кэшем, плюнул и заменил Nios II gen 2 на Nios 2 Classic, уменьшил на один разряд адрес DDR3, в итоге получил 512 МБ вместо 1024 МБ. Далее все собралось и к 17:45 я увидел ожидаемое изображение на экране. Немного поигрался с кодом. После все еще раз собрал, проверил и запакавал архиватором с пометкой ****_v2. Продолжил совершенствовать проект, стояла задача задействовать в контроллере DDR3 много портовый режим, залез в QSYS настроил, тут же вылезли какие то странные ошибки которые исчезли когда я удалил оба мастера (Nios и SGDMA) и снова их добавил. Все система сгенирировалась, далее собрал проект в Quartus и запустил Eclipse попытался подцепить существующий проект, но он даже BSP не перегенирировал. Создал проект с нуля. Закинул в него файлы *.c и *.h, скомпилировал и далее RunAs, eclipse выдал окно с ошибкой по SYSID, нажатия refresh ни чего не дало, установил заветные галочки, запустил, вылетело ожидаемое окно с ошибкой. Как я ни колдовал ни чего не помогает. Создавал HelloWorld, пытался его грузить все равно вылетает. Ну думаю контроллер памяти не хочет работать в много портовом режиме, пере собрал в QSYS в одно портовый режим как было раньше, все скомпилировал, в eclipse по новой создал HelloWorld, скомпилировал и далее RunAs и все тот же вылет. Удалил проект полностью, восстановил из архива. Прошил все заработало. Начал его менять, снова те же проблемы. И вот уже 20:00 я удаляю опять перепаханый проект, восстанавливаю из архива, загружаю в ПЛИС и все ни чего не работает, вылетает все время ошибка по SYSID. Я уже и eclipse и quartus и комп перегружал ни чего не помогает. Что могло произойти, использую Quartus 15.1.0 Build 185, Eclipse Kepler тот который с ним в комплекте устанавливается.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|