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

 
 
> Трассировка SDRAM нужна консультация
asen
сообщение Nov 22 2006, 07:09
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 513
Регистрация: 5-09-05
Из: Барнаул
Пользователь №: 8 220



Вот надо развести внешнию шину на 133МГц расположение планирую сделать таким Проц -> резисторная сборка 33 Ом -> 2 корпуса SDRAM -> 2 корпуса ПЗУ -> FPGA. ОЗУ работает на 133 мегагерцах ПЗУ медленее. Вот вопрос к знающим людям какой разброс допустим на участке SDRAM - CPU и влияют ли участки дарожек расположенные дальше от проца чем SDRAM на работу этого самого SDRAM.

PS: Где взять програмки для того чтобы все это просимулировать может есть на местном FTP никто не поделится.
Go to the top of the page
 
+Quote Post
5 страниц V  « < 2 3 4 5 >  
Start new topic
Ответов (45 - 59)
Paul
сообщение Dec 5 2006, 15:08
Сообщение #46


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 9-08-04
Из: /home/gentoo
Пользователь №: 470



Цитата(Artem-1.6E-19 @ Dec 5 2006, 14:36) *
Цитата(Paul @ Dec 5 2006, 13:12) *

МИНИМАЛЬНОЙ РАБОЧЕЙ КОНФИГУРАЦИИ В ТЕПЛИЧНЫХ УСЛОВИЯХ.

Я бы так не сказал. Он пишет что критично и что не критично. "Звон" по линиям связи это тоже критично. Но не стоит забывать, что рассчитав таким вот образом импеданс, чтобы он был в реальности, придется и печатные платы делать с контролем импеданса. Иначе все эти моделирования смысла не имеют.

Во-первых: контроль импеданса проводника заказать не проблема и получить его с точностью не хуже +-7 Ом.
Во-вторых речь шла об импедансе системы распределения питания, а это немного другое. Этот импеданс складывается из распределенного ESR пары питающих слоев и сосредоточенных ESR подключенных к ним конденсаторов.
В-третьих разговор идет не о "критично - не критично", а о том, что при разработке надо СЧИТАТЬ САМОМУ, а не надеяться, что дядя посчитал правильно. Дядя не будет нести ответственность за проваленный проект.
Go to the top of the page
 
+Quote Post
Artem-1.6E-19
сообщение Dec 5 2006, 15:31
Сообщение #47


Местный
***

Группа: Новичок
Сообщений: 266
Регистрация: 29-11-06
Пользователь №: 22 905



Цитата(Paul @ Dec 5 2006, 14:08) *
Цитата(Artem-1.6E-19 @ Dec 5 2006, 14:36) *

Цитата(Paul @ Dec 5 2006, 13:12) *

МИНИМАЛЬНОЙ РАБОЧЕЙ КОНФИГУРАЦИИ В ТЕПЛИЧНЫХ УСЛОВИЯХ.

Я бы так не сказал. Он пишет что критично и что не критично. "Звон" по линиям связи это тоже критично. Но не стоит забывать, что рассчитав таким вот образом импеданс, чтобы он был в реальности, придется и печатные платы делать с контролем импеданса. Иначе все эти моделирования смысла не имеют.

Во-первых: контроль импеданса проводника заказать не проблема и получить его с точностью не хуже +-7 Ом.
Во-вторых речь шла об импедансе системы распределения питания, а это немного другое. Этот импеданс складывается из распределенного ESR пары питающих слоев и сосредоточенных ESR подключенных к ним конденсаторов.
В-третьих разговор идет не о "критично - не критично", а о том, что при разработке надо СЧИТАТЬ САМОМУ, а не надеяться, что дядя посчитал правильно. Дядя не будет нести ответственность за проваленный проект.

