|
Разделение логики на два чипа, Обмен данных на скорости около 300МГц |
|
|
|
Dec 22 2011, 05:40
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Как-то это очень стремно выглядит. На мой взгляд, есть смысл поделить проект так, чтобы не было необходимости таскать между микросхемами высокоскоростные данные, причем СТОЛЬКО. Цитата ФПГА 1 Принимает входной клок 100МГц от резонатора на плате, внутри имеет DCM выдающий 300МГц клок для всей рабочей логики на этом чипе, а также этот 300МГц клок от DCM подается на выход чипа и как вход основного клока на ФПГА 2 Не лучше ли от одного генератора запитать обе через "размножитель" тактовых сигналов?
|
|
|
|
|
Dec 22 2011, 06:02
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(BlackOps @ Dec 22 2011, 07:41)  Предположим есть уже большой проект который не умещается на один Спартан6 чип, и планируется разместить два Спартан6 чипа на плате, а проект разделить так чтобы уместить всю логику на два чипа. Если у Вас изделие производится ограниченным тиражом, то, возможно, дешевле (с учётом затрат на создание и отладку стыка между двумя Spartan-6) поставить один Virtex-6 CXT. Цитата(Koluchiy @ Dec 22 2011, 09:40)  Не лучше ли от одного генератора запитать обе через "размножитель" тактовых сигналов? Я думаю лучше всё-таки не разветвлять clock. Т.к. с передаваемыми данными всё равно необходимо будет передавать clock - иначе, из-за разбросов в Global clock distribution network, высокоскоростные данные не получится надёжно передавать. Так зачем же еще один clock передавать ? А еще лучше вообще ничего не передавать, а, как и говорил des00, взять ПЛИС б ольшего объёма, если таковые имеются в семействе Spartan-6.
|
|
|
|
|
Dec 22 2011, 07:41
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Цитата(Boris_TS @ Dec 22 2011, 10:02)  Я думаю лучше всё-таки не разветвлять clock. Т.к. с передаваемыми данными всё равно необходимо будет передавать clock - иначе, из-за разбросов в Global clock distribution network, высокоскоростные данные не получится надёжно передавать. Так зачем же еще один clock передавать ? Ну, детали интерфейса и алгоритма работы вообще не конкретизированы. Суть в том, что если питать 2-ю микросхему клоком 300МГц от 1-й, это создаст 1) Сдвиг по фазе между клоками 2-х микросхем. Он в любом случае будет, но его можно минимизировать. Насколько он критичен в данном проекте - ХЗ. 2) Дополнительные джиттеры/шумы/искажения на клоке, питающем 2-ю микросхему. Так что, на мой взгляд, в любом случае лучше дать в обе микросхемы 100МГц и умножать самостоятельно. Клоки при передаче данных между интерфейсами - другая песня, в зависимости от интерфейса они могут приходить на разные ноги, и не всегда на те, с которых оптимально питать глобальные тактовые цепи, пллки и т.п. (уже не очень помню S6, но помню, что там хитро). Цитата Но в общем: то что Koluchiy предлагал ето своего рода system synchronous interface , и в таком случае нужно особое внимание уделить разводке клока. Мои слова относятся исключительно к подаче опорных тактовых на обе микросхемы, а не к каким-то интерфейсным делам.
|
|
|
|
|
Dec 22 2011, 08:04
|
Злополезный
   
Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188

|
Цитата(BlackOps @ Dec 22 2011, 11:06)  Насчет большего объема девайса врядли, максимальный спартан6 уже выбран. А на виртекс переходить это дорого. Еще разок обращу Ваше внимание на Virtex-6 CXT - это удешевлённая серия: Virtex-6 CXT заметно дешевле, чем Virtex-6 LXT. Собственно, Xilinx и позиционирует Virtex-6 CXT как ПЛИС для тех, кого выперло за Spartan-6, а Virtex-6 LXT - слишком дорого. Прекрасно понимаю, что цены на любые Virtex-6, по сравнению с тем же Spartan-6, - негуманные. Цитата(BlackOps @ Dec 22 2011, 11:06)  Но в общем: то что Koluchiy предлагал ето своего рода system synchronous interface , и в таком случае нужно особое внимание уделить разводке клока. А то что Boris_TS это вроде как source synchronous interface Именно так. Source Synchronous Interface позволяет развить большую скорость передачи данных, но требует синхронизирующих элементов в приёмных трактах. Цитата(BlackOps @ Dec 22 2011, 11:06)  я так понял что лучше это зависит от того как в целом плата будет спроектирована. У Xilinx есть неплохая, хоть и старенькая, книжка High-Speed Serial I/O Made Simple. Если Вы еще её не видели, то проглядите хотя бы начало – оно может натолкнуть Вас на некоторые мысли по улучшению канала связи между ПЛИС. Цитата(sazh @ Dec 22 2011, 11:21)  А кто нибудь 300 Мгц клок по плате гонял между двумя чипами? Ну мы "гоняем" на 500МГц: полный банк Virtex-6 <-> полный банк Virtex-6, LVDS 2.5V DDR, итого по каждой паре 1000МБит/с (Source Synchronous Interface)... Но опорные clock’и, на которых работает почти вся внутренняя логика, всё-таки через разветвители передаются - так clock чище.
|
|
|
|
|
Dec 22 2011, 17:24
|
Частый гость
 
