|
|
  |
Синхронность в FPGA |
|
|
|
Apr 19 2011, 08:54
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 28-09-09
Пользователь №: 52 622

|
Всем добрый! Написал проект на VHDL для XILINX Spartan3AN , Короче, осциллограф. Данные из АЦП передаются в ПК по ЮСБ . От ПК по ЮСБ принимаю параметры - кол-во точек, кол-во накоплений , развертку, задержку и т.д.. В принципе все работает, НО! Возникают проблеммы . Например, вывожу внутренний сигнал вовне чипа для тестирования - и все нарушается! ПОЧЕМУ ??? Наверное пишу криво. Большинство сигналов асинхронны. Есть у меня клок. По какому-то асинхронному событию запускаю счетчик по клоку , формирую нужные сигналы , подаю далее , например суммирую , но все это не стробируется каким-нибудь одним клоком. Всюду слышу : "синхронность,синхронность и еще раз синхронность!" Вот такой единой синхронности у меня таки и нету! Помогите советом!
|
|
|
|
|
Apr 19 2011, 11:22
|

Lazy
     
Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76

|
Цитата(NOVY @ Apr 19 2011, 11:54)  Всем добрый! Написал проект на VHDL для XILINX Spartan3AN , Короче, осциллограф. Данные из АЦП передаются в ПК по ЮСБ . От ПК по ЮСБ принимаю параметры - кол-во точек, кол-во накоплений , развертку, задержку и т.д.. В принципе все работает, НО! Возникают проблеммы . Например, вывожу внутренний сигнал вовне чипа для тестирования - и все нарушается! ПОЧЕМУ ??? Наверное пишу криво. Большинство сигналов асинхронны. Есть у меня клок. По какому-то асинхронному событию запускаю счетчик по клоку , формирую нужные сигналы , подаю далее , например суммирую , но все это не стробируется каким-нибудь одним клоком. Всюду слышу : "синхронность,синхронность и еще раз синхронность!" Вот такой единой синхронности у меня таки и нету! Помогите советом! Так, собственно, чтобы помочь - надо как минимум посмотреть, что Вы написали на VHDL. Что касается синхронного проектирования... Для начала посмотрите как работают синхронные счетчики, их структуру, особенно как формируются сигналы разрешения для разрядов. И сравните с асинхронными. После этого Вам проясниться в каком направлении двигаться в своем проекте.
--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
|
|
|
|
|
Apr 19 2011, 13:25
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 28-09-09
Пользователь №: 52 622

|
Цитата(Victor® @ Apr 19 2011, 14:22)  Так, собственно, чтобы помочь - надо как минимум посмотреть, что Вы написали на VHDL. Что касается синхронного проектирования... Для начала посмотрите как работают синхронные счетчики, их структуру, особенно как формируются сигналы разрешения для разрядов. И сравните с асинхронными. После этого Вам проясниться в каком направлении двигаться в своем проекте. Вопрос. Каким образом может влиять вывод на "копыто" чипа тестового сигнала, который учавствует ,например, в работе счетчика на работу самого счетчика ?
|
|
|
|
|
Apr 19 2011, 13:45
|
Знающий
   
Группа: Свой
Сообщений: 758
Регистрация: 11-07-05
Из: Понаехал (Мск)
Пользователь №: 6 688

|
Цитата(NOVY @ Apr 19 2011, 17:25)  Вопрос. Каким образом может влиять вывод на "копыто" чипа тестового сигнала, который учавствует ,например, в работе счетчика на работу самого счетчика ? вывод на pin может менять работу стратегию работы оптимизации при синтезе, так и физическое местоположение триггера. как то расказывали случай, что при выводе клока на определенную ножку проект не работал стабильно. оказалось что в этом случае DCM перемещался в другой конец кристалла, где видимо были какие то ЭМИ...
|
|
|
|
|
Apr 19 2011, 13:59
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 28-09-09
Пользователь №: 52 622

|
Цитата(SFx @ Apr 19 2011, 16:45)  вывод на pin может менять работу стратегию работы оптимизации при синтезе, так и физическое местоположение триггера.
как то расказывали случай, что при выводе клока на определенную ножку проект не работал стабильно. оказалось что в этом случае DCM перемещался в другой конец кристалла, где видимо были какие то ЭМИ... DCM не использую, ползуюсь внешним клоком ... Но по сути, похоже происходит то же самое. Кстати, проблемы, связанные с разводкой, пока откланяю, т.к они возникали и на Starter Kit///
|
|
|
|
|
Apr 19 2011, 19:03
|
Знающий
   
Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219

