des00 25 14 сентября, 2011 Опубликовано 14 сентября, 2011 · Жалоба Добрый день уважаемые гуру!! Делаю что-то, отдаленно похожее на http://www.mvd-fpga.com/cores/en/up_converter_overview.html использую ЦАП AD9739A, с частотой оцифровки 2.5ГГц. Интерфейс в ЦАПе : двух канальный LVDS DDR, что требует частоты 625МГц на канал. По даташитам для стратикса 4 спидгрейта 3 тактовое дерево может работать на частотах до 717 МГц, как бы не вижу проблем что бы выдать через ддр регистры поток на частоте 625МГЦ, но в даташите указано достаточно вольно All Stratix IV E, GX, and GT devices have built-in serializer/deserializer (SERDES) circuitry that supports high-speed LVDS interfaces at data rates of up to 1.6 Gbps. SERDES circuitry is configurable to support source-synchronous communication protocols such as Utopia, Rapid I/O, XSBI, small form factor interface (SFI), serial peripheral interface (SPI), and asynchronous protocols such as SGMII and Gigabit Etherne Так можно ли вытащить ДДР поток на частоте 625 МГц без SERDES ? Ответ на этот вопрос в документации не нашел. Может кто делал что-то подобное? Спасибо! UPD. или отложить стратикс 4 и поставить виртекс 6 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
disel 0 14 сентября, 2011 Опубликовано 14 сентября, 2011 · Жалоба А почему SERDES не хотите использовать никак не пойму? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vpd 0 14 сентября, 2011 Опубликовано 14 сентября, 2011 · Жалоба 1. А чего пишут про скорость DDR памяти? Какая там частота предельная для DDR? 2. А если взять ddr_io и собрать на них шину на 625 МГц, что на это Timing Analyzer говорит? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 14 сентября, 2011 Опубликовано 14 сентября, 2011 · Жалоба А почему SERDES не хотите использовать никак не пойму? 1. При генерации корки SERDES с параметрами channel number = 1, deserialiation factor = 2, она вырождается в ддр триггер занимающий один stratix_io %) 1. А чего пишут про скорость DDR памяти? Какая там частота предельная для DDR? DDR3 up to 1,067 Mbps/533 MHz, отчасти поэтому и занятно стало 2. А если взять ddr_io и собрать на них шину на 625 МГц, что на это Timing Analyzer говорит? до этого еще не дошел %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
disel 0 14 сентября, 2011 Опубликовано 14 сентября, 2011 · Жалоба 1. При генерации корки SERDES с параметрами channel number = 1, deserialiation factor = 2, она вырождается в ддр триггер занимающий один stratix_io %) Это понятно, зато с SERDES можно работать не на 625, а на 312,5 мгц. Timing Analyzer меньше напрягаться будет. А SERDES там все равно есть. Понятно если бы его не было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 14 сентября, 2011 Опубликовано 14 сентября, 2011 · Жалоба Насколько я смог вкурить даташит, там в I/O есть параллельно SERDES, который не умеет DDR, и пара DDR регистров. Поэтому IMHO надо поставить ALT_DDIO, а на каждый вход ему - сериализатор 7:1 на логике (просто сдвиговый регистр). Его правда придется ручками скорее всего зафиксировать, чтоб он на 625 пошел, но думаю реально. Это понятно, зато с SERDES можно работать не на 625, а на 312,5 мгц. Вы возможно не поняли, нужно 625 DDR = 1,25 Gbps на каждом канале. Было бы 312 - не стоял бы вопрос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vpd 0 14 сентября, 2011 Опубликовано 14 сентября, 2011 · Жалоба Цены вот только что-то уж очень разочаровывают, особенно на GT... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
disel 0 14 сентября, 2011 Опубликовано 14 сентября, 2011 · Жалоба Вы возможно не поняли, нужно 625 DDR = 1,25 Gbps на каждом канале. Было бы 312 - не стоял бы вопрос. Вполне понял. Сериализатор 4 -> 1 при работе на частоте 312,5МГц и дает искомые 1,25 ГБита. Я не очень понял зачем заставлять схему в плисе работать на частоте 625 МГц. Экономия ресурсов конечно имеет место быть, но проблемы с выполнением констрейнов мне кажется этого не стоят. ЗЫ. Этот цап уже около года юзаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladimirB 1 14 сентября, 2011 Опубликовано 14 сентября, 2011 · Жалоба ... UPD. или отложить стратикс 4 и поставить виртекс 6 ? 625 МГц мне кажется даже для Стратихса4 многовато. А с сердезами на 8 потоков по 312МГц у нас такая гравицапа на даже на Virtex5 VSX35 (2й скорости) завелась. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 15 сентября, 2011 Опубликовано 15 сентября, 2011 · Жалоба Вполне понял. Сериализатор 4 -> 1 при работе на частоте 312,5МГц и дает искомые 1,25 ГБита. Я не очень понял зачем заставлять схему в плисе работать на частоте 625 МГц. 625 МГц мне кажется даже для Стратихса4 многовато. А с сердезами на 8 потоков по 312МГц у нас такая гравицапа на даже на Virtex5 VSX35 (2й скорости) завелась. Если я правильно понял, вы сделали так : с цапа заходит 625МГц идет на PLL, на ней получаете 312.5 и 1250 МГц, работаете по 8 ми фазам 312,5, собираете 8 фаз в виде 2х4 и в порт, где SERDES работает на 1250. Мне тут непонятны вот какие моменты : 1. У стратиксов, судя по даташиту DDR регистры на выходе SERDES не используются. 2. Если DDR не используются значит по тактовому дереву нужно тащить 1.25 ГГц, тогда как по даташиту оно держит всего 717/800МГц. 3. На передатчик нужно сразу угрохать одну ПЛЛ. Хотя все можно сделать проще, взять 625МГц, пропустить через PLL, на которой получить 312,5, взять 8 фаз по 312.5, собрать логику (на одном LE 2в1 мукс) которая делает 4 фазы по 625 (логика у стратикса должна работать на таких частотах) и выплюнуть через DDR регистр наружу (625 МГц по глобальной тактовой линии должны пролезть). Решение как бы проще, без сердесов, плл и т.д. но вот почему об этом в даташите ни слова. ЗЫ. взял мегавизард, сгенерировал корку ALTVDS с параметрами : 14 каналов, deserialization 4в1, inclock/datarate/outclock = 312,5/1250/625MHz, PLL внутри корки, чип i3, TQ дает ошибку внутри SERDES, при передачи сигнала из домена частоты 312.5МГц в домен 1250МГц %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
disel 0 15 сентября, 2011 Опубликовано 15 сентября, 2011 · Жалоба Если я правильно понял, вы сделали так : с цапа заходит 625МГц идет на PLL, на ней получаете 312.5 и 1250 МГц, работаете по 8 ми фазам 312,5, собираете 8 фаз в виде 2х4 и в порт, где SERDES работает на Все так кроме частот ПЛЛ. У меня Virtex6, поэтому про альтеру ничем помочь не могу. На его сердес работающий в режиме 4 в 1 подается 500 МГц (у меня частота ниже - 2000 мсемплов ). Поэтому ничего страшного по клоковому дереву не ходит. 1. У стратиксов, судя по даташиту DDR регистры на выходе SERDES не используются. 2. Если DDR не используются значит по тактовому дереву нужно тащить 1.25 ГГц, тогда как по даташиту оно держит всего 717/800МГц. 3. На передатчик нужно сразу угрохать одну ПЛЛ. Спасибо, понял причину вопроса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 15 сентября, 2011 Опубликовано 15 сентября, 2011 · Жалоба Хотя все можно сделать проще, взять 625МГц, пропустить через PLL, на которой получить 312,5, взять 8 фаз по 312.5, собрать логику (на одном LE 2в1 мукс) которая делает 4 фазы по 625 (логика у стратикса должна работать на таких частотах) и выплюнуть через DDR регистр наружу (625 МГц по глобальной тактовой линии должны пролезть). Решение как бы проще, без сердесов, плл и т.д. но вот почему об этом в даташите ни слова. собрал тестовый проектик module test (input iclk, output [13 : 0] odat, output oclk); wire locked, clk2, clk; pll pll (1'b0, iclk, clk, clk2, locked); reg [55:0] tx_in; always_ff @(posedge clk) begin tx_in[13 : 0] <= tx_in[13 : 0] + 1'b1; tx_in[27 : 14] <= tx_in[27 : 14] + 1'b1; tx_in[41 : 28] <= tx_in[41 : 28] + 1'b1; tx_in[55 : 42] <= tx_in[55 : 42] + 1'b1; end reg ff; reg [27:0] tx_in_reg; always_ff @(posedge clk2) begin ff <= ~ff; tx_in_reg <= ff ? tx_in[55 : 28] : tx_in[27 : 0]; end ddr ddr ( .aclr ( 1'b0), .datain_h (tx_in_reg[27 : 14]), .datain_l (tx_in_reg[13 : 0]), .outclock (clk2), .dataout (odat)); endmodule времянки выполнились, но оказывается если i3 заморозить, то максимальная нагрузка на тактовое дерево 616МГц (!!!) %( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 15 сентября, 2011 Опубликовано 15 сентября, 2011 · Жалоба Вполне понял. Сериализатор 4 -> 1 при работе на частоте 312,5МГц и дает искомые 1,25 ГБита. Да, беда только что Stratix IV так работать не умеет: на выходе сериализатора у него нет DDR, а максимально поддерживаемая частота - 800. Я не очень понял зачем заставлять схему в плисе работать на частоте 625 МГц. А потому что кроме сериализатора без DDR есть только одна пара DDR регистров. Аппаратный сериализатор объединить с DDR последовательно я не вижу возможности ни по даташиту, ни по параметрам соответствующих мегафункций. И буду рад если кто объяснит мне, что тут я ошибаюсь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladimirB 1 15 сентября, 2011 Опубликовано 15 сентября, 2011 · Жалоба Если я правильно понял, вы сделали так : с цапа заходит 625МГц идет на PLL, на ней получаете 312.5 и 1250 МГц, работаете по 8 ми фазам 312,5, собираете 8 фаз в виде 2х4 и в порт, где SERDES работает на 1250. Мне тут непонятны вот какие моменты : 1. У стратиксов, судя по даташиту DDR регистры на выходе SERDES не используются. 2. Если DDR не используются значит по тактовому дереву нужно тащить 1.25 ГГц, тогда как по даташиту оно держит всего 717/800МГц. 3. На передатчик нужно сразу угрохать одну ПЛЛ. ... У Xilinx на Virtex 5,6 возможны два варианта и оба работают: 1) C ЦАПА 625 МГц через глобальный клок на PLL, с неё 312.5МГц на FPGA фабрику для работы всей логики и 625МГц на 2 массива SERDESов 4 в 1, работающих в DDR режиме (в отличии от Альтеры). 2) С ЦАПа 625 МГц через локальный клок на BUFIO, от которого работают DDR SERDESы 4 в 1 и одновременно 625МГЦ подаётся на региональный клоковый буфер BUFR, который делит такт в два раза до 312.5МГц (или любое другое число раз) и тактирует клоковый регион Виртекса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 15 сентября, 2011 Опубликовано 15 сентября, 2011 · Жалоба Да, беда только что Stratix IV так работать не умеет: на выходе сериализатора у него нет DDR, а максимально поддерживаемая частота - 800. осталось только выяснить с какого перепугу альтера пишет что High-speed LVDS I/O support with serializer/deserializer (SERDES), dynamic phase alignment (DPA), and soft-CDR circuitry at data rates up to 1.6 Gbps У Xilinx на Virtex 5,6 возможны два варианта и оба работают: спасибо, посмотрю на виртексы 6 и потрясу дистрибьюторов насчет скидок %) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться