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

 
 
> Как клок коммутируют?, Че-то затык с этим
alexPec
сообщение Feb 21 2011, 22:15
Сообщение #1


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Добрый день всем. Подскажите, а как клок коммутировать? Хочу на sgdma подавать данные с разных источников. данные скоммутировать проблем нет-мультиплексором, а каждый источник данных свой клок имеет, и его надо на sgdma подавать. Переходные процессы при коммутировании значения не имеют. Если через логику - типа "И" - так ведь задержка на этом И будет, и на выходе совсем другой клок, сдвинутый уже, а оба источника - синхронные схемы. Вобщем неправильным такой способ мне кажется. Пробовал ставить altclkctrl и указывать 2 входа - ругается, говорит что на входы с клоковых ног подавать надо. А у меня оба клока с плл-ов идут. Как быть?

Сообщение отредактировал alexPec - Feb 21 2011, 22:16
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Bad0512
сообщение Feb 22 2011, 05:04
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(alexPec @ Feb 22 2011, 04:15) *
Добрый день всем. Подскажите, а как клок коммутировать? Хочу на sgdma подавать данные с разных источников. данные скоммутировать проблем нет-мультиплексором, а каждый источник данных свой клок имеет, и его надо на sgdma подавать. Переходные процессы при коммутировании значения не имеют. Если через логику - типа "И" - так ведь задержка на этом И будет, и на выходе совсем другой клок, сдвинутый уже, а оба источника - синхронные схемы. Вобщем неправильным такой способ мне кажется. Пробовал ставить altclkctrl и указывать 2 входа - ругается, говорит что на входы с клоковых ног подавать надо. А у меня оба клока с плл-ов идут. Как быть?

Всё зависит от того, насколько быстрые потоки идут с каждого из ваших источников данных. Если потоки не слишком быстрые (по сравнению со скоростью DMA) то можно использовать "простой" способ, а именно : между источником и доменом клоков DMA ставятся фифошки с асинхронными клоками(по входу - клоки источников, по выходу - клоки DMA) для приведения к одному клоковому домену (DMA). Далее делается арбитр, который будет разруливать входящие потоки с фифошек и по очереди отправлять их на DMA машину. Тут необходимо ещё озадачиться проблемой как такую "колбасу" из данных потом в хосте разгребать, т.е. понимать где чьи данные в мультиплексированном потоке.Если потоки достаточно серьёзные (маденьких фифошек, построенных на RAM блочках уже не хвататет - они переполняются), то есть более сложная схема : тут нужен контроллер памяти (как правило DDR). Источники данных через промежуточные фифошки пишут данные в память (каждый - в свой буфер, буфер моежт быть круговым) и выдают наружу флажки заполненности для каждого конкретного буфера. Хост также имеет доступ к DDR через отдельный порт контроллера. Хост при необходимости (по флажкам, прерываниям и т д) заряжает DMA на область данных в DDR, где лежат данные источников. Буфера обслуживаются последовательно. DMA машинка работает только в памятью DDR. Схема посложнее будет, кроме того необходимо построить всё так, чтобы связка DDR controller - DMA engine работала с максимальной производительностью. Там есть хитрые моменты, связанные с латентностью DDR, особенно актуально при чтении из внешней памяти.
Для тупого мультиплексирования клоков у Xilinx есть макрос BUFGMUX. Но использовать его для данной задачи, ИМХО, неправильно.
Go to the top of the page
 
+Quote Post
alexPec
сообщение Feb 22 2011, 13:30
Сообщение #3


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Ну у меня все проще - надо коммутировать поток данных на ДМА либо до фильтра с интерполятором, либо после, т.е. коммутируется поток. Причем скоммутировали один раз (выбрали источник) и забыли до тех пор пока пункт в меню не поменяется (переключение режима). Поэтому переходные процессы при коммутировании не важны - переключение режимов относительно редко происходит. М/с - цыклон3, потоки - 20 и 5,18... МГц.

Сообщение отредактировал alexPec - Feb 22 2011, 13:31
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Feb 24 2011, 08:48
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



Цитата(alexPec @ Feb 22 2011, 16:30) *
... М/с - цыклон3, потоки - 20 и 5,18... МГц.

На таких частотах можно просто асинхронно мельтиплексировать частоты и всё. В любом случае вы получите битый поток в момент переключения. Если на это все согласны и констрейнты соблюдены - соединяйте напрямую. Если важна целостность данных - то через буферы либо через внешнюю память, как советовали выше.


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post
alexPec
сообщение Feb 24 2011, 10:53
Сообщение #5


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

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(warrior-2001 @ Feb 24 2011, 11:48) *
На таких частотах можно просто асинхронно мельтиплексировать частоты и всё. В любом случае вы получите битый поток в момент переключения. Если на это все согласны и констрейнты соблюдены - соединяйте напрямую. Если важна целостность данных - то через буферы либо через внешнюю память, как советовали выше.

Данные да, можно мультиплексировать, и это прокатывает, проверено. В момент переключения пара-тройка битых отсчетов - вообще не беда. А вот когда клок мультиплексируешь, а не напрямую на dma подаешь, тогда беда. Все времянки летят, потому как источники данных работают на оригинальных клоках с PLL, а приемник (SGDMA) на мультиплексированном, а значит задержанном клоке.
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 7 2011, 15:32
Сообщение #6


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

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



