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

 
 
> Spartan-2 и DDR RAM, у кого есть опыт сопряжения (Verilog)
Vitёk
сообщение Jun 14 2006, 11:01
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 272
Регистрация: 17-01-05
Из: Ростов-на-Дону
Пользователь №: 2 018



Имеются эти два девайса, подключенные один к другому. Тактовая частота ПЛИС равна 50 МГц. Можно заставить работать память на частоте 25 Мгц (данные тогда будут следовать со скоростью 50 Мслов/сек), но это не интересно. Интересно, используя удвоенную тактовую, получить скорость 100 Мслов/с.
Собственно, вопрос: каким образом, не используя FIFO, сопрячь две части схемы (50 и 100 МГц), что бы не было всяких логических состязаний и т.п.


--------------------
/* Всё хорошо в меру. */
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 23)
Black Pahan
сообщение Jun 14 2006, 11:15
Сообщение #2


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

Группа: Свой
Сообщений: 117
Регистрация: 21-07-05
Из: Новосибирск
Пользователь №: 6 978



1. ИМХО, без FIFO не получится.
2. Минимально домустимая частота тактирования DDR SDRAM 75МГц.


--------------------
Из того, что дуракам закон не писан, вовсе не следует, что они не принимают участия в их написании.
Go to the top of the page
 
+Quote Post
Vitёk
сообщение Jun 14 2006, 11:56
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 272
Регистрация: 17-01-05
Из: Ростов-на-Дону
Пользователь №: 2 018



2. Да, точно. Придётся учетверять.
1. А если учетверять, то на ФИФО будет действительно проще.

А вообще, на сколько на выходе DLL совпадают фронты сигналов одинарной и удвоеной частоты?


--------------------
/* Всё хорошо в меру. */
Go to the top of the page
 
+Quote Post
3.14
сообщение Jun 14 2006, 15:02
Сообщение #4


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Цитата
А вообще, на сколько на выходе DLL совпадают фронты сигналов одинарной и удвоеной частоты?
Ни насколько, разъехавшиеся будут как попало.


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
Black Pahan
сообщение Jun 14 2006, 16:24
Сообщение #5


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

Группа: Свой
Сообщений: 117
Регистрация: 21-07-05
Из: Новосибирск
Пользователь №: 6 978



Цитата(3.14 @ Jun 14 2006, 22:02) *
Цитата
А вообще, на сколько на выходе DLL совпадают фронты сигналов одинарной и удвоеной частоты?
Ни насколько, разъехавшиеся будут как попало.

Интересно... на Альтеровском PLL можно фазой выходных клоков рулить.


--------------------
Из того, что дуракам закон не писан, вовсе не следует, что они не принимают участия в их написании.
Go to the top of the page
 
+Quote Post
oval
сообщение Jun 14 2006, 16:53
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367



Цитата(3.14 @ Jun 14 2006, 19:02) *
Цитата
А вообще, на сколько на выходе DLL совпадают фронты сигналов одинарной и удвоеной частоты?
Ни насколько, разъехавшиеся будут как попало.


Позвольте не согласиться smile.gif

Если сигналы одинарной и удвоенной частоты беруться с выхода PLL (DLL), то фазы их соответствующих фронтов будут совпадать с достаточной степенью точности, чтобы можно было считать их синхронными, и при переходе между этими двумя доменами не требуется дополнительной логики синхронизации. Такая синхронизация фронтов является одной из функций блока PLL (DLL).
Go to the top of the page
 
+Quote Post
3.14
сообщение Jun 14 2006, 18:22
Сообщение #7


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Я особо не настаиваю smile.gif
Просто был опыт когда в проекте с учетверенной и удвоенной частотами, при включении примерно 1 к 20 раз, фазы были разъехавшимися. С тех пор я не экспериментировал, тупо получаю все из нивысшей.
Еще, учетверитель более чувствителен к шумам на входном сигнале, если удвоитель может как-то пережить даже кратковременное пропадание входной тактовой (без принудительного сброса) то учетверитель помирает при мелейших отклонениях. Одна из плат с учетверителем стала вырубаться пару раз в день, в итоге все вылилось во встраивание маленькогго частотомера на учетверенную частоту и в случае отсутствия генерировался сброс. Как оказалось позже на этой плате вместо 3.3В было ~3.1, сейчас склонен думать что причина была в этом.

PS Хотя, конечно незачем мне было так категорично утверждать ...


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
oval
сообщение Jun 15 2006, 10:10
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367



Цитата(3.14 @ Jun 14 2006, 22:22) *
Я особо не настаиваю smile.gif
Просто был опыт когда в проекте с учетверенной и удвоенной частотами, при включении примерно 1 к 20 раз, фазы были разъехавшимися. С тех пор я не экспериментировал, тупо получаю все из нивысшей.

