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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Отличие результатов работы при загрузке по JTAG и из конф. микросхемы
Ethereal
сообщение Jun 2 2010, 12:09
Сообщение #1


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

Группа: Свой
Сообщений: 114
Регистрация: 7-05-08
Из: РФ, Москва
Пользователь №: 37 354



Здравствуйте. Столкнулся тут с такой ситуацией в тестовом проекте.
Микросхема Stratix II. Проект с преобразованием Фурье от данных с АЦП. Результаты выдаются из ПЛИС наружу.
При загрузке прошивки в ПЛИС через программатор на выходе получается один результат обработки.
Если сделать pof (fast passive parallel + сжатие), то результаты после перезагрузки получаются другими. Похожими, но отличающимися в достаточной степени, чтобы это нельзя было списать на шумы или случайность процесса.
Перед ПЛИС стоят АЦП и усилитель.

С чем это может быть связано?


--------------------
SystemVerilog - язык, заточенный Альтерой под свои кристаллы теми же приемами использования примитивов, что и AHDL. ©
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jun 2 2010, 12:51
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(Ethereal @ Jun 2 2010, 16:09) *
С чем это может быть связано?

Со случайностью процесса. Возьмите прошитую из POF микросхему и сделайте ей verify против sof файла - вы наверняка увидите, что прошивки совпадают.
Go to the top of the page
 
+Quote Post
AndruB
сообщение Jun 2 2010, 17:39
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 61
Регистрация: 31-07-07
Из: Москва
Пользователь №: 29 490



Цитата(Ethereal @ Jun 2 2010, 16:09) *
С чем это может быть связано?


Я иногда забываю вызвать Covert Programming File и перезаписав предыдущий проект ишу почему не работают мои нововедения.


--------------------
Обойденные грабли - недополученный опыт!
Go to the top of the page
 
+Quote Post
x736C
сообщение Jun 2 2010, 19:31
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942



Если не поможет выше написанные рекомендации, прочитайте эту тему.
И, ежели найдете причину вашей неисправности, то сообщите пожалуйста. Потому как в своих несколько схожих причинах я не уверен и так до конца не разобрался.
Go to the top of the page
 
+Quote Post
Ethereal
сообщение Jun 3 2010, 08:24
Сообщение #5


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

Группа: Свой
Сообщений: 114
Регистрация: 7-05-08
Из: РФ, Москва
Пользователь №: 37 354



Цитата(DmitryR @ Jun 2 2010, 16:51) *
Со случайностью процесса. Возьмите прошитую из POF микросхему и сделайте ей verify против sof файла - вы наверняка увидите, что прошивки совпадают.

Стабильное отличие максимума спектра в одном и другом случае не получается списать на случайность. То есть грузим по питанию - получаем A1+-dA. Грузим по усб - получаем A2+-dA. A1 и A2 отличаются намного больше, чем dA.

Цитата(AndruB @ Jun 2 2010, 21:39) *
Я иногда забываю вызвать Covert Programming File и перезаписав предыдущий проект ишу почему не работают мои нововедения.

Нововведения работают, в том и дело.

Цитата(x736C @ Jun 2 2010, 23:31) *
Если не поможет выше написанные рекомендации, прочитайте эту тему.
И, ежели найдете причину вашей неисправности, то сообщите пожалуйста. Потому как в своих несколько схожих причинах я не уверен и так до конца не разобрался.

Да, очень похожая ситуация. Попробую подумать над тем, что Вы делали.


--------------------
SystemVerilog - язык, заточенный Альтерой под свои кристаллы теми же приемами использования примитивов, что и AHDL. ©
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 3 2010, 08:27
Сообщение #6


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(Ethereal @ Jun 3 2010, 03:24) *
Стабильное отличие максимума спектра в одном и другом случае не получается списать на случайность. То есть грузим по питанию - получаем A1+-dA. Грузим по усб - получаем A2+-dA. A1 и A2 отличаются намного больше, чем dA.

алгоритм линейный или итерационный ?


--------------------
Go to the top of the page
 
+Quote Post
Ethereal
сообщение Jun 3 2010, 09:02
Сообщение #7


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

Группа: Свой
Сообщений: 114
Регистрация: 7-05-08
Из: РФ, Москва
Пользователь №: 37 354



Цитата(des00 @ Jun 3 2010, 12:27) *
алгоритм линейный или итерационный ?

Итерационный.
Дополнительно перед преобразованием стоит IP КИХ.
На входе стоит синхронизатор DCFIFO.
Входной клок синхонизатора берется с PLL2 в режиме Compensated input. На PLL2 подается клок от АЦП.
Выходной клок берется с PLL1 в обычном режиме. Им же тактируется весь остальной проект. На вход PLL1 подается клок с внешнего тактового генератора.
Синхронизатор сбрасывается асинхронным сигналом с locked PLL1
PLL1 сбрасывается асинхронным сигналом с locked PLL2.

