|
Как клок коммутируют?, Че-то затык с этим |
|
|
|
 |
Ответов
|
Feb 22 2011, 05:04
|
Знающий
   
Группа: Свой
Сообщений: 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. Но использовать его для данной задачи, ИМХО, неправильно.
|
|
|
|
|
Feb 24 2011, 08:48
|
Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792

|
Цитата(alexPec @ Feb 22 2011, 16:30)  ... М/с - цыклон3, потоки - 20 и 5,18... МГц. На таких частотах можно просто асинхронно мельтиплексировать частоты и всё. В любом случае вы получите битый поток в момент переключения. Если на это все согласны и констрейнты соблюдены - соединяйте напрямую. Если важна целостность данных - то через буферы либо через внешнюю память, как советовали выше.
--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
|
|
|
|
|
Feb 24 2011, 10:53
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(warrior-2001 @ Feb 24 2011, 11:48)  На таких частотах можно просто асинхронно мельтиплексировать частоты и всё. В любом случае вы получите битый поток в момент переключения. Если на это все согласны и констрейнты соблюдены - соединяйте напрямую. Если важна целостность данных - то через буферы либо через внешнюю память, как советовали выше. Данные да, можно мультиплексировать, и это прокатывает, проверено. В момент переключения пара-тройка битых отсчетов - вообще не беда. А вот когда клок мультиплексируешь, а не напрямую на dma подаешь, тогда беда. Все времянки летят, потому как источники данных работают на оригинальных клоках с PLL, а приемник (SGDMA) на мультиплексированном, а значит задержанном клоке.
|
|
|
|
|
Mar 9 2011, 18:18
|
Местный
  
Группа: Свой
Сообщений: 368
Регистрация: 16-11-06
Из: Тверь
Пользователь №: 22 379

|
Цитата(bogaev_roman @ Mar 9 2011, 20:05)  Долго думали, чтоб формулу вывести? Однако не шибко долго  - Вы видите ее ошибочность? Цитата(bogaev_roman @ Mar 9 2011, 20:05)  Откройте описание на любую современную ПЛИС и посмотрите на архитектуру, там же обычно приводят основные задержки на линии. У меня на стратикс 4, глобальная тактовая от pll тянется на диагональ 4 нс. Интересно понять, как так получается. Не дадите конкретную ссылку по стратикс 4? Для Циклона 3 я такого сходу не нашел. Буду искренне благодарен если ткнете - возможно мое представление не соотвествует реальности.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|