Был однажды подобный случай, PLL была в виде отдельной микросхемы. Потом правда оказалось, что ее включили не правильно, но случаи разные бывают. Вообще такие вещи должны быть в документации четко указаны.

Цитата
Еще, учетверитель более чувствителен к шумам на входном сигнале, если удвоитель может как-то пережить даже кратковременное пропадание входной тактовой (без принудительного сброса) то учетверитель помирает при мелейших отклонениях. Одна из плат с учетверителем стала вырубаться пару раз в день, в итоге все вылилось во встраивание маленькогго частотомера на учетверенную частоту и в случае отсутствия генерировался сброс. Как оказалось позже на этой плате вместо 3.3В было ~3.1, сейчас склонен думать что причина была в этом.

Были всякие проблемы, и с питанием, и со стабильностью входного сигнала, но если все эти проблемы решить должным образом, то оказывается, что все очень неплохо работает. То есть считать выходные частоты синхронными можно. smile.gif
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jun 15 2006, 11:27
Сообщение #9


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

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(3.14 @ Jun 14 2006, 22:22) *
Просто был опыт когда в проекте с учетверенной и удвоенной частотами, при включении примерно 1 к 20 раз, фазы были разъехавшимися.

Если в качестве учетверителя используется выход FX, а в качестве удвоителя - 2X - то имеют право быть разъехавшимися. А 1x и 2x выходы строго синфазны.
Go to the top of the page
 
+Quote Post
Gorby
сообщение Jun 18 2006, 13:34
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 449
Регистрация: 28-10-04
Из: Украина
Пользователь №: 1 002



Вообще, Спартан-2 - не лучший выбор для контроллера ДДР.
В Спартане-2 нельзя регулировать фазовый сдвиг генерируемого ДЛЛ клока.
Что выливается в практическую невозможность застробировать данные при чтении, которые идут на 200 МГц. Нужный момент строба зависит от длины и нагрузки на шину данных. Кроме того, у этого Спартана нету DDR входных-выходных регистров, что сильно усложняет жизнь разработчику. У Ксилинкса есть Аппнота на ДДР контроллер на базе Спартан-2. Там все работает (разумеется, после правки напильником).

Гораздо лучше подойдет Спартан-3 или 3Е, они же и подешевле будут.

По поводу частоты. Стандарт JEDEC определяет нижнюю частоту ДДР памяти как 84 МГц. Что, однако, не мешает некоторым производителям делать ее еще ниже, например 75. Но нужно четко понимать, что далеко не все ДДР чипы будут работать на 75. Это связано с внутренним PLL чипа памяти. Он просто не рассчитан на низкие (менее 84 МГЦ в общем случае) частоты.

Однако же, и тут существует тайный трюк. Если завести микросхему памяти в отладочный режим (прописыванием определенного бита в конфигурационном слове), то внутренний PLL отключится, позволив памяти работать на низкой частоте. Разумеется, производитель категорически не рекомендует использовать такой способ и не гарантирует временные параметры. Но оно работает.


--------------------
Умею молчать на 37 языках...
Go to the top of the page
 
+Quote Post
Vitёk
сообщение Jun 19 2006, 06:42
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 272
Регистрация: 17-01-05
Из: Ростов-на-Дону
Пользователь №: 2 018



Цитата
Вообще, Спартан-2 - не лучший выбор для контроллера ДДР.
Абсолютно согласен. Но Спартан-3 не толлерантен к 5 вольтам, а мне нужно было обеспечить совместимость.

Цитата
В Спартане-2 нельзя регулировать фазовый сдвиг генерируемого ДЛЛ клока. Что выливается в практическую невозможность застробировать данные при чтении, которые идут на 200 МГц.
Мой коллега вышел из положения, стробируя тактовую ДДР по спаду внутренней CLK, а все остальные сигналы - по фронту. Можно попытаться использовать и такой фокус.

Цитата
Однако же, и тут существует тайный трюк. Если завести микросхему памяти в отладочный режим (прописыванием определенного бита в конфигурационном слове), то внутренний PLL отключится, позволив памяти работать на низкой частоте. Разумеется, производитель категорически не рекомендует использовать такой способ и не гарантирует временные параметры. Но оно работает.
А вот за это, батенька, огромное Вам спасибо. wink.gif Попробую в первую очередь. smile.gif


--------------------
/* Всё хорошо в меру. */
Go to the top of the page
 
+Quote Post
Black Pahan
сообщение Jun 19 2006, 07:04
Сообщение #12


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

Группа: Свой
Сообщений: 117
Регистрация: 21-07-05
Из: Новосибирск
Пользователь №: 6 978



2 Vitёk
Вам нужен поток 100Мслов/сек? Может вам обычным SDRAM'ом ограничиться?