Цитата(alexPec @ Feb 24 2011, 04:53) *
Все времянки летят, потому как источники данных работают на оригинальных клоках с PLL, а приемник (SGDMA) на мультиплексированном, а значит задержанном клоке.

это кто сказал? а ничего что одна и та же тактовая в разных углах плиса приходит с задержкой до десятков наносекнуд? и как то работает все. главное правильно законстрейнить это дело %)


--------------------
Go to the top of the page
 
+Quote Post
Andr2I
сообщение Mar 9 2011, 16:57
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 368
Регистрация: 16-11-06
Из: Тверь
Пользователь №: 22 379



Цитата(des00 @ Mar 7 2011, 18:32) *
а ничего что одна и та же тактовая в разных углах плиса приходит с задержкой до десятков наносекнуд?


Каковы физические размеры такой ПЛИС? - L=t*c/n 10e-9 * 3e8/1,5 = 2 метра! wacko.gif
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Mar 9 2011, 17:05
Сообщение #8


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

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



Цитата(Andr2I @ Mar 9 2011, 19:57) *
Каковы физические размеры такой ПЛИС? - L=t*c/n 10e-9 * 3e8/1,5 = 2 метра! wacko.gif

Долго думали, чтоб формулу вывести?
Откройте описание на любую современную ПЛИС и посмотрите на архитектуру, там же обычно приводят основные задержки на линии. У меня на стратикс 4, глобальная тактовая от pll тянется на диагональ 4 нс.
Go to the top of the page
 
+Quote Post
Andr2I
сообщение Mar 9 2011, 18:18
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 368
Регистрация: 16-11-06
Из: Тверь
Пользователь №: 22 379



Цитата(bogaev_roman @ Mar 9 2011, 20:05) *
Долго думали, чтоб формулу вывести?


Однако не шибко долго laughing.gif - Вы видите ее ошибочность?


Цитата(bogaev_roman @ Mar 9 2011, 20:05) *
Откройте описание на любую современную ПЛИС и посмотрите на архитектуру, там же обычно приводят основные задержки на линии. У меня на стратикс 4, глобальная тактовая от pll тянется на диагональ 4 нс.


Интересно понять, как так получается. Не дадите конкретную ссылку по стратикс 4? Для Циклона 3 я такого сходу не нашел. Буду искренне благодарен если ткнете - возможно мое представление не соотвествует реальности.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- alexPec   Как клок коммутируют?   Feb 21 2011, 22:15
- - Shtirlits   Какая микросхема? Правильно использовать clock con...   Feb 21 2011, 22:58
|- - Victor®   Цитата(alexPec @ Feb 22 2011, 16:30) Ну у...   Feb 22 2011, 15:24
|- - Sergey'F   Цитата(alexPec @ Feb 24 2011, 13:53) а пр...   Mar 6 2011, 20:45
||- - alexPec   Цитата(Sergey'F @ Mar 6 2011, 23:45) ...   Mar 6 2011, 23:37
||- - Sergey'F   Цитата(alexPec @ Mar 7 2011, 02:37) DMA в...   Mar 7 2011, 07:46
||- - alexPec   Цитата(Sergey'F @ Mar 7 2011, 10:46) ...   Mar 7 2011, 09:49
|- - alexadmin   Цитата(des00 @ Mar 7 2011, 18:32) это кто...   Mar 9 2011, 14:35
||- - des00   Цитата(alexadmin @ Mar 9 2011, 08:35) С с...   Mar 9 2011, 16:22
||- - alexadmin   Цитата(des00 @ Mar 9 2011, 19:22) я вас у...   Mar 10 2011, 12:11
||- - des00   Цитата(alexadmin @ Mar 10 2011, 06:11) Та...   Mar 10 2011, 13:36
|- - bogaev_roman   Цитата(Andr2I @ Mar 9 2011, 21:18) Однако...   Mar 10 2011, 11:52
|- - Andr2I   Цитата(bogaev_roman @ Mar 10 2011, 14:52)...   Mar 10 2011, 12:22
||- - bogaev_roman   Цитата(Andr2I @ Mar 10 2011, 15:22) Если ...   Mar 10 2011, 12:56
|- - Andr2I   Цитата(bogaev_roman @ Mar 10 2011, 14:52)...   Mar 10 2011, 18:53
|- - bogaev_roman   Цитата(Andr2I @ Mar 10 2011, 21:53) Как и...   Mar 11 2011, 11:12
- - slawikg   ЦитатаПробовал ставить altclkctrl и указывать 2 вх...   Feb 23 2011, 13:14
|- - alexPec   Цитата(slawikg @ Feb 23 2011, 16:14) Все ...   Feb 23 2011, 22:06
- - slawikg   ЦитатаА поподробней можно? С одной стороны это как...   Feb 26 2011, 08:58
|- - Anatol'   Не знаю как у Альтеры, а у Xilinx есть такой элеме...   Mar 4 2011, 06:40
- - Sergey'F   alexadmin, des00, извините, а вы не о разных вещах...   Mar 10 2011, 15:07


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

 


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


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