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

 
 
> Вопрос по Multibit Domain Crossing
lim
сообщение Jan 8 2009, 18:21
Сообщение #1


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

Группа: Участник
Сообщений: 101
Регистрация: 27-05-05
Пользователь №: 5 486



Вообщем почитал тут статью по передаче данных между асинхронными доменами.
Многое применил. Но вот пока одну задачу не могу решить - как сделать!

Вообщем, задача такова.
Частоты в передаваемом и принимаемом доменах одинаковые, но асинхронные,
т.е. есть сдвиг по фазе. А именно из FPGA данные выдаются на DAC ( ЦАП).
И хоть FPGA и DAC тактируются от одного генератора - учитывая разницу в разводке,
да и внутри DAC получается задержка. Вообщем из DAC выдаётся частота, к которой
нужно привязать данные из FPGA. Частота эта - высокая, ну в проекте есть ещё только удвоенная,
т.е. фактически скорость выдачи данных на ЦАП в два раза ниже тактовой частоты работы проекта.
Если бы частота выдачи данных была бы значительно ниже тактовой, то тут пути имеются,
а так что-то ничего не придумывается.
Вообще есть ли решение, если тактовая частота проекта всего лишь в два раза выше частоты выдачи данных,
или же нужно обязательно повышать тактовую частоту ?

Буду особенно признателен, за пример, приведённый, на Verilog, или какие-нибудь ссылки на них и т.д.

С Уважением,
Игорь
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
cms
сообщение Jan 9 2009, 20:04
Сообщение #2


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

Группа: Свой
Сообщений: 168
Регистрация: 6-07-04
Пользователь №: 266



Главное правило асинхронных переходов - на каждом такте должен меняться только один сигнал (бит).
Поэтому при клоковом переходе шины данных пропускают через память, счетчики делают в коде Грея, а контрольные сигналы по возможности убирают совсем.
Ну и ставят по два-три триггера для подавления метастабильности на транзитные сигналы. У альтеры есть хорошая аппнота на эту тему, поищите на сайте.

Но в Вашем случае это абсолютно излишне. Пропустите входной клок в ПЛИС через PLL с фиксированным фазовым сдвигом. Если фазовый сдвиг обусловлен только постоянными задержками PCB и DAC, то этого будет достаточно для стабильной работы во всем PVT-диапазоне. Ну и поделите клок выходных данных на два, какие проблемы?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 13 2009, 07:09
Сообщение #3


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

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



Насколько я понял, DAC и FPGA имеют общую опорную относительно низкую частоту, которую DAC умножает своей PLL и выдает на ПЛИС как опорную, а ПЛИС умножает своей PLL и использует как внутреннюю. В таком случае сдвиг по фазе не известен зараннее - он зависит от того, как установятся PLL. Поэтому проще всего в данном случае поставить банальное FIFO, запись в которое (от логики FPGA) будет разрешена всегда, а чтение (со стороны DAC) будет разрешаться простенькой схемой, которая будет давать ему наполниться до половины. А еще проще - в качестве внутренней частоты ПЛИС использовать частоту, которую выдает DAC: вобще все будет прямо и красиво.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 04:41
Рейтинг@Mail.ru


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