О проектировании печатных плат с DDR
Шина состоит из одного контроллера на одном конце и одного или нескольких чипов DRAM на другом. В общем, чем больший объем памяти требуется системе, тем большее количество чипов DRAM необходимо. Две основные проводимые контроллером операции — это запись данных на чипы DRAM и чтение данных с чипов DRAM.
Как работает DDR
Эти операции производятся с помощью двух наборов сигналов: по шине данных и шине адреса/команд, как показано на рис. 1.
Двунаправленная шина данных характеризуется количеством линий для передачи данных. Каждая линия состоит из уникального DQS (стробирующего) сигнала и соответствующих сигналов данных. Обычно линия состоит из 8 бит. Однако существуют и DRAM только с 4 бит данных, поэтому некоторые линии могут состоять только из 4 бит. Независимо от количества битов в линии каждый бит фиксируется во время передачи сигнала DQS. Сигналы данных все односторонние. Сигналы DQS для шин DDR3 и DDR4 всегда дифференциальные. Для шин DDR2 сигналы DQS могут быть как односторонними, так и дифференциальными.
Во время записи контроллер подает сигнал приблизительно посередине между двумя передачами сигнала DQS (рис. 2). Таким образом, во время текущей передачи сигнала DQS сигнал данных должен быть стабилен. Далее чип DRAM фиксирует сигнал данных во время передачи DQS. Это первый важный элемент: необходимо удовлетворить требованиям по времени установки и времени удерживания на DRAM. Поскольку контроллер подает сигналы данных приблизительно посередине между двумя передачами DQS, для того чтобы центрировать сигналы DQS относительно стабильных сигналов данных, необходимо, чтобы задержка распространения сигнала DQS и задержка сигнала данной линии не очень отличались друг от друга. Величина задержки распространения сигнала между линиями может немного варьироваться, так как стробирующий сигнал используется лишь для битов данных на рассматриваемой линии.
Во время чтения DRAM подает сигналы данных приблизительно в соответствии с сигналами DQS (рис. 3). Затем контроллеру необходимо задержать сигнал данных и/или стробирующий сигнал на нужное время, чтобы зафиксировать его с помощью DQS.
В одноразрядной системе каждая линия достигает только одного чипа DRAM. В мультиразрядных системах линия (бит данных и стробирующий сигнал) может быть соединена с несколькими чипами DRAM. Во время передачи активен лишь один из соединенных с линией чипов DRAM. Возможность доступа к чипу памяти определяется с помощью сигнала выбора элемента памяти (сигнал CS); у других неактивных DRAM, соединенных с этой линией, сигнал выбора будет неактивным. В общем, количество «разрядов» в системе равно количеству активных в системе сигналов CS, что равно количеству чипов DRAM, соединенных с данной линией.
Адресная/командная шина состоит из нескольких адресных битов (точное количество зависит от размеров чипов DRAM, к которым нужно обратиться), нескольких битов для команды, переданной на DRAM, и тактового сигнала. Шина однонаправленная; команды посылаются только от контроллера к DRAM.
Адресные сигналы и сигналы команд являются несимметричными. Тактовый сигнал дифференциальный, синхронизация происходит при пересечении основного тактового сигнала и инвертированного.
Для выполнения команды контроллером подаются соответствующие адресный сигнал и сигнал команды в момент, когда тактовый сигнал идет вниз (рис. 4). Сигналы остаются на том же уровне, когда тактовый сигнал начинает подниматься, и затем во время последующего спада тактового сигнала выполняется переход к новой команде. Таким образом, сигнал команды стабилен тогда, когда тактовый сигнал находится на верхнем уровне.
Это приводит ко второй важной проблеме: необходимо согласовывать время установки и время удерживания адресных сигналов и сигналов команд на DRAM. Поскольку сигналы посылаются контроллером таким образом, чтобы обеспечить стабильность битов адреса/команды во время нарастания тактового сигнала, требуется точно произвести задержку сигналов адреса/команды на величину, равную такту. Так как шина адреса/команд распределяется по разным чипам DRAM, задержка сигнала от контроллера к каждому DRAM должна быть одинакова для всех адресных битов и тактовых сигналов. Поэтому даже если задержка на чипах DRAM может варьироваться, задержки для адреса и тактового сигнала должны синхронизироваться на любом заданном DRAM.
Наконец, существуют требования, которые должны выполняться на чипе DRAM между сигналами DQS и тактовыми сигналами (CLK). Это правило координирует шину данных и шину адреса. Сигналам DQS и CLK необходимо синхронизироваться на каждом DRAM. Для обеспечения этого процесса шине DDR2 нужно, чтобы задержки от каждого контроллера к каждому DRAM для каждого из сигналов DQS были равны друг другу, и общее значение равнялось величине задержки от контроллера к DRAM для тактового сигнала.
Новая концепция трассировки fly-by
В шинах DDR3 представлена новая концепция трассировки fly-by. Таким образом, адресные и тактовые сигналы подаются контроллером и достигают каждого DRAM по очереди, друг за другом. Это, однако, подразумевает, что тактовый сигнал достигает каждого чипа DRAM в разное время. Если сигналы DQS производятся равной длины, то нет гарантии, что требование для сигналов DQS/CLK, о котором говорилось выше, будет выполнено.
В данном случае контроллер должен быть способен самостоятельно задерживать сигнал DQS так, чтобы он достиг тактового сигнала приблизительно в одно и то же время.
Следует учитывать, что для шин DDR2 и для контроллеров, которые не поддерживают такой метод, тактовые сигналы и сигналы DQS должны быть согласованы между собой.
Подготовка к моделированию
В предыдущем разделе мы обсудили некоторые критические задачи целостности сигнала, с которыми инженеры сталкиваются в процессе проектирования шин DDR. Лучше всего перед производством таких плат провести моделирование их работы, с помощью которого можно обнаружить ошибки функциональности платы, а также снизить количество итераций процесса проектирования. Это значит, что время, требуемое для установки, запуска и анализа результатов моделирования, также должно быть сокращено, иначе процесс моделирования становится невыгодным.
Поэтому цель разработчика — использовать необходимые инструменты, позволяющие быстро провести моделирование и получить данные, которые легко понять и проанализировать, чтобы затем сфокусироваться именно на критических точках. В идеале такой инструмент должен делать все перечисленное.
Для того чтобы сократить время установки, часто бывает полезным тщательно изучить входные данные и определить их значения к моменту начала моделирования. Для получения хороших результатов действительно нужно немного. Ведь большую часть требуемой информации разработчик уже получил от заказчика (например, файл платы или техзадание) и от поставщика (скажем, спецификации к материалам и компонентам).
Первое, что необходимо, — это модели драйвера и ресивера для контроллера памяти и чипов DRAM. Модель IBIS-контроллера можно получить от поставщика или скачать на сайте производителя. Модель IBIS для DRAM также можно запросить у поставщиков DRAM, например, таких компаний, как Micron, Samsung или Hynix. Модели должны содержать всю информацию для различных параметров и опций по терминированию сигналов (метод ODT), доступных для соответствующих чипов.
Некоторые поставщики охотнее предлагают Spice-модели, а не IBIS. Spice-моделирование может быть ненамного более точным и часто медленнее обрабатывает бóльшие порядки величин, чем IBIS. В публикации [2] показано, что настройка и установка для запуска драйвера Spice заняли 221 ч, тогда как для запуска драйвера IBIS понадобилось около 3 ч. Таким образом, если основная задача — экономия времени, то использование IBIS-модели способно ускорить процесс. Однако встречаются и очень плохо созданные IBIS-модели, поэтому лучше всего, если разработчик запросит сравнительные данные у поставщика.
Следующее условие — создание критерия «годно/не годно» для различных интегральных схем. Инструменты моделирования могут генерировать колебания сигналов, но расчетные критерии для классификации результирующих сигналов в качестве годных или негодных может предоставить только поставщик чипов. В качестве простого примера приведем ширину глазковой диаграммы для сигналов контроллера, необходимую при чтении поступающих DQ-сигналов. Для DRAM эта информация обеспечивается организацией Jedec, она уже доступна и в спецификациях на DRAM и на сайте Jedec (jedec.org). Соответственно, требования к контроллерам приведены в спецификациях на контроллеры.
Но бывает, что поставщики контроллеров не публикуют в своих спецификациях подобные сведения. В таких случаях следует запросить информацию у инженера-технолога компании-поставщика. Учтите, что эти требования не относятся к самому моделированию, а необходимы для характеризации и описания параметров проектируемой шины, если вдруг плата будет возвращена на доработку. После всего этого, если на осциллографе построена глазковая диаграмма, как показано на рис. 5, и при этом нет маски, с которой можно сравнить диаграмму, то нельзя оценить пригодность системы и узнать, насколько большой запас будет иметь конструкция. Поэтому у инженера-технолога компании-поставщика лучше запрашивать данные, относящиеся к проверке целостности сигнала системы, а не к проверке результатов моделирования.
Общие требования, которые нужно запросить у поставщика:
- Соотношение времени ввода между сигналами DQ/DQS во время операции чтения.
- Отклонение выходных сигналов DQ/DQS во время операции записи.
- Отклонение выходных сигналов DQS/CLK во время операции записи.
- Отклонение выходных сигналов address/CLK во время передачи адреса/команды.
Для DRAM эти сведения доступны на сайте компании Jedec, при этом спецификации содержат информацию, касающуюся не только целостности сигнала, но и надежности DDR-каналов (пример подачи информации на рис. 6).
Информация по сборке платы должна быть очень точной (рис. 7). Эти данные обычно дают разработчики плат, и они включают информацию о назначении и расположении слоев, ширине дорожек (для заданного полного сопротивления) и свойствах диэлектрика. Разработчик плат должен предоставить и предварительную схему сборки, которая будет использоваться на стадии экспериментальной разработки перед тем, как начать разводку. Затем необходимо определить некоторые части системы, где требуется применение моделей сторонних производителей. Например, разъемы могут быть смоделированы как простые RLC-цепи либо как более сложные модели с S‑параметрами. Такие опции необходимо обсуждать с разработчиком. Если в системе предусмотрены стандартные DIMM, следует использовать предназначенные для них модели плат. Список подобных моделей имеется на сайте Jedec.
Наконец, необходимо определить регионы платы, требующие специального анализа. В конструкции платы могут быть структуры, которые предпочтительно моделировать с помощью 3D-средств. Чаще всего среди таких структур встречаются переходные отверстия. Чем выше скорость передачи данных, тем лучше переходные отверстия моделировать как 3D-структуры.
В целом, моделирование необходимо использовать как инструмент, с помощью которого можно ускорить процесс проектирования системы. Само моделирование не должно занимать много времени, для этого перед его началом надо провести соответствующую подготовку. То есть проанализировать плату, связаться и запросить техническую информацию у поставщиков чипов DRAM, контроллеров и разъемов. При наличии такой информации разработка и проверка конструкции станут проще и быстрее.
Анализ результатов моделирования
В данном разделе мы обобщим выводы предыдущих разделов и обсудим, на какие из полученных при моделировании результатов нужно обратить внимание.
Первый шаг после выполнения моделирования DDR — изучение требований шины. На самом деле, это требования ресивера к контроллеру (во время чтения) и DRAM (во время записи и передачи адреса/команд). Такая информация для контроллера приведена в его спецификации. Сведения по DRAM можно запросить у поставщика или найти на сайте Jedec. Данный шаг важен, так как понять все тонкости полученных результатов моделирования можно только если известны основные требования.
Единственный способ убедиться, что результаты будут правильно интерпретированы, — работать с инструментами моделирования, которые дают легко понятные результаты. Часто по итогам моделирования получается огромное количество данных проведенных измерений, поэтому для последующего анализа необходимы их фильтрации и ранжирование по мере критичности. Обычно начинают с самых проблемных сигналов.
Наиболее проблемными цепями считаются цепи, демонстрирующие самый низкий запас значений, по крайней мере на одном из измеряемых параметров. Например, сигнал, имеющий наименьшее время установки среди всех цепей, может рассматриваться как самая проблемная цепь. Вообще, это хорошая традиция — анализировать проблемные цепи, даже если они не нарушают работоспособность. Даже когда моделирование не показало нарушение работы конструкции, результаты могут быть достаточно близки к пределу, что указывает на слабое место в проекте и проявляется в виде отказов в работе, в реальных системах часто возникают перебои, что в дальнейшем вынуждает затрачивать значительные усилия для устранения недостатков. Это особенно актуально, когда один сигнал имеет ненормально низкий запас для каждого из измеряемых параметров. Например, если у сигнала DQ0 запас по времени установки составляет всего 5 пс, тогда как другие сигналы имеют по крайней мере 40 пс, то, вероятно, следует обратить внимание на проблемный сигнал DQ0 (и соответствующий ему стробирующий сигнал).
Такое некорректное поведение сигналов может указывать на несколько явлений, и причины их возникновения могут быть разными. Часто бывает, что или запас по времени установки, или запас по времени удержания очень низкий. Если один из показателей низкий (скажем, запас по времени установки), а другой показатель (в данном случае время удержания) высокий, то стробирующий сигнал (или тактовый сигнал) плохо синхронизирован с сигналом DQ (или адресом). В подобных случаях необходимо внести исправления в параметры контроллера и по возможности калибровать каждый бит индивидуально. После чего моделирование можно провести заново (автоматически, если средство моделирования имеет такую функцию) с соответствующими задержками для сигнальных битов. Если контроллер не позволяет провести калибровку для каждого бита, то при разводке для некоторых из сигнальных битов нужно установить бóльшую или меньшую величину задержки.
Следующий элемент для анализа — нежелательные осцилляции, способные стать причиной ненужных изменений нескольких параметров, в том числе увеличение значения максимального перерегулирования или изменения во времени установки/удерживания. Некоторые отклонения, например в перерегулировании, приводят к поломке чипа. Такие поломки не всегда происходят в первое включение и скорее наблюдаются по прошествии некоторого времени. А потому чем раньше вы узнаете об этом, тем меньше переделок и отладок понадобится на последующих стадиях, что в свою очередь сократит издержки. Нежелательные осцилляции часто вызываются некорректным терминированием сигналов. Это обычно исправляется с помощью подбора разных значений ODT на ресивере до тех пор, пока нежелательное осциллирование не снизится до приемлемого уровня. На рис. 8 показано, как сигнал попадает за пороговое значение Vdd (1,5 В). Значительного перерегулирования сигнала не происходит (для этого нужно пересечь порог 1,9 В), однако величины области напряжение/время, показанной красным цветом на рис. 8, может быть достаточно, чтобы нарушить требование спецификаций Jedec по области максимального перерегулирования.
Третья проблема — избыточный шум и перекрестные помехи, воздействующие на сигнал, — решается с помощью пространственного отделения сигналов друг от друга.
Еще одна проблема — наличие шлейфов в цепи (рис. 9), что вызывает появление отражений сигнала, часто выглядящих как «ступеньки» в колебаниях сигнала (рис. 10). Если шлейф удается укоротить, то улучшается целостность сигнала. Часто такие «ступеньки» в форме колебаний появляются из-за того, что измерения были сделаны в период операции чтения на выводе контроллера. Это можно быстро исправить, подняв точку измерений в другую область. Подобные проблемы появляются потому, что нередко файл IBIS для контроллера проводит измерения на выводах контроллера.
После определения основных проблем и причин их возникновения следующий шаг — их устранение на плате и последующее моделирование. Для экономии времени лучше сначала провести моделирование работы лишь тех участков, где были внесены изменения. И только после локальных исправлений следует переходить к моделированию работы всей платы/системы.
Наконец, уже после того как печатная плата произведена, смоделированные формы сигналов можно сравнить с сигналами, полученными с помощью осциллографа. Причем нет необходимости измерять осциллографом каждый сигнал на шине — достаточно измерить несколько сигналов и сверить их с результатами, полученными в процессе моделирования, что даст уверенность в успешном выполнении моделирования.
Правильные настройки моделирования, корректный анализ результатов помогут снизить общее время, необходимое для проектирования высокоскоростных подсистем DDR.
- Bhagwath N. Designing PCBs for DDR Busses. PCD&F / CirCuits Assembly, June 2016.
- Bhagwath N. DDR4 Board Design and SI Challenges. DesignCon, January 2015.