В принципе можно посчитать как ESR сопротивления конденсаторов, которые висят на питающих выводов каждой из микросхем. Это проще и надежнее, так как проще с индуктивностью внутренних слоев. Это раз. А два, то такие провалы очень хорошо видны осцилографом, и в принципе, даже если есть очень большой ляп, то перепаять конденсаторы не проблема. Ну а три, так ни разу не видел, чтобы дядя давал четкие рекомендации по номиналу и типу конденсаторов. Рискну предположиь, что если таких рекомендаций нет, и написано что любой конденсатор на 100 нан, на каждую пару питание/земля то можно не заморачиваться рассчетами а ставить по конденсатору на каждую пару.
Go to the top of the page
 
+Quote Post
sff
сообщение Dec 5 2006, 17:05
Сообщение #48


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

Группа: Свой
Сообщений: 172
Регистрация: 23-04-06
Пользователь №: 16 404



Вернёмся к А12.. smile.gif

Цитата(Paul @ Dec 5 2006, 09:25) *
Как я уже говорил ранее сигнал A12 надо серьезно править. Никакие ужимки и прыжки тут не помогут, а рассуждения типа clamp-diode сожрут выбросы и не парься надо считать околонаучным трепом. Диоды эти еще и выгорать умеют, если превышен Absolute Maximum Ratings. На шине A12 весьма серьезный звон, никакие конденсаторы и земляные лепестки не помогут. Звон создают подключенные по ходу шины входы микросхем. Для первой пробы можно в режиме LineSim добавить последовательное согласование на драйвере, если не поможет, попытаться отвязать резисторами от шины входы микросхем - это позволит уменьшить отражения по ходу шины.


Итак поэкспериментровал я с последовательными сопротивлениями.
Поставил после U2 (R1) и перед флэшкой (R2).. Флешке-то (U18) 133 mhz не нужно =)
HyperLynx рассчитал R1=51 R2=47 .. многова-то для R1 в итоге rise & fall time явно неприемлимы
Прикрепленное изображение

Поигрался с R1 и R2 стала, конечно, линия не соглосована
Прикрепленное изображение

но характеристики получше


Цитата(Paul @ Dec 5 2006, 09:25) *
По горизонтали ограничение ставится согласно диаграмме работы девайса. Используются времена Tsetup, Thold. Отсчет идет относительно фронта тактового сигнала.

А поподробнее можно... ?

в Datasheet к Micron' у сказано
Address hold time tAH min 0.8 ns
Address setup time tAS min 1.5 ns

Клок я понимаю настолько ужасен, что неприлично показывать...
(Это через сопротивление в 51 ом)
Прикрепленное изображение


В даташите
CLK high-level width tCH min 2.5 ns
CLK low-level width tCL min 2.5
Может сделать трассу для него пошире? как его можно улучшить

и если переразводить то как лучше?
Go to the top of the page
 
+Quote Post
Artem-1.6E-19
сообщение Dec 5 2006, 17:47
Сообщение #49


Местный
***

Группа: Новичок
Сообщений: 266
Регистрация: 29-11-06
Пользователь №: 22 905



Цитата(sff @ Dec 5 2006, 16:05) *
В даташите
CLK high-level width tCH min 2.5 ns
CLK low-level width tCL min 2.5
Может сделать трассу для него пошире? как его можно улучшить

У вас примерно столько и получается. (ну почти).
Вы, вообще, считали волновое сопротивление шин? Или что вы подразумеваете под "трассой?
Цитата
и если переразводить то как лучше?

Меня наверное опять будут ругать, но посмотрите на материнках. Поищите старые, где PC-100 находится, сдуйте с них все микросхемы, и просто посмотрите.
Общие правила, это без резких изгибов, плавно, чтобы все линии были примерно одинаковой длинны итд. У меня была всего одна СДРАМина, и растояние до нее было "в плотную". Вам я могу посоветовать разводить так, чтобы линии были примерно одинакогой длинны. Чтобы ширина линий была не от фонаря (посчитайте волновое сопротивление). В общем, посмотрите на видеокарточке.
Go to the top of the page
 
+Quote Post
Paul
сообщение Dec 5 2006, 17:59
Сообщение #50


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 9-08-04
Из: /home/gentoo
Пользователь №: 470



