BlackOps 0 22 декабря, 2011 Опубликовано 22 декабря, 2011 · Жалоба Предположим есть уже большой проект который не умещается на один Спартан6 чип, и планируется разместить два Спартан6 чипа на плате, а проект разделить так чтобы уместить всю логику на два чипа. Возможна например такая схема: ФПГА 1 Принимает входной клок 100МГц от резонатора на плате, внутри имеет DCM выдающий 300МГц клок для всей рабочей логики на этом чипе, а также этот 300МГц клок от DCM подается на выход чипа и как вход основного клока на ФПГА 2. Ну а ФПГА 2 принимает этот 300МГц клок и использует его как основной клок для своей логики. Итого возможно будет около 70-90 сигналов между двумя чипами обменивающиеся данными на скорости до 300МГц. Также внутри обоих чипов есть отдельные блоки работающие на других частотах и использующих дополнительные DCM, ну а вобщем вся логика на обеих чипах должна работать синхронно на частоте 300МГц. Это нормально или есть предложения как можно получше это организовать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 22 декабря, 2011 Опубликовано 22 декабря, 2011 · Жалоба По какому стандарту планируется соединить ПЛИС (LVDS?) и как будет выглядеть интерфейс соединения? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 22 декабря, 2011 Опубликовано 22 декабря, 2011 · Жалоба Как-то это очень стремно выглядит. На мой взгляд, есть смысл поделить проект так, чтобы не было необходимости таскать между микросхемами высокоскоростные данные, причем СТОЛЬКО. ФПГА 1 Принимает входной клок 100МГц от резонатора на плате, внутри имеет DCM выдающий 300МГц клок для всей рабочей логики на этом чипе, а также этот 300МГц клок от DCM подается на выход чипа и как вход основного клока на ФПГА 2 Не лучше ли от одного генератора запитать обе через "размножитель" тактовых сигналов? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 22 декабря, 2011 Опубликовано 22 декабря, 2011 · Жалоба ИМХО, при ценовой политке хилых, проще взять чип большего объема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
eugen_pcad_ru 0 22 декабря, 2011 Опубликовано 22 декабря, 2011 · Жалоба Если уж 0чень прижмет, то можно, но лучше действительно взять чип побольше Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 8 22 декабря, 2011 Опубликовано 22 декабря, 2011 · Жалоба Предположим есть уже большой проект который не умещается на один Спартан6 чип, и планируется разместить два Спартан6 чипа на плате, а проект разделить так чтобы уместить всю логику на два чипа.Если у Вас изделие производится ограниченным тиражом, то, возможно, дешевле (с учётом затрат на создание и отладку стыка между двумя Spartan-6) поставить один Virtex-6 CXT. Не лучше ли от одного генератора запитать обе через "размножитель" тактовых сигналов?Я думаю лучше всё-таки не разветвлять clock. Т.к. с передаваемыми данными всё равно необходимо будет передавать clock - иначе, из-за разбросов в Global clock distribution network, высокоскоростные данные не получится надёжно передавать. Так зачем же еще один clock передавать ? А еще лучше вообще ничего не передавать, а, как и говорил des00, взять ПЛИС большего объёма, если таковые имеются в семействе Spartan-6. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BlackOps 0 22 декабря, 2011 Опубликовано 22 декабря, 2011 · Жалоба Насчет большего объема девайса врядли, максимальный спартан6 уже выбран. А на виртекс переходить это дорого. Есть еще вариант оптимизировать проект, столько различных сигналов между чипами это на самом деле нето... посмотрим. Но в общем: то что Koluchiy предлагал ето своего рода system synchronous interface , и в таком случае нужно особое внимание уделить разводке клока. А то что Boris_TS это вроде как source synchronous interface я так понял что лучше это зависит от того как в целом плата будет спроектирована. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 22 декабря, 2011 Опубликовано 22 декабря, 2011 · Жалоба ФПГА 1 Принимает входной клок 100МГц от резонатора на плате, внутри имеет DCM выдающий 300МГц клок для всей рабочей логики на этом чипе, а также этот 300МГц клок от DCM подается на выход чипа и как вход основного клока на ФПГА 2. А кто нибудь 300 Мгц клок по плате гонял между двумя чипами? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bogaev_roman 0 22 декабря, 2011 Опубликовано 22 декабря, 2011 · Жалоба А кто нибудь 300 Мгц клок по плате гонял между двумя чипами? Я гонял 330 для stratix4 с 18-разярядными данными по lvds и 5 чипов(частота данных 660), в перспективе 500МГц должно быть. При этом на большой загрузке линии обнаружилась ошибка по CRC на 3 день :) Но тактовая все равно общая была и шла от одного генератора, данные слались с локальной синхрочастотой. Разводкой занимались специальные люди и довольно долго (у них там жесткие требования были). Проще сделать именно то, советовали Выше - заменить на virtex. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 22 декабря, 2011 Опубликовано 22 декабря, 2011 · Жалоба Я думаю лучше всё-таки не разветвлять clock. Т.к. с передаваемыми данными всё равно необходимо будет передавать clock - иначе, из-за разбросов в Global clock distribution network, высокоскоростные данные не получится надёжно передавать. Так зачем же еще один clock передавать ? Ну, детали интерфейса и алгоритма работы вообще не конкретизированы. Суть в том, что если питать 2-ю микросхему клоком 300МГц от 1-й, это создаст 1) Сдвиг по фазе между клоками 2-х микросхем. Он в любом случае будет, но его можно минимизировать. Насколько он критичен в данном проекте - ХЗ. 2) Дополнительные джиттеры/шумы/искажения на клоке, питающем 2-ю микросхему. Так что, на мой взгляд, в любом случае лучше дать в обе микросхемы 100МГц и умножать самостоятельно. Клоки при передаче данных между интерфейсами - другая песня, в зависимости от интерфейса они могут приходить на разные ноги, и не всегда на те, с которых оптимально питать глобальные тактовые цепи, пллки и т.п. (уже не очень помню S6, но помню, что там хитро). Но в общем: то что Koluchiy предлагал ето своего рода system synchronous interface , и в таком случае нужно особое внимание уделить разводке клока. Мои слова относятся исключительно к подаче опорных тактовых на обе микросхемы, а не к каким-то интерфейсным делам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Beby 8 22 декабря, 2011 Опубликовано 22 декабря, 2011 · Жалоба Насчет большего объема девайса врядли, максимальный спартан6 уже выбран. А на виртекс переходить это дорого.Еще разок обращу Ваше внимание на Virtex-6 CXT - это удешевлённая серия: Virtex-6 CXT заметно дешевле, чем Virtex-6 LXT. Собственно, Xilinx и позиционирует Virtex-6 CXT как ПЛИС для тех, кого выперло за Spartan-6, а Virtex-6 LXT - слишком дорого. Прекрасно понимаю, что цены на любые Virtex-6, по сравнению с тем же Spartan-6, - негуманные. Но в общем: то что Koluchiy предлагал ето своего рода system synchronous interface , и в таком случае нужно особое внимание уделить разводке клока. А то что Boris_TS это вроде как source synchronous interface Именно так. Source Synchronous Interface позволяет развить большую скорость передачи данных, но требует синхронизирующих элементов в приёмных трактах. я так понял что лучше это зависит от того как в целом плата будет спроектирована.У Xilinx есть неплохая, хоть и старенькая, книжка High-Speed Serial I/O Made Simple. Если Вы еще её не видели, то проглядите хотя бы начало – оно может натолкнуть Вас на некоторые мысли по улучшению канала связи между ПЛИС. А кто нибудь 300 Мгц клок по плате гонял между двумя чипами?Ну мы "гоняем" на 500МГц: полный банк Virtex-6 <-> полный банк Virtex-6, LVDS 2.5V DDR, итого по каждой паре 1000МБит/с (Source Synchronous Interface)... Но опорные clock’и, на которых работает почти вся внутренняя логика, всё-таки через разветвители передаются - так clock чище. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ivanoffer 0 22 декабря, 2011 Опубликовано 22 декабря, 2011 · Жалоба А кто нибудь 300 Мгц клок по плате гонял между двумя чипами? Ну мы гоняем между Spartan6-ми 300МГц в DDR по 10 парам. Работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 29 22 декабря, 2011 Опубликовано 22 декабря, 2011 · Жалоба Я немного сомневаюсь, что без лвдса 300МГц Вы безошибочно прокачаете данные между плисками, я бы на Вашем месте попробовал завести один синхронизированный клок на обе плиски, а вот обмен между ними проводить на меньшей частоте распараллеливая и развязывая через ФИФО, но, если алгоритм это не позволяет, конечно придется разводить очень аккуратно, и, может Вам повезет. Я недавно работал на системе с 4-мя бордами DE2 115 от Terasic, которые у меня были соединены по обычному 40пиновому штеккеру. Мне было достаточно организовать асинхронный броадкаст данных с каждой борды на все остальные, и для этого я использовал по 9 пинов - один клочный, и остальные датные. Все клочилось с одного 50МГц внешнего клока, а потом внутри каждой плиски повышалось до 200МГц. Обмен был развязан через ФИФО и клочился отдельно. Частотой обмена я игрался, меньше 40МГц ошибок не было, больше 50МГц уже были ошибки, больше 100МГц ошибок уже было так много, что работать было уже не возможно. Использование 4-х таких борд я мотивировал теми же как и у Вас аргументами - 4 эти борды стоили мне меньше одной стратиковской борды, а суммарное число умножителей, простота их использования, и достигаемая скорость были выше чем на стратиксе. Но мне сильно повезло с алгоритмом, что я мог его очень ровно распараллелить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
BlackOps 0 23 декабря, 2011 Опубликовано 23 декабря, 2011 · Жалоба ну примерно все ясно, читаю сейчас соответствующие доки. Значит такое дело: В проекте планируется иметь один АЦП подключенный к основной ФПГА. Но это отдельная тема. В проекте также есть несколько блоков имеющих выход из чипа через SPI, но это не проблема. А также, есть один блок, скажем блок формирования изображения, который берет результаты работы всего алгоритма которые записаны в память БРАМ, и превращает их в изображение, которое в свою очередь подается на контроллер ЖК или чего еще пока не решено. т.е. в память БРАМ алгоритмом после завершения его работы пишется матрица размером 1024 х 1024, строка за строкой; каждая строка 1024 элемента; каждый элемент матрицы 32-битное число. Блок формирования изображения формирует изображения из каждого значения строки матрицы определенным образом, проводя серию различных операций. Так вот, я примерно прикинул что если я этот блок формирования изображения из проекта вынесу, то все остальное в один ФПГА чип умещается вроде бы. Ну тогда мне придется передавать из чипа только эту матрицу данных на другой чип, в котором будет реализован блок формирования изображения ну и контроллер дисплея, или на внешнее устройство записи итд.. т.к. элементы матрицы 32-битные, то используя диф-пары и LVDS нужно будет я так понял: * 64 сигнала для данных, +/- * eще два сигнала на положительный и отрицательный клок, * еще пару сигналов типа req/ack для синхронизации. Ну и посылаю тогда данные в режиме DDR. Рассмотреть просто нужно будет схему того как это на спартане6 реализовать. учитывая такие детали, что думаете насчет данной реализации? Ну а второй ФПГА (который может быть значительно поменьше) будет принимать данные в режиме DDR, и возможно будет использоватся элемент ISERDES. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DAV 0 23 декабря, 2011 Опубликовано 23 декабря, 2011 · Жалоба Недавно изучали одно изделия, так там между Циклонами3 с 8 по скорости гоняли LVDS сигналы примерно на 600 МГц по одной шине в обе стороны и работает. Как согласовано на 25 см и через разъём PCI непонятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться