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

 
 
 
Reply to this topicStart new topic
> АЦП, ПЛИС , PLL и синхронизация, Проблема с синхросигналами
robojim
сообщение Jun 20 2012, 04:36
Сообщение #1





Группа: Участник
Сообщений: 7
Регистрация: 25-11-11
Пользователь №: 68 508



Добрый день!
Первый раз пишу проект для ПЛИС (EP2C5Q208I8). Суть вот в чем- На ПЛИС поступает сигнал от внешнего генератора 10 МГц, внутри ПЛИС PLL формирует на выходе 80 и 20 МГЦ. эти 80 МГц подаю на АЦП (AD9265). На выходе АЦП необходимо подавать данные с частотой 80 МГЦ, которая идет уже от самого АЦП. В итоге проект не рабоатет, но если я синхронизирую данные с выхода АЦП от PLL 80 МГц, то все работает... Помогите кто чем может))))
Заранее спасибО!
Go to the top of the page
 
+Quote Post
barabek
сообщение Jun 20 2012, 05:05
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(robojim @ Jun 20 2012, 14:36) *
На выходе АЦП необходимо подавать данные с частотой 80 МГЦ, которая идет уже от самого АЦП. В итоге проект не рабоатет, но если я синхронизирую данные с выхода АЦП от PLL 80 МГц, то все работает... Помогите кто чем может))))
Заранее спасибО!


Так и не понял, кто от кого и куда подает опорные частоты. Вам виднее, вопрос в другом - Вы констрейны на пины подключенные к АЦП задавали? По времянке таймквест не ругается?


Go to the top of the page
 
+Quote Post
robojim
сообщение Jun 21 2012, 03:55
Сообщение #3





Группа: Участник
Сообщений: 7
Регистрация: 25-11-11
Пользователь №: 68 508



Цитата(barabek @ Jun 20 2012, 10:05) *
Так и не понял, кто от кого и куда подает опорные частоты. Вам виднее, вопрос в другом - Вы констрейны на пины подключенные к АЦП задавали? По времянке таймквест не ругается?

TQ ругается. Пробовал задавать констрейны, но так как я только в этом разбираюсь, возможно неправильно их написал...,потому что проект с ними не заработал.ь Вопрос-в констрейнах надо прописывать какие клоки...который синхронизирует ПЛИС с АЦП, Который тактирует выходные данные с АЦП... Надо ли прописывать синхросигналы от PLL...
Go to the top of the page
 
+Quote Post
barabek
сообщение Jun 21 2012, 11:57
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(robojim @ Jun 21 2012, 13:55) *
TQ ругается. Пробовал задавать констрейны, но так как я только в этом разбираюсь, возможно неправильно их написал...,потому что проект с ними не заработал.ь Вопрос-в констрейнах надо прописывать какие клоки...который синхронизирует ПЛИС с АЦП, Который тактирует выходные данные с АЦП... Надо ли прописывать синхросигналы от PLL...


Хм, вопросов много, почитайте лучше сами тонкости написания. Первое, что Вы должны понять - для чего нужны констрейны. Вкратце. Любой Ваш проект можно разделить на две части. Первая полностью лежит внутри плис. Квартус, раскидывая триггеры и логику по внутренним ресурсам, знает все временные параметры путей распространения сигналов (из даташитов у него все забито). Поэтому Вам за это не нужно беспокоиться. Если Вы описали какой-то страшный проект и квартус тусовал-тусовал логику, но так и не смог распределить ресурсы, что бы сигнал от триггера к триггеру долетал за такт, вот тогда будете предпринимать какие-то действия, например, изменять логику работы (или некоторые констрейны задать, но они Вам пока не нужны). А есть другая часть проекта. Та, которая связывается с внешним миром. И вот тут нужно квартусу подсказать. Простой пример. Внешнее устройство по клоку от плис выдает данные, считываемые входными регистрами плис. А теперь вопрос. Откуда квартус знает, какой длины у Вас дорожки и сколько по ним будет лететь сигнал клока до устройства и затем данные от устройства до плис? И через сколько времени после прихода клока это внешнее устройство выставит на своих выходах валидные данные? Конечно, этого квартус знать не может. Это ему нужно подсказать, задав входные и выходные констрейны. Обладая этой информацией квартус будет так размещать входные/выходные триггеры, чтобы данные защелкивались в нужный момент. В общем, почитайте. В любом случае TQ ругаться не должен, но если он не ругается-это еще ничего не значит.
Конечно же, хорошо было бы сначала добиться работы проекта при моделировании, а уже затем заливать в железо. Но, раз Вы новичек и проект не слишком сложный - воспользуйтесь signaltap. Это может значительно помочь при отладке. И осваивается очень быстро.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jun 21 2012, 13:33
Сообщение #5


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

Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Советую зайти на блог des00, там все подробно и грамотно описано
http://embedders.org/content/timequest-dly...rfeisov-raznykh
если что-то непонятно, то листайте по циклу статей с самого начала
Go to the top of the page
 
+Quote Post
des00
сообщение Jun 21 2012, 15:56
Сообщение #6


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

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



Цитата(bogaev_roman @ Jun 21 2012, 08:33) *
если что-то непонятно, то листайте по циклу статей с самого начала

добавлю немного, переработанный и дополненный материал можно найти здесь


--------------------
Go to the top of the page
 
+Quote Post
robojim
сообщение Jun 22 2012, 03:47
Сообщение #7





Группа: Участник
Сообщений: 7
Регистрация: 25-11-11
Пользователь №: 68 508



Цитата(barabek @ Jun 21 2012, 16:57) *
Хм, вопросов много, почитайте лучше сами тонкости написания. Первое, что Вы должны понять - для чего нужны констрейны. Вкратце. Любой Ваш проект можно разделить на две части. Первая полностью лежит внутри плис. Квартус, раскидывая триггеры и логику по внутренним ресурсам, знает все временные параметры путей распространения сигналов (из даташитов у него все забито). Поэтому Вам за это не нужно беспокоиться. Если Вы описали какой-то страшный проект и квартус тусовал-тусовал логику, но так и не смог распределить ресурсы, что бы сигнал от триггера к триггеру долетал за такт, вот тогда будете предпринимать какие-то действия, например, изменять логику работы (или некоторые констрейны задать, но они Вам пока не нужны). А есть другая часть проекта. Та, которая связывается с внешним миром. И вот тут нужно квартусу подсказать. Простой пример. Внешнее устройство по клоку от плис выдает данные, считываемые входными регистрами плис. А теперь вопрос. Откуда квартус знает, какой длины у Вас дорожки и сколько по ним будет лететь сигнал клока до устройства и затем данные от устройства до плис? И через сколько времени после прихода клока это внешнее устройство выставит на своих выходах валидные данные? Конечно, этого квартус знать не может. Это ему нужно подсказать, задав входные и выходные констрейны. Обладая этой информацией квартус будет так размещать входные/выходные триггеры, чтобы данные защелкивались в нужный момент. В общем, почитайте. В любом случае TQ ругаться не должен, но если он не ругается-это еще ничего не значит.
Конечно же, хорошо было бы сначала добиться работы проекта при моделировании, а уже затем заливать в железо. Но, раз Вы новичек и проект не слишком сложный - воспользуйтесь signaltap. Это может значительно помочь при отладке. И осваивается очень быстро.

В том то и проблема, что проект в Modelsime отлично работал и с предупреждениями от TQ, а вот в железе начались проблемы... Ну чтож будем тщательнее изучать TQ)) спасибо большое за помощь!)
Go to the top of the page
 
+Quote Post

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

 


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


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