Группа: Участник
Сообщений: 120
Регистрация: 21-07-11
Пользователь №: 66 348

|
Цитата(sazh @ Dec 22 2011, 10:21)  А кто нибудь 300 Мгц клок по плате гонял между двумя чипами? Ну мы гоняем между Spartan6-ми 300МГц в DDR по 10 парам. Работает.
|
|
|
|
|
Dec 22 2011, 23:36
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Я немного сомневаюсь, что без лвдса 300МГц Вы безошибочно прокачаете данные между плисками, я бы на Вашем месте попробовал завести один синхронизированный клок на обе плиски, а вот обмен между ними проводить на меньшей частоте распараллеливая и развязывая через ФИФО, но, если алгоритм это не позволяет, конечно придется разводить очень аккуратно, и, может Вам повезет.
Я недавно работал на системе с 4-мя бордами DE2 115 от Terasic, которые у меня были соединены по обычному 40пиновому штеккеру. Мне было достаточно организовать асинхронный броадкаст данных с каждой борды на все остальные, и для этого я использовал по 9 пинов - один клочный, и остальные датные. Все клочилось с одного 50МГц внешнего клока, а потом внутри каждой плиски повышалось до 200МГц. Обмен был развязан через ФИФО и клочился отдельно. Частотой обмена я игрался, меньше 40МГц ошибок не было, больше 50МГц уже были ошибки, больше 100МГц ошибок уже было так много, что работать было уже не возможно.
Использование 4-х таких борд я мотивировал теми же как и у Вас аргументами - 4 эти борды стоили мне меньше одной стратиковской борды, а суммарное число умножителей, простота их использования, и достигаемая скорость были выше чем на стратиксе. Но мне сильно повезло с алгоритмом, что я мог его очень ровно распараллелить.
|
|
|
|
|
Dec 23 2011, 04:43
|

Знающий
   
Группа: Свой
Сообщений: 618
Регистрация: 7-06-08
Из: USSR
Пользователь №: 38 121

|
ну примерно все ясно, читаю сейчас соответствующие доки. Значит такое дело:
В проекте планируется иметь один АЦП подключенный к основной ФПГА. Но это отдельная тема.
В проекте также есть несколько блоков имеющих выход из чипа через SPI, но это не проблема.
А также, есть один блок, скажем блок формирования изображения, который берет результаты работы всего алгоритма которые записаны в память БРАМ, и превращает их в изображение, которое в свою очередь подается на контроллер ЖК или чего еще пока не решено. т.е. в память БРАМ алгоритмом после завершения его работы пишется матрица размером 1024 х 1024, строка за строкой; каждая строка 1024 элемента; каждый элемент матрицы 32-битное число.
Блок формирования изображения формирует изображения из каждого значения строки матрицы определенным образом, проводя серию различных операций. Так вот, я примерно прикинул что если я этот блок формирования изображения из проекта вынесу, то все остальное в один ФПГА чип умещается вроде бы.
Ну тогда мне придется передавать из чипа только эту матрицу данных на другой чип, в котором будет реализован блок формирования изображения ну и контроллер дисплея, или на внешнее устройство записи итд..
т.к. элементы матрицы 32-битные, то используя диф-пары и LVDS нужно будет я так понял: * 64 сигнала для данных, +/- * eще два сигнала на положительный и отрицательный клок, * еще пару сигналов типа req/ack для синхронизации. Ну и посылаю тогда данные в режиме DDR. Рассмотреть просто нужно будет схему того как это на спартане6 реализовать.
учитывая такие детали, что думаете насчет данной реализации?
Ну а второй ФПГА (который может быть значительно поменьше) будет принимать данные в режиме DDR, и возможно будет использоватся элемент ISERDES.
--------------------
Нажми на кнопку - получишь результат, и твоя мечта осуществится
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|