HL обычно перестраховывается с согласованием и дает слишком большие значения. Я беру значения ряда Е6 в меньшую сторону, а дальше настройка при моделировании. Здесь важен баланс скорость/выброс, т.е. больше скорость фронта - больше выброс.
Нужны эти времена:
Address hold time tAH min 0.8 ns
Address setup time tAS min 1.5 ns
Теперь о маске "глаза". Для простоты понимания приведу для 100 МГц, т.е. период 10нс. Клоковый сигнал имеет фронт на 50% диаграммы (в предположении, что клоки выровнены и скважность =2, а как же иначе?). Считаем 0,8нс - это 8%, 1,5нс - это 15%. Итак левая граница горизонтального участка "глаза" - 35%, правая 58%. Клюв примерно еще +- 5-10% в соотв. сторону, т.е. 30% и 63%. Так мы получили внутреннюю область запрета.
Теперь о топологии. Наблюдается большая задержка по плате, хотя согласование хорошее, можно даже попробовать уменьшить резистор до 33 Ом. В целом надо уменьшать длину пути. Как вариант можно предложить организовать несколько выровненных веток по 2 - 3 кристалла на ветке. Можно попробовать включить как по очереди, так и симметрично разветвить около пары кристаллов. Получится поддерево. Для однонаправленных шин все будет путем, для двунаправленных надо будет искать другое решение.
Итак можно рассмотреть 2 варианта топологии. Оба прилагаются. Поз обозначения в соотв. с Вашей топологией, времена по цепям условные, номиналы резисторов тоже.
Прикрепленные файлы
Прикрепленный файл  Allegro.pdf ( 82.95 килобайт ) Кол-во скачиваний: 186
 
Go to the top of the page
 
+Quote Post
RandI
сообщение Dec 6 2006, 11:44
Сообщение #51


Участник
*

Группа: Участник
Сообщений: 57
Регистрация: 14-09-06
Пользователь №: 20 388



Цитата(Paul @ Dec 5 2006, 17:59) *
Теперь о маске "глаза". Для простоты понимания приведу для 100 МГц, т.е. период 10нс. Клоковый сигнал имеет фронт на 50% диаграммы (в предположении, что клоки выровнены и скважность =2, а как же иначе?). Считаем 0,8нс - это 8%, 1,5нс - это 15%. Итак левая граница горизонтального участка "глаза" - 35%, правая 58%. Клюв примерно еще +- 5-10% в соотв. сторону, т.е. 30% и 63%. Так мы получили внутреннюю область запрета.


Ээээ, можно глупый вопрос? как ставятся внешние области запрета? И почему "Клоковый сигнал имеет фронт на 50% диаграммы"?

Сообщение отредактировал RandI - Dec 6 2006, 11:55
Go to the top of the page
 
+Quote Post
Paul
сообщение Dec 6 2006, 12:07
Сообщение #52


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 9-08-04
Из: /home/gentoo
Пользователь №: 470



Цитата(RandI @ Dec 6 2006, 11:44) *
Ээээ, можно глупый вопрос? как ставятся внешние области запрета? И почему "Клоковый сигнал имеет фронт на 50% диаграммы"?

По идеологии собственно метода, EYE диаграмма выстраивается от тактовой частоты, задаваемой в параметрах моделирования. Вся развертка диаграммы - 100% периода тактовой частоты. Последовательность битов накладывается побитно в окно равное периоду тактовой частоты. В синхронных системах скважность тактов должна быть =2, т.е. меандр - это аксиома и основное требование к таким системам. Поэтому фронт тактов проходит на 50% диаграммы.
Расстановка внешних областей запрета обсуждалась выше, но можно повторить: это Absolute Maximum Ratings для наиболее чувствительного кристалла в шине. Это значения предельные. Уходить в рабочий диапазон можно, а за пределы Absolute Maximum - нет. Думаю, понятно почему.
Go to the top of the page
 
+Quote Post
RandI
сообщение Dec 6 2006, 14:00
Сообщение #53


Участник
*

Группа: Участник
Сообщений: 57
Регистрация: 14-09-06
Пользователь №: 20 388



Цитата(Paul @ Dec 6 2006, 12:07) *
Цитата(RandI @ Dec 6 2006, 11:44) *

Ээээ, можно глупый вопрос? как ставятся внешние области запрета? И почему "Клоковый сигнал имеет фронт на 50% диаграммы"?

По идеологии собственно метода, EYE диаграмма выстраивается от тактовой частоты, задаваемой в параметрах моделирования. Вся развертка диаграммы - 100% периода тактовой частоты. Последовательность битов накладывается побитно в окно равное периоду тактовой частоты. В синхронных системах скважность тактов должна быть =2, т.е. меандр - это аксиома и основное требование к таким системам. Поэтому фронт тактов проходит на 50% диаграммы.
Расстановка внешних областей запрета обсуждалась выше, но можно повторить: это Absolute Maximum Ratings для наиболее чувствительного кристалла в шине. Это значения предельные. Уходить в рабочий диапазон можно, а за пределы Absolute Maximum - нет. Думаю, понятно почему.


Понятно, спасибо, а вообще есть какие нибудь доки по построению глазковых диаграмм?

Сообщение отредактировал RandI - Dec 6 2006, 14:01
Go to the top of the page
 
+Quote Post
sff
сообщение Dec 6 2006, 14:10
Сообщение #54


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

Группа: Свой
Сообщений: 172
Регистрация: 23-04-06
Пользователь №: 16 404



Вроде всё началось получатся после добавления последовательных сопротивлений пока не дошёл до чтения данных из DRAM..

Прикрепленное изображение


Как я понял здесь надо учитывать время задержки распространения клока, время на выборку (5.4 ns для CL=3) время на доставку до чипа, и setup_time (которое для EP9315 равно 2ns).

Правильноли я рассчитываю времена задержек?
А то получается, что
t_clk_delay + t_AC + t_data_delay + t_DAs = 2.05 + 5.4 + 1.25 + 2 = 10.7 ns sad.gif Даже в 100 mhz не укладывается sad.gif

мне бы в 100 мгц запихнуть бы

Вообще в какой момент определяется переход (rising, falling edge) CLKа из одного уровня в другой?
Go to the top of the page
 
+Quote Post
Paul
сообщение Dec 6 2006, 16:34
Сообщение #55


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 9-08-04
Из: /home/gentoo
Пользователь №: 470



То RandI
Какие-то доки есть в системах моделирования. Специально я не искал. Итак все понятно было. Надо просто внимательно посмотреть и поиграться настройками, чтобы увидеть закономерность.

To sff
Расчет не верный. Время доставки такта до каждого чипа схемы от буфера тактов должно быть равным с высокой точностью, т.е. в любом случае по тактам получается елка, причем разветвлять надо на спец разветвителях, имеющих равные нормированные задержки по каналам. Можно посмотреть у IDT. Называются такие девайсы fanout. Исходя из этого утверждения, принимаем время прихода тактов к каждой схеме одинаковое, т.е. фронт ко всем поступает одновременно.
Выборка кристалла в синхронных системах - процесс самостоятельный и выполняется в отдельном такте, поэтому важно учитывать только Tsetup и Thold для конкретных сигналов. Причем для данных, адреса и управления времена могут отличаться.
100МГц - частота тактов, а все операции в синхронных системах расчитываются в количествах тактов.
Поэтому область стабильного сигнала расчитывается как [Tclk-Tsetup:Tclk-Thold], где Tclk - период тактового сигнала.
fall clk - 0%, 100%
rise clk - 50%
В цикле чтения, адрес защелкивается в одном такте, а денные отдаются в другом, стало быть эти процессы надо рассматривать отдельно, т.е. отдельно проверять захват адреса, отдельно взятие данных.
Go to the top of the page
 
+Quote Post
sff
сообщение Dec 6 2006, 17:18
Сообщение #56


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

Группа: Свой
Сообщений: 172
Регистрация: 23-04-06
Пользователь №: 16 404



Цитата(Paul @ Dec 6 2006, 16:34) *
Расчет не верный. Время доставки такта до каждого чипа схемы от буфера тактов должно быть равным с высокой точностью..