Upd: У сихнонизатора стоит опция "Add circuit to syncronise asyncronous clear with write clock"

Сообщение отредактировал Ethereal - Jun 3 2010, 09:07


--------------------
SystemVerilog - язык, заточенный Альтерой под свои кристаллы теми же приемами использования примитивов, что и AHDL. ©
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 3 2010, 09:13
Сообщение #8


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



ИМХО ломается логика подачи входных данных на ваше фурье
Цитата(Ethereal @ Jun 3 2010, 03:02) *
На входе стоит синхронизатор DCFIFO.

предположительно ломается в этом месте. Например голова или хвост выборки ломается. Вычисляется просто на раз, два, три. цепляем сигнал тап на вход вашего фурье и смотрим/сравниваем данные. Хотя я бы вытащил с помощью debug порта (у меня есть самодельный, но дать не могу) в комп, загнал данные в матлаб и сравнил с эталоном %) Вроде как у матлаба есть компоненты что бы данные вытаскивать из плисов.


--------------------
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 3 2010, 09:31
Сообщение #9


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(des00 @ Jun 3 2010, 11:13) *
Вроде как у матлаба есть компоненты что бы данные вытаскивать из плисов.


А можно чуть подробней?Откуда эта информация,где посмотреть?
Go to the top of the page
 
+Quote Post
Ethereal
сообщение Jun 3 2010, 09:31
Сообщение #10


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

Группа: Свой
Сообщений: 114
Регистрация: 7-05-08
Из: РФ, Москва
Пользователь №: 37 354



Цитата(des00 @ Jun 3 2010, 13:13) *
предположительно ломается в этом месте.

Проверю STap'ом, как доберусь, хотя тоже думаю, что тут - у меня отдельно стоит ветка, которая ищет максимальный отсчет сигнала на интервале в секунду. Я дополнительно вел учет по этому значению. Для него сохраняется та же зависимость, что и для преобразования.

Думаю, что подтвердится, но если так, то с чем может быть связано? Может быть проблема в ассайнментах на false path?


--------------------
SystemVerilog - язык, заточенный Альтерой под свои кристаллы теми же приемами использования примитивов, что и AHDL. ©
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 3 2010, 09:36
Сообщение #11


Вечный ламер
******

Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453



Цитата(_Anatoliy @ Jun 3 2010, 03:31) *
А можно чуть подробней?Откуда эта информация,где посмотреть?

могу ошибаться но MKS рассказывал мне в аське как он по уарту данные со своего демодулятора в матлаб заливал.

Цитата(Ethereal @ Jun 3 2010, 03:31) *
Думаю, что подтвердится, но если так, то с чем может быть связано? Может быть проблема в ассайнментах на false path?

точно не в этом, у вас же одинаковые прошивки, разные только способы инициализации плис. скорее всего где то ломается начальная инициализация обработки информации. Например КА не в том состоянии, счетчик не туда встал, синхру не так нашли, из-за того что были не в том состоянии например %)

Если бы вы ошиблись в констрейнах у вас бы глючило всё, в том числе при прогреве, охлаждении плис.


--------------------
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 3 2010, 10:00
Сообщение #12


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(des00 @ Jun 3 2010, 11:36) *
могу ошибаться но MKS рассказывал мне в аське как он по уарту данные со своего демодулятора в матлаб заливал.

Он из файла заливал,это немного не то laughing.gif
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Jun 5 2010, 05:09
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



А как сделан ресет всей конструкции?
Go to the top of the page
 
+Quote Post
slawikg
сообщение Jun 5 2010, 06:15
Сообщение #14


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

Группа: Свой
Сообщений: 135
Регистрация: 31-07-06
Пользователь №: 19 224



Цитата(Koluchiy @ Jun 5 2010, 09:09) *
А как сделан ресет всей конструкции?


Немного опоздал, разные условия включения питания. При загрузки с усб, питание уже устаканилось, а во втором случае питание только включается. Наверняка у вас несколько питаний. Лечение уже предложили - хороший сброс.
Go to the top of the page
 
+Quote Post
x736C
сообщение Jun 5 2010, 10:28
Сообщение #15


Профессионал
*****

Группа: Участник
Сообщений: 1 273
Регистрация: 3-03-06
Пользователь №: 14 942



Здравствуйте, slawikg.
Что вы имеете в виду под «хорошим сбросом»?

Если хороший сброс вне ПЛИС, то в моем случае, похожим на случай автора темы, сброс формировался м/с стабилизатора TPS70158PWR. Сигнал сброса принимает высокое значение через 120 мс после того, как питание уже близко к норме (83%-95%).
Если имеете в виду внутреннюю схему сброса, то там синхронизатор, все просто.
Как сделать сброс еще лучше?
Go to the top of the page
 
+Quote Post

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

 


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


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