|
Цитата(NOVY @ Apr 19 2011, 17:25)  Вопрос. Каким образом может влиять вывод на "копыто" чипа тестового сигнала, который учавствует ,например, в работе счетчика на работу самого счетчика ? Если проект асинхронный - то временные ограничения не проверяются и всё полностью зависит от разводки Place&Route. Типа повезёт не повезёт. Вот вам "везёт" иногда, а иногда нет. Чтобы везло всегда, нужно задавать констреинты и помаксиму синхронизировать проект. P.S. помню мы тоже в детстве по глупости подключили 20 сантиметровыми шлейфами от Floppy дисковода АЦП ADC081000, разогнанный до тактовой частоты 1.5ГГц (2 потока по 750МБайт/c в DDR) на отладочной плате от National - к отладочной плате с Virtex4 VFX12. Передавали данные в RS-232 и в ПК, без всяких констреинтов, и даже клок с АЦП подавался на обычный пин с CLOCK DEDICATED ROUTE=false. Но всё работало и синус красивый на экране показывало. Потом почитали литературу - поумнели, задали констреинты - они естественно не сошлись и синус развалился. вот фото чудо девайса
|
|
|
|
|
Apr 20 2011, 02:49
|
Участник

Группа: Участник
Сообщений: 65
Регистрация: 12-08-08
Из: Томск
Пользователь №: 39 559

|
внешний клок через PLL прогоняешь?
|
|
|
|
|
Apr 21 2011, 07:47
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 28-09-09
Пользователь №: 52 622

|
Цитата(VladimirB @ Apr 19 2011, 22:03)  Если проект асинхронный - то временные ограничения не проверяются и всё полностью зависит от разводки Place&Route. Типа повезёт не повезёт. Вот вам "везёт" иногда, а иногда нет. Чтобы везло всегда, нужно задавать констреинты и помаксиму синхронизировать проект. P.S. помню мы тоже в детстве по глупости подключили 20 сантиметровыми шлейфами от Floppy дисковода АЦП ADC081000, разогнанный до тактовой частоты 1.5ГГц (2 потока по 750МБайт/c в DDR) на отладочной плате от National - к отладочной плате с Virtex4 VFX12. Передавали данные в RS-232 и в ПК, без всяких констреинтов, и даже клок с АЦП подавался на обычный пин с CLOCK DEDICATED ROUTE=false. Но всё работало и синус красивый на экране показывало. Потом почитали литературу - поумнели, задали констреинты - они естественно не сошлись и синус развалился. вот фото чудо девайса
 Спасибо за ответ! Проект в принципе и не собирается , пока в MAP Properties не поставишь галочку на Perform Timing-Driven Packing and Placement  . CLOCK DEDICATED ROUTE=false также использовал, когда клоковый сигнал пришлось подать на обычный пин... А вот ,к моему стыду, не знаю, что такое констреинты. Прошу не пинать, это мой первый проект на VHDL и FPGA ... Цитата(dde29 @ Apr 20 2011, 05:49)  внешний клок через PLL прогоняешь? Подаю просто на GCLK0 ... Этого недостаточно?
|
|
|
|
|
Apr 21 2011, 07:59
|
Участник

Группа: Свой
Сообщений: 74
Регистрация: 29-11-08
Из: санкт-петербург
Пользователь №: 42 061

|
Цитата(NOVY @ Apr 19 2011, 12:54) По какому-то асинхронному событию запускаю счетчик по клоку Сформируйте из асинхронного сигнала запуска,синхронный -его и используйте для запуска счетчика
|
|
|
|
|
Apr 21 2011, 08:21
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 28-09-09
Пользователь №: 52 622

|
Цитата(Иван Панченко @ Apr 21 2011, 10:59)  Сформируйте из асинхронного сигнала запуска,синхронный -его и используйте для запуска счетчика Пробовал (правда не все сигналы). Просто асинхронный сигнал подавал на Д вход Д-триггера, а его стробировал клоком...
|
|
|
|
|
Apr 21 2011, 09:23
|
Участник

Группа: Свой
Сообщений: 74
Регистрация: 29-11-08
Из: санкт-петербург
Пользователь №: 42 061

|
Цитата(NOVY @ Apr 21 2011, 12:21)  Пробовал (правда не все сигналы). Просто асинхронный сигнал подавал на Д вход Д-триггера, а его стробировал клоком... мой Вам совет, делайте так со всеми сигналами;-)
|
|
|
|
|
Apr 21 2011, 10:52
|
Участник

Группа: Участник
Сообщений: 49
Регистрация: 28-09-09
Пользователь №: 52 622

|
Цитата(Victor® @ Apr 21 2011, 13:07)  ...только на 2 последовательно соединенных DFF. А можно пояснить??? Цитата(NOVY @ Apr 21 2011, 13:50)  А можно пояснить??? В чем необходимость 2 раза пропустить через Д-Триггер?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|