--------------------
Из того, что дуракам закон не писан, вовсе не следует, что они не принимают участия в их написании.
Go to the top of the page
 
+Quote Post
andrew_b
сообщение Jun 19 2006, 07:35
Сообщение #13


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

Группа: Свой
Сообщений: 1 975
Регистрация: 30-12-04
Из: Воронеж
Пользователь №: 1 757



Цитата(DmitryR @ Jun 15 2006, 14:27) *
А 1x и 2x выходы строго синфазны.

Они, конечно, синфазны на выходе DLL. А потом-то они пропускаются через глобальные буфера, на выходах которых вся их синфазность пропадает.
Go to the top of the page
 
+Quote Post
Vitёk
сообщение Jun 19 2006, 08:24
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 272
Регистрация: 17-01-05
Из: Ростов-на-Дону
Пользователь №: 2 018



Цитата(Black Pahan)
Может вам обычным SDRAM'ом ограничиться?
Устройство уже собрано.
Собственно, основной обьём DDR памяти стоит на второй ПЛИС (V2-pro), и что бы не плодить номенклатуру, её же я поставил и на Spartan-2. При этом я отдавал себе отчёт, что придётся напрячься, но только один раз. smile.gif


--------------------
/* Всё хорошо в меру. */
Go to the top of the page
 
+Quote Post
oval
сообщение Jun 20 2006, 09:26
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367



Цитата(andrew_b @ Jun 19 2006, 11:35) *
Цитата(DmitryR @ Jun 15 2006, 14:27) *

А 1x и 2x выходы строго синфазны.

Они, конечно, синфазны на выходе DLL. А потом-то они пропускаются через глобальные буфера, на выходах которых вся их синфазность пропадает.


Да, это так. Даже для одного клока фазы прихода на разные элементы (триггеры) будут разными. Однако этот разбег фаз учитывается самим ISE Place&Route, то есть логически синфазность не нарушается.
Go to the top of the page
 
+Quote Post
3.14
сообщение Jun 20 2006, 12:56
Сообщение #16


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Цитата
Да, это так. Даже для одного клока фазы прихода на разные элементы (триггеры) будут разными. Однако этот разбег фаз учитывается самим ISE Place&Route, то есть логически синфазность не нарушается.
А Вы не преувеличиваете?
Одно дело учесть разбег при расчете полученых констрейнов.
А то получается что можно посадить тактовую на локальную линию, и пускай PAR разбег компенсирует smile.gif (фантастика).


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
oval
сообщение Jun 20 2006, 15:51
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367



Цитата(3.14 @ Jun 20 2006, 16:56) *
Цитата
Да, это так. Даже для одного клока фазы прихода на разные элементы (триггеры) будут разными. Однако этот разбег фаз учитывается самим ISE Place&Route, то есть логически синфазность не нарушается.
А Вы не преувеличиваете?
Одно дело учесть разбег при расчете полученых констрейнов.
А то получается что можно посадить тактовую на локальную линию, и пускай PAR разбег компенсирует smile.gif (фантастика).


Нет, не преувеличиваю smile.gif Чтобы убедиться в этом, достаточно внимательно посмотреть временной отчет P&R, а именно, как проверяется выполнение временных ограничений, какие составляющие используются в расчете пути. Все средства P&R, с которыми мне приходилось работать, учитывают разбег фаз между элементами и не только его в процессе расположения и разводки соединений. smile.gif Причем вне зависимости от того, глобальный ресурс используется под тактовую или нет.
Go to the top of the page
 
+Quote Post
3.14
сообщение Jun 20 2006, 19:14
Сообщение #18


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Ну в любом случае, надеятся что разбег на глобальной линии систавит менее 0.7нс (для Spartan2) не стоит, а использовать локальную линию в качестве тактовой для хотя-бы мало-мальского синхронного автомата просто самоубийство (можно разбег и в 5нс получить).


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
oval
сообщение Jun 21 2006, 09:07
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367



Цитата(3.14 @ Jun 20 2006, 23:14) *
Ну в любом случае, надеятся что разбег на глобальной линии систавит менее 0.7нс (для Spartan2) не стоит, а использовать локальную линию в качестве тактовой для хотя-бы мало-мальского синхронного автомата просто самоубийство (можно разбег и в 5нс получить).


Случалось, что по тем или иным причинам не было возможности использовать глобальные ресурсы для тактирования, использовали локальные. Таким образом тактировались и синхронные автоматы. То есть я хочу сказать, что ничего страшного в этом нет. При внимательном подходе все получается и работает smile.gif Ведь никакого теоретического противоречия в этом нет. Главное, чтобы необходимые времена выполнялись.
Go to the top of the page
 