У меня нет буфера тактов. Есть один сигнал SDCLK с MCU через резистор его раздвоил, на одной ветке висят 2 DRAM и на второй 2 DRAM.
А вообще как определяется rising edge это момент времени когда напряжение достигло Vih? и где про это прочитать можно

Цитата(Paul @ Dec 6 2006, 16:34) *
Выборка кристалла в синхронных системах - процесс самостоятельный и выполняется в отдельном такте, поэтому важно учитывать только Tsetup и Thold для конкретных сигналов. Причем для данных, адреса и управления времена могут отличаться.
100МГц - частота тактов, а все операции в синхронных системах расчитываются в количествах тактов.
Поэтому область стабильного сигнала расчитывается как [Tclk-Tsetup:Tclk-Thold], где Tclk - период тактового сигнала.
fall clk - 0%, 100%
rise clk - 50%

Видно я что-то недопонимаю..
Меня просто смутила одна вещь когда я смотрел Tsetup для MCU.
Там приведена диаграмма чтнения из DRAM. Ну я открыл для сравнения доку на DRAM и вот что смутило.
Допустим у нас CL = 2. (как на рисунках)
Подается комманда на чтение в такте T2, (там адреса и тд), на T3 производится выбока данных с задержкой, и эта выборка идёт T_ac (как показано на диаграмме для micron) после этой задержки DRAM выставляет необходимые данные и уже на по rising edge T4 контроллер смотрит что там выставлено. Так?
Эту задержку T_ac надо учитывать в "глазе" для данных? Ведь T_ac > T_clk / 2

Цитата(Paul @ Dec 6 2006, 16:34) *
В цикле чтения, адрес защелкивается в одном такте, а денные отдаются в другом, стало быть эти процессы надо рассматривать отдельно, т.е. отдельно проверять захват адреса, отдельно взятие данных.

Да, я так и делаю.. всё остальное проверил кроме чтения данных с DRAM.
Go to the top of the page
 
+Quote Post
Paul
сообщение Dec 12 2006, 10:32
Сообщение #57


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 9-08-04
Из: /home/gentoo
Пользователь №: 470



Цитата(sff @ Dec 6 2006, 17:18) *
У меня нет буфера тактов. Есть один сигнал SDCLK с MCU через резистор его раздвоил, на одной ветке висят 2 DRAM и на второй 2 DRAM.
А вообще как определяется rising edge это момент времени когда напряжение достигло Vih? и где про это прочитать можно

Если хотите избежать серьезныж проблем, нужен буфер тактов, а тактовые сигналы должны быть индивидуальны для каждого кристалла. На крайний случай, при небольших частотах, можно разветвить резисторами на источнике тактов, но это очень криво и ненадежно.
Время rising edge, также как и falling edge определяется как время изменения уровня сигнала от 10 до 90% от номинала, т.е для 3,3В можно принять 0,3 - 3,0В.
Цитата(sff @ Dec 6 2006, 17:18) *
Видно я что-то недопонимаю..
Меня просто смутила одна вещь когда я смотрел Tsetup для MCU.
Там приведена диаграмма чтнения из DRAM. Ну я открыл для сравнения доку на DRAM и вот что смутило.
Допустим у нас CL = 2. (как на рисунках)
Подается комманда на чтение в такте T2, (там адреса и тд), на T3 производится выбока данных с задержкой, и эта выборка идёт T_ac (как показано на диаграмме для micron) после этой задержки DRAM выставляет необходимые данные и уже на по rising edge T4 контроллер смотрит что там выставлено. Так?
Эту задержку T_ac надо учитывать в "глазе" для данных? Ведь T_ac > T_clk / 2

Нас не интересует задержка внутри кристаллов. Нам важно доставить сигнал в нужное место к нужному моменту времени (как правило, не позже) и, по возможности, без серьезных искажений. Поэтому важно только взаимоотношения тактового сигнала в пределах одного периода и соответствующего информационного сигнала. Все остальное определяется протоколами взаимодействия кристаллов. Из этого следует, что для трассировки нам не важно, какой это такт Т1, Т2 или др., а важно когда должен переключиться информационный сигнал относительно тактового сигнала и рассматривать нужно только соотв. времена, т.е. для адреса Tdas, Tdah, для управления - Tcks, Tckh, для выходных данных Tos, Toh, входные данные на диаграмме не показаны. Tac теоретически можно учесть только для расчета Tos=Tclk-Tac, т.е. мы снова привяжемся к фронту тактов. Специально для ориентировки на диаграмме приведены линии привязки по тактовым фронтам.
Go to the top of the page
 
