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

 
 
> Как клок коммутируют?, Че-то затык с этим
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
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 28)
Shtirlits
сообщение Feb 21 2011, 22:58
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Какая микросхема?
Правильно использовать clock control block.
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Feb 22 2011, 05:04
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 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
Сообщение #4


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

Группа: Свой
Сообщений: 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
Victor®
сообщение Feb 22 2011, 15:24
Сообщение #5


Lazy
******

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



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


Посмотрите либу примитивов - там наверняка есть какой-то "клок мукс"


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post
slawikg
сообщение Feb 23 2011, 13:14
Сообщение #6


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

Группа: Свой
Сообщений: 135
Регистрация: 31-07-06
Пользователь №: 19 224




Цитата
Пробовал ставить altclkctrl и указывать 2 входа - ругается, говорит что на входы с клоковых ног подавать надо. А у меня оба клока с плл-ов идут. Как быть?


Все коммутируемые плл должны быить от глобальных клоковых входов одной стороны.
Go to the top of the page
 
+Quote Post
alexPec
сообщение Feb 23 2011, 22:06
Сообщение #7


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

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



Цитата(slawikg @ Feb 23 2011, 16:14) *
Все коммутируемые плл должны быить от глобальных клоковых входов одной стороны.

А поподробней можно? С одной стороны это как? У меня надо коммутировать клоки с двух разных внутренних PLL. А он то ругается что вообще на эту altclkctrl клоки только снаружи можно подавать.
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Feb 24 2011, 08:48
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #9


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

Группа: Свой
Сообщений: 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
slawikg
сообщение Feb 26 2011, 08:58
Сообщение #10


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

Группа: Свой
Сообщений: 135
Регистрация: 31-07-06
Пользователь №: 19 224



Цитата
А поподробней можно? С одной стороны это как? У меня надо коммутировать клоки с двух разных внутренних PLL. А он то ругается что вообще на эту altclkctrl клоки только снаружи можно подавать.

Наверно неполучиться.
Цитата
А вот когда клок мультиплексируешь, а не напрямую на dma подаешь, тогда беда. Все времянки летят, потому как источники данных работают на оригинальных клоках с PLL, а приемник (SGDMA) на мультиплексированном, а значит задержанном клоке.

ЛЮТ это ПЗУ совсеми вытекающими последствиями.
Go to the top of the page
 
+Quote Post
Anatol'
сообщение Mar 4 2011, 06:40
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 74
Регистрация: 28-01-10
Из: Новосибирск
Пользователь №: 55 106



Не знаю как у Альтеры, а у Xilinx есть такой элемент - BUFGMUX - мультиплексор на глобальных клоковых линиях.
Go to the top of the page
 
+Quote Post
Sergey'F
сообщение Mar 6 2011, 20:45
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 17-09-05
Из: Москва
Пользователь №: 8 660



Цитата(alexPec @ Feb 24 2011, 13:53) *
а приемник (SGDMA) на мультиплексированном, а значит задержанном клоке.

А этот DMA в составе системы на кристалле? Не знаю, как Вы пересинхронизируете дальше, т.е. в каком домене находится приемник. Но не лучше ли поставить DMA в домене приемника? Тогда на входе DMA ставится мультиплексор, а перед ним по каждому входу ставится логика перехода между тактовыми импульсами - один блок с 20МГц, другой с 5.18МГц в домен тактового импульса DMA и приемника.
Go to the top of the page
 
+Quote Post
alexPec
сообщение Mar 6 2011, 23:37
Сообщение #13


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

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



