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

 
 
> DDS, нужен совет
cerg19
сообщение Jul 27 2011, 16:35
Сообщение #1


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

Группа: Свой
Сообщений: 166
Регистрация: 12-05-09
Из: Нижний Новгород
Пользователь №: 48 978



Здравствуйте. Встала задача сформировать синус на выходе стороннего ЦАП при помощи ПЛИС Spartan 3. Частота синуса 1 МГц. Для формирования сразу же было выбрано ядро DDS. Всё было замечательно, пока я не стал моделировать проект в ModelSim в режиме Post-Route(с учётом распиновки ПЛИС, задержек внутри кристалла и т.д.). Проблема заключается в том, что сигнал на выходе DDS формируется каждый восходящий фронт тактовой частоты, при этом сигнал на параллельной выходной шине с выхода DDS принимает истинное значение с задержкой почти равной одна трети периода. Тактовая частота ПЛИС 50 МГц. Ниже привидён рисунок тактового сигнала и сигнала на выходе DDS в аналоговом представлении

Проблема в том, что данные у меня в ЦАП защёлкиваются по заднему фронту, в некоторых местах защёлкиваются непрвильно
Может кто нибудь сталкивался с этим, как можно уменьшить задержку сигнала на выходе? Заранее спасибо за ответ
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
ivanoffer
сообщение Jul 27 2011, 20:45
Сообщение #2


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

Группа: Участник
Сообщений: 120
Регистрация: 21-07-11
Пользователь №: 66 348



Если правильно понял, то показано изменение данных на пинах ПЛИС. Неплохо бы посмотреть и сам такт на выходе (а может это он есть?).
При формировании шины данных из Spartan3 приходится несколько шаминить, хотя другие это называют "научным подходом к решению проблемы".
И связано это с обрезанностью по сравнению с Virtex, в даном случае с отсутствием выходных триггеров (OFD). Что можно предложить - поставьте
несколько (может быть будет достаточно и одной) линии задержки данных от выхода DDS до OBUF и наложите ограничение относительно выходного
такта. Как правило, этого достаточно для обеспечения временных соотношений данных и такта. Да, иногда можно добавить инвертор в цепочку такта,
тоже помогает "вытянуть" пару необходимых ns. Но в любом случае необходимо моделирование.
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Jul 27 2011, 22:22
Сообщение #3


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

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

А ка у вас тактируется ЦАП и FPGA?

В простейшем случае инвертируйте входного clk внутри fpga,
в правильном случае используйте DCM и двигайте фазу внутреннего clk относительно входного чтобы компенсировать задержку.
Есть еще несколько вариантов но в любом случае надо знать что и как тактируется.

Удачи! Rob.

Go to the top of the page
 
+Quote Post
disel
сообщение Jul 28 2011, 02:54
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Прочитайте wp237.
Go to the top of the page
 
+Quote Post
cerg19
сообщение Jul 28 2011, 14:47
Сообщение #5


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

Группа: Свой
Сообщений: 166
Регистрация: 12-05-09
Из: Нижний Новгород
Пользователь №: 48 978



Цитата
Неплохо бы посмотреть и сам такт на выходе (а может это он есть?).

на рисунке тактовый сигнал с ножки ЦАП

Цитата
А ка у вас тактируется ЦАП и FPGA?

Тактирование ПЛИС и ЦАП происходит от одного и тогоже генератора, но работу DDS я организовал от тактового сигнала с выхода ЦАП, который используется для синхронизвции передачи данных от ПЛИС в ЦАП.

Цитата
в правильном случае используйте DCM и двигайте фазу внутреннего clk относительно входного чтобы компенсировать задержку.

идея, попробую
Go to the top of the page
 
+Quote Post

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

 


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


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