+Quote Post
sff
сообщение Dec 12 2006, 14:42
Сообщение #58


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

Группа: Свой
Сообщений: 172
Регистрация: 23-04-06
Пользователь №: 16 404



Cпасибо, вроде всё ясно.
Я уже вроде подобрал последовательные сопротивления чтобы и микросхемы не убились и по времени всё укладывалось. Буфер клоков решил таки не использовать.
Как сделаю макетик отпишу что получилось =)
Цитата(Paul @ Dec 12 2006, 10:32) *
Время rising edge, также как и falling edge определяется как время изменения уровня сигнала от 10 до 90% от номинала, т.е для 3,3В можно принять 0,3 - 3,0В.

Я как-то криво выразился, хотел спросить а в какой момент переход от 0.3 - 3.0 клока происходит съем данных? или это считать тоже не нужно, на то и дано setup и hold time?
Go to the top of the page
 
+Quote Post
Paul
сообщение Dec 12 2006, 15:05
Сообщение #59


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 9-08-04
Из: /home/gentoo
Пользователь №: 470



Цитата(sff @ Dec 12 2006, 14:42) *
Я как-то криво выразился, хотел спросить а в какой момент переход от 0.3 - 3.0 клока происходит съем данных? или это считать тоже не нужно, на то и дано setup и hold time?


Это вопрос довольно сложный и индивидуальный для каждого кристалла. Есть общие понятия: Vilow и Vihigh, т.е. входные уровни. Уровень ниже максимального значения Vilow считается "0", выше минимального значения Vihigh считается "1", между ними неопределенность. На самом деле это не важно, главное, чтобы сигнал успокоился на соотв для себя уровне <Vilow или >Vihigh до значения Tclk/2-Tsetup и держался спокойно до Tclk/2+Thold (в HyperLynx настраивается маской). Дальнейшее поведение сигнала в рамках периода Tclk значения не имеет. Ну и чтобы не выходил за Absolute Maximum Ratings (тоже настраивается маской).
Успехов.
P.S. Обязательно промоделируйте клоки и выровняйте с высокой точностью задержки до всех кристаллов.
Go to the top of the page
 
+Quote Post
RandI
сообщение Jan 31 2007, 14:55
Сообщение #60


Участник
*

Группа: Участник
Сообщений: 57
Регистрация: 14-09-06
Пользователь №: 20 388



Цитата(Paul @ Dec 12 2006, 15:05) *
Цитата(sff @ Dec 12 2006, 14:42) *

Я как-то криво выразился, хотел спросить а в какой момент переход от 0.3 - 3.0 клока происходит съем данных? или это считать тоже не нужно, на то и дано setup и hold time?


Это вопрос довольно сложный и индивидуальный для каждого кристалла. Есть общие понятия: Vilow и Vihigh, т.е. входные уровни. Уровень ниже максимального значения Vilow считается "0", выше минимального значения Vihigh считается "1", между ними неопределенность. На самом деле это не важно, главное, чтобы сигнал успокоился на соотв для себя уровне <Vilow или >Vihigh до значения Tclk/2-Tsetup и держался спокойно до Tclk/2+Thold (в HyperLynx настраивается маской). Дальнейшее поведение сигнала в рамках периода Tclk значения не имеет. Ну и чтобы не выходил за Absolute Maximum Ratings (тоже настраивается маской).
Успехов.
P.S. Обязательно промоделируйте клоки и выровняйте с высокой точностью задержки до всех кристаллов.


Небольшой вопрос. А как в Allegro SigXplorer маску вывести на график??
Go to the top of the page
 
+Quote Post

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

 


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


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