Цитата(Sergey'F @ Mar 6 2011, 23:45) *
А этот DMA в составе системы на кристалле? Не знаю, как Вы пересинхронизируете дальше, т.е. в каком домене находится приемник. Но не лучше ли поставить DMA в домене приемника? Тогда на входе DMA ставится мультиплексор, а перед ним по каждому входу ставится логика перехода между тактовыми импульсами - один блок с 20МГц, другой с 5.18МГц в домен тактового импульса DMA и приемника.

DMA в домене приемника, на клоке 80 МГц, между дма и источниками стоит фифо двухклоковое входной - источник, выходной - дма (80мгц). Так вот я пробовал коммутировать клок логическим И от источников на клок входного потока фифо - не катит.
Go to the top of the page
 
+Quote Post
Sergey'F
сообщение Mar 7 2011, 07:46
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 17-09-05
Из: Москва
Пользователь №: 8 660



Цитата(alexPec @ Mar 7 2011, 02:37) *
DMA в домене приемника, на клоке 80 МГц, между дма и источниками стоит фифо двухклоковое входной - источник, выходной - дма (80мгц). Так вот я пробовал коммутировать клок логическим И от источников на клок входного потока фифо - не катит.

Если хватит памяти, то идеологически правильнее поставить два двухклоковых FIFO с разными входными частотами, а мультиплексировать их выход, который у обоих будет читаться на частоте 80МГц.


Как вариант, так как переключение осуществляется редко, можно попробовать поиграть с переконфигурацией PLL. Т.е. сделать выход, у которого частота и фаза (через множители, выбор входного ТИ и т.д.) будут определяться загруженной конфигурацией.
Go to the top of the page
 
+Quote Post
alexPec
сообщение Mar 7 2011, 09:49
Сообщение #15


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

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



Цитата(Sergey'F @ Mar 7 2011, 10:46) *
Как вариант, так как переключение осуществляется редко, можно попробовать поиграть с переконфигурацией PLL. Т.е. сделать выход, у которого частота и фаза (через множители, выбор входного ТИ и т.д.) будут определяться загруженной конфигурацией.


Спасибо, про реконфигурацию ПЛЛ не подумал как-то, тоже вариант.
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 7 2011, 15:32
Сообщение #16


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

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



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

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


--------------------
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Mar 9 2011, 14:35
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



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


С содроганием представил кристалл, где такое происходит. Обычно clock skew даже для больших проектов не более пары нс.
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 9 2011, 16:22
Сообщение #18


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

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



Цитата(alexadmin @ Mar 9 2011, 08:35) *
С содроганием представил кристалл, где такое происходит. Обычно clock skew даже для больших проектов не более пары нс.

я вас удивлю это все современные плис, в больших проектах. скажу даже больше, часто проблема заключается не в том, что задержка по клоку большая, а в том, что она катастрофически мала %)


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


Местный
***

Группа: Свой
Сообщений: 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
Сообщение #20


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

Группа: Свой
Сообщений: 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
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 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
bogaev_roman
сообщение Mar 10 2011, 11:52
Сообщение #22


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

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



Цитата(Andr2I @ Mar 9 2011, 21:18) *
Однако не шибко долго laughing.gif - Вы видите ее ошибочность?

Для того, чтобы подсчитать время распространения сигнала от точки А до точки Б в данном случае нельзя брать расстояние между ними и умножать на скорость света, ибо:
А) - нет прямой диагональной связи от А до Б, сигнал будет переходить через ряды и строки клоковой сети
Б) - скорость распространения - не скорость света

Цитата
Интересно понять, как так получается. Не дадите конкретную ссылку по стратикс 4? Для Циклона 3 я такого сходу не нашел.

Честно говоря не нашел, но можете сами создать простейший проект - подать какую-нить тактовую на pll и получившуюся подстроенную частоту (пойдет по сетке тактовых частот) выдать через пин на диагональном конце. Для обычных сигналов ситуация гораздо хуже - там будут десятки нс.
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Mar 10 2011, 12:11
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(des00 @ Mar 9 2011, 19:22) *
я вас удивлю это все современные плис, в больших проектах. скажу даже больше, часто проблема заключается не в том, что задержка по клоку большая, а в том, что она катастрофически мала %)


Большая-мала это совсем другой вопрос. Так откуда берутся десятки наносекунд для тактовых частот (мы ведь говорим про глобальные цепи, я надеюсь)? Объясните, не надо говорить загадками.
Go to the top of the page
 
+Quote Post
Andr2I
сообщение Mar 10 2011, 12:22
Сообщение #24


Местный
***

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



Цитата(bogaev_roman @ Mar 10 2011, 14:52) *
А) - нет прямой диагональной связи от А до Б, сигнал будет переходить через ряды и строки клоковой сети


Если тупо, то это должно дать множитель корень из 2. Если допустить, что глобальный сигнал ходит по одному ряду несколько раз еще 10 (шибко сомневаюсь однако rolleyes.gif ).

Цитата(bogaev_roman @ Mar 10 2011, 14:52) *
Б) - скорость распространения - не скорость света


А что-там за среда? Типовой коэффициент укорочения 1,5. Возможно там 3!!! Но больше ...