+Quote Post
3.14
сообщение Jun 21 2006, 11:17
Сообщение #20


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Ну смотите, получили Вы разбег на локальной линии ~3нс, максимальный период для этой частоты период Вам выдаст PAR, а минимальный путь в этом частотном домене прийдется искать в ручную и смотреть не меньшне ли он этих самых 3нс (при желании можно задержку до тактового учитывать, но это уж черезчур геморойно). Повторять это при каждой итерации, занятие не для слабонервных.
Конечно ничего не поделаешь когда глобалов не осталось, но это уже игра в рулетку получается.
Или Вы знаете путь проще?


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
oval
сообщение Jun 21 2006, 11:52
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367



Цитата(3.14 @ Jun 21 2006, 15:17) *
Ну смотите, получили Вы разбег на локальной линии ~3нс, максимальный период для этой частоты период Вам выдаст PAR, а минимальный путь в этом частотном домене прийдется искать в ручную и смотреть не меньшне ли он этих самых 3нс (при желании можно задержку до тактового учитывать, но это уж черезчур геморойно). Повторять это при каждой итерации, занятие не для слабонервных.
Конечно ничего не поделаешь когда глобалов не осталось, но это уже игра в рулетку получается.
Или Вы знаете путь проще?


Если я правильно понял, то здесь речь идет об анализе минимальных задержек. Если это так, то и этот процесс выполняется P&R автоматически, то есть вручную за этим следить также не требуется. P&R учтет все автоматически. То есть P&R всегда рассматривает как худший, так и лучший случай. Например, Actel Timing Analyzer предоставляет возможность анализа как максимальных задержек, так и минимальных. Кстати, например, для семейства Actel ProASICPlus разбег фазы тактового сигнала в 3-5 нс, даже при использовании глобальной цепи, совершенно нормальное явление smile.gif
Go to the top of the page
 
+Quote Post
3.14
сообщение Jun 21 2006, 13:02
Сообщение #22


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Цитата
Если я правильно понял, то здесь речь идет об анализе минимальных задержек. Если это так, то и этот процесс выполняется P&R автоматически, то есть вручную за этим следить также не требуется. P&R учтет все автоматически.
Вот тут я с Вами не согласен, ничего он не учтет (по крайней мере для Xilinx), просто скажет какой разбег получился, а дальше думай сам ...
Ползание по отчетам Timing Analyzer требует тучу времени, хотя конечно имеется констрейн MAXSEW но его значение приходится ставить от балды (по описанным выше причинам).


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
oval
сообщение Jun 21 2006, 16:43
Сообщение #23


Местный
***

Группа: Свой
Сообщений: 265
Регистрация: 15-03-05
Из: Москва
Пользователь №: 3 367



Цитата
Вот тут я с Вами не согласен, ничего он не учтет (по крайней мере для Xilinx), просто скажет какой разбег получился, а дальше думай сам ...
Ползание по отчетам Timing Analyzer требует тучу времени, хотя конечно имеется констрейн MAXSEW но его значение приходится ставить от балды (по описанным выше причинам).


То есть Вы хотите сказать, что P&R способен учесть заданные пользователем временные ограничения (констрейны), постараться выжать максимальную частоту работы схемы, но при этом совершенно не способен выполнить гораздо более элементарную задачу по учету разбега клока, да еще и со всеми известными параметрами. smile.gif Странно как-то получается. Не находите?

Чем ситуация лучше (в отношении разбега фаз клока) при использовании глобальной цепи? Там разбег тоже не учитывается?

Вообщем, могу сказать только одно, работая с Xilinx, ошибок, связанных с разбегом фаз клока на разных элементах, не встречал ни разу, связанных с задержкой путей, сколько угодно. Встречал такое при работе с Actel, но это единичные случаи, да и P&R у Actel гораздо менее интеллектуальный.
Go to the top of the page
 
+Quote Post
3.14
сообщение Jun 21 2006, 18:27
Сообщение #24


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Именно, и не вижу ничего странного как и "более элементарную задачу по учету разбега клока" и компенсации его в коротких путях, но это мы уже начали воздух сотрясать.
Ситуация с глобалом лучше тем что разбег больше 1нс не будет (да и то на разных сторонах кристалла), у соседних слайсов он гораздо меньше будет, ну а в случае даже со сдвиговым регнистром минимальный путь по локальной линии между соседними слайсами будет ближе к 1нс.
Далее, откуда такая уверенность что у Вас не было проблем из-за разбега?
У меня на в разных проектах имелись модули у которых тактовая была на локале, это самые глючные модули в смысле непредсказуемости их работы при очередной итерации разводки проекта. Например, счетчики перестают считать и т.п. , при этом HDL модулей не меняется. Ситуация обостряется с ростом процента заполненности кристалла (приходилось постоянно мудрить с усилием и настройками PAR). При этом ест-но все констрейны выполняются, а вот MAXSKEW как правило меньше 2нс не выходит.


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 22:12
Рейтинг@Mail.ru


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