|
|
  |
АЦП, ПЛИС , PLL и синхронизация, Проблема с синхросигналами |
|
|
|
Jun 20 2012, 04:36
|
Группа: Участник
Сообщений: 7
Регистрация: 25-11-11
Пользователь №: 68 508

|
Добрый день! Первый раз пишу проект для ПЛИС (EP2C5Q208I8). Суть вот в чем- На ПЛИС поступает сигнал от внешнего генератора 10 МГц, внутри ПЛИС PLL формирует на выходе 80 и 20 МГЦ. эти 80 МГц подаю на АЦП (AD9265). На выходе АЦП необходимо подавать данные с частотой 80 МГЦ, которая идет уже от самого АЦП. В итоге проект не рабоатет, но если я синхронизирую данные с выхода АЦП от PLL 80 МГц, то все работает... Помогите кто чем может)))) Заранее спасибО!
|
|
|
|
|
Jun 21 2012, 03:55
|
Группа: Участник
Сообщений: 7
Регистрация: 25-11-11
Пользователь №: 68 508

|
Цитата(barabek @ Jun 20 2012, 10:05)  Так и не понял, кто от кого и куда подает опорные частоты. Вам виднее, вопрос в другом - Вы констрейны на пины подключенные к АЦП задавали? По времянке таймквест не ругается? TQ ругается. Пробовал задавать констрейны, но так как я только в этом разбираюсь, возможно неправильно их написал...,потому что проект с ними не заработал.ь Вопрос-в констрейнах надо прописывать какие клоки...который синхронизирует ПЛИС с АЦП, Который тактирует выходные данные с АЦП... Надо ли прописывать синхросигналы от PLL...
|
|
|
|
|
Jun 21 2012, 11:57
|
Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831

|
Цитата(robojim @ Jun 21 2012, 13:55)  TQ ругается. Пробовал задавать констрейны, но так как я только в этом разбираюсь, возможно неправильно их написал...,потому что проект с ними не заработал.ь Вопрос-в констрейнах надо прописывать какие клоки...который синхронизирует ПЛИС с АЦП, Который тактирует выходные данные с АЦП... Надо ли прописывать синхросигналы от PLL... Хм, вопросов много, почитайте лучше сами тонкости написания. Первое, что Вы должны понять - для чего нужны констрейны. Вкратце. Любой Ваш проект можно разделить на две части. Первая полностью лежит внутри плис. Квартус, раскидывая триггеры и логику по внутренним ресурсам, знает все временные параметры путей распространения сигналов (из даташитов у него все забито). Поэтому Вам за это не нужно беспокоиться. Если Вы описали какой-то страшный проект и квартус тусовал-тусовал логику, но так и не смог распределить ресурсы, что бы сигнал от триггера к триггеру долетал за такт, вот тогда будете предпринимать какие-то действия, например, изменять логику работы (или некоторые констрейны задать, но они Вам пока не нужны). А есть другая часть проекта. Та, которая связывается с внешним миром. И вот тут нужно квартусу подсказать. Простой пример. Внешнее устройство по клоку от плис выдает данные, считываемые входными регистрами плис. А теперь вопрос. Откуда квартус знает, какой длины у Вас дорожки и сколько по ним будет лететь сигнал клока до устройства и затем данные от устройства до плис? И через сколько времени после прихода клока это внешнее устройство выставит на своих выходах валидные данные? Конечно, этого квартус знать не может. Это ему нужно подсказать, задав входные и выходные констрейны. Обладая этой информацией квартус будет так размещать входные/выходные триггеры, чтобы данные защелкивались в нужный момент. В общем, почитайте. В любом случае TQ ругаться не должен, но если он не ругается-это еще ничего не значит. Конечно же, хорошо было бы сначала добиться работы проекта при моделировании, а уже затем заливать в железо. Но, раз Вы новичек и проект не слишком сложный - воспользуйтесь signaltap. Это может значительно помочь при отладке. И осваивается очень быстро.
|
|
|
|
|
Jun 22 2012, 03:47
|
Группа: Участник
Сообщений: 7
Регистрация: 25-11-11
Пользователь №: 68 508

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