Цитата(bogaev_roman @ Mar 10 2011, 14:52) *
Честно говоря не нашел, но можете сами создать простейший проект - подать какую-нить тактовую на pll и получившуюся подстроенную частоту (пойдет по сетке тактовых частот) выдать через пин на диагональном конце. Для обычных сигналов ситуация гораздо хуже - там будут десятки нс.


Вы это в симмуляторе смотрели? Гляну обязательно!
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Mar 10 2011, 12:56
Сообщение #25


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

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



Цитата(Andr2I @ Mar 10 2011, 15:22) *
Если тупо, то это должно дать множитель корень из 2. Если допустить, что глобальный сигнал ходит по одному ряду несколько раз еще 10 (шибко сомневаюсь однако rolleyes.gif ).

Я говорю о том, что чтобы рассчитать задержку от А до Б, требуется взять типовую задержку по столбцу, типовую задержку по строке, подсчитать общее кол-во строк и столбцов ну и перемножить и просумировать.
Цитата
А что-там за среда? Типовой коэффициент укорочения 1,5. Возможно там 3!!! Но больше ...

Теоретики...
Цитата
Вы это в симмуляторе смотрели? Гляну обязательно!

Можно в timequest посмотреть отчет для конкретного сигнала (для quartus), можно сгенерить gate и в sdo файле просмотреть все задержки, можно и на симуляторе посмотреть. Все значения одинаковыми будут (при одинаковых моделях).
Go to the top of the page
 
+Quote Post
des00
сообщение Mar 10 2011, 13:36
Сообщение #26


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

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



Цитата(alexadmin @ Mar 10 2011, 06:11) *
Так откуда берутся десятки наносекунд для тактовых частот (мы ведь говорим про глобальные цепи, я надеюсь)?

ну как откуда? вы сильно упрощаете картину глобальных сигналов в современных ПЛИС. Если брать пример из школьного курса физики, то для вас глобальная линия это материальная точка. А на деле все намного сложнее. У этих цепей дикий фанаут, а максимальная нагрузочная способность ограничена. Поэтому там стоит куча драйверов. Помимо этого тактовые сигналы триггеров проходят кучу мультиплексоров : разные клоки выбрать, логический сигнал как клок использовать, отключить сегмент плис для снижения потребления(хилые, если мне память не изменяет в виртексе 5 ом, заявляли что у них исе сам выбирает тип драйвера из медленных, средних и быстрых драйверов).

Про 4нс вам уже сказали, но я думаю, что в сложных проектах, на толстых кристаллах, с кучей клоков и при наличии мультиплексора тактовой, 10нс задержки по клоку, да еще и в worst case набрать можно. А посмотреть все это можно в таймквесте.

Резюмирую современные ПЛИС слишком далеко ушли от поверхностного представления о них как о проводах и сосредоточенной логики, поэтому и ваши рассуждения об этом вызывают такую реакцию. Достаточно внимательно покурить даташиты на разные семейства, приложить мозг и фпга едитор.


--------------------
Go to the top of the page
 
+Quote Post
Sergey'F
сообщение Mar 10 2011, 15:07
Сообщение #27


Местный
***

Группа: Свой
Сообщений: 351
Регистрация: 17-09-05
Из: Москва
Пользователь №: 8 660



alexadmin, des00, извините, а вы не о разных вещах говорите? Я например, под перекосом понимаю разницу во времени прихода сигнала в разные точки устройства. А задержка - это собственно задержка распространения от источника до приемника.

Все-таки деревья тактирования стараются выравнивать по перекосу. То есть, задержка большая, а перекос, даже по разным углам кристалла, будет небольшим. Вот для примера скриншот ChipPlanner для немаленького и медленного Cyclone IV E. Выделены задержки на выходе с clock control block для clock и reset. Схема - просто 8-ми разрядный регистр:
CODE
module testskew
(
input clk, reset,
input [7:0] din,
output reg [7:0] count
);

always @ (posedge clk or posedge reset)
begin
if (reset)
count <= 0;
else
count <= din;
end

endmodule

Пару триггеров я кинул в произвольные места кристалла сам, еще один сделал Fast Input, а другой Fast Output. Остальные 4 разбросал Quartus. Результат - по кристаллу перекос порядка 0.1нс, до триггеров в элементах ввода-вывода задержка просто другая, но тоже выровненная (3нс вместо 2.5нс - в StratixII аналогично, сталкивался уже).

Очень интересно увидеть именно пример перекоса более 1-2нс, а не задержку в глобальной линии тактовых импульсов.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Andr2I
сообщение Mar 10 2011, 18:53
Сообщение #28


Местный
***

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



Цитата(bogaev_roman @ Mar 10 2011, 14:52) *
Честно говоря не нашел, но можете сами создать простейший проект - подать какую-нить тактовую на pll и получившуюся подстроенную частоту (пойдет по сетке тактовых частот) выдать через пин на диагональном конце. Для обычных сигналов ситуация гораздо хуже - там будут десятки нс.


Как и обещал - создал проект - pll c выходом 128МГц и 4 Т-триггера. Триггеры разместил в разных углах от pll прямо в IO. Чип - Циклон 3 самый большой (120). В симмуляторе разница между сигналами на разных выводах 0,05 нс ...
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Mar 11 2011, 11:12
Сообщение #29


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

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



Цитата(Andr2I @ Mar 10 2011, 21:53) *
Как и обещал - создал проект - pll c выходом 128МГц и 4 Т-триггера. Триггеры разместил в разных углах от pll прямо в IO. Чип - Циклон 3 самый большой (120). В симмуляторе разница между сигналами на разных выводах 0,05 нс ...

Мы о разных понятиях говорим. Создал простой проект - стратикс4, самый быстрый и объемный. Два триггера - на входе и выходе - в диаметрально противоположных концах ПЛИС. GATE первого и второго:
Код
// Location: FF_X184_Y128_N17
dffeas out(
    .clk(out_CLK_driver),
    .d(out_D_driver),
    .asdata(vcc),
    .clrn(vcc),
    .aload(gnd),
    .sclr(gnd),
    .sload(gnd),
    .ena(vcc),
    .devclrn(devclrn),
    .devpor(devpor),
    .q(out1),
    .prn(vcc));
// Location: FF_X1_Y1_N17
dffeas out(
    .clk(out_CLK_driver),
    .d(gnd),
    .asdata(out_ASDATA_driver),
    .clrn(vcc),
    .aload(gnd),
    .sclr(gnd),
    .sload(vcc),
    .ena(vcc),
    .devclrn(devclrn),
    .devpor(devpor),
    .q(out1),
    .prn(vcc));

Связь между ними:
Код
stratixiv_routing_wire out_ASDATA_routing_wire_inst (
    .datain(out2),
    .dataout(out_ASDATA_driver));

Связь от pll до выходного триггера (через всю плис)
Код
stratixiv_routing_wire out_CLK_routing_wire_inst (
    .datain(wire_pll1_clk_0),
    .dataout(out_CLK_driver));


Теперь результаты из файла sdf аннотации:
Код
(CELL
    (CELLTYPE "stratixiv_routing_wire")
    (INSTANCE d_delay.out_CLK_routing_wire_inst)
    (DELAY
      (ABSOLUTE
        (IOPATH datain dataout (1967:1967:1967) (1944:1944:1944))
      )
      (PATHPULSE datain dataout (200:200:200))
    )
  )
(CELL
    (CELLTYPE "stratixiv_routing_wire")
    (INSTANCE d_out.out_CLK_routing_wire_inst)
    (DELAY
      (ABSOLUTE
        (IOPATH datain dataout (2110:2110:2110) (2070:2070:2070))
      )
      (PATHPULSE datain dataout (200:200:200))
    )
  )
(CELL
    (CELLTYPE "stratixiv_routing_wire")
    (INSTANCE d_out.out_ASDATA_routing_wire_inst)
    (DELAY
      (ABSOLUTE
        (IOPATH datain dataout (6235:6235:6235) (6244:6244:6244))
      )
      (PATHPULSE datain dataout (200:200:200))
    )
  )

Резюме: время прихода тактовой частоты от pll до первого триггера - 1,967 ns, до второго - 2,110 ns, длительность распространения сигнала от выхода первого триггера до входа второго - 6,235 ns.
Это все получено для чистого проекта, где ничего нет. Если появится большой fan-out, схема будет загружена, то результаты будут гораздо хуже.
Цитата
В симмуляторе разница между сигналами на разных выводах 0,05 нс ...

Если gate-уровень - не верю, минимум 0.2 будет, если не вводили дополнительные временные ограничения или программируемые задержки.

Сообщение отредактировал bogaev_roman - Mar 11 2011, 11:17
Go to the top of the page
 
+Quote Post

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

 


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


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