remout
Технологии Генератор топологии статических оперативных запоминающих устройств
Генератор топологии статических оперативных запоминающих устройств PDF Печать E-mail
Добавил(а) Груданов Н.Б., Дудник О.Н., Рубанец М.Н., Груданов А.Н.   

 

Abstract. Presented silicon compiler – memory generator (MG) for synchronous single and dual port SRAM for 0.25um and 0.28um CMOS technology. MG has possibility to generate more than 80000 memory combination for single port and more than 600000 combination for dual port SRAM. MG is based on leaf sells approach that allow to get minimized chip area and  timing  parameters.


Аннотация:
Представлен кремниевый компилятор – Генератор статической синхронной  оперативной Памяти (ГП)  для КМОП технологий с проектными нормами 0.25 и 0.28 мкм. В основе кремниевого компилятора лежит метод стандартных ячеек (макроячеек, leaf-cells), что позволило оптимизировать как площадь кристалла, так и временные и электрические параметры. Генератор памяти позволяет генерировать   около 80000 различных конфигураций памяти одно портовых ОЗУ и более 600000 конфигураций двух портовых ОЗУ. Полученная с помощью генератора память имеет  время считывания (tacc) для 64КБ не более 3.3нс при температуре окружающей среды Т=85?С и напряжении питания Vdd = 2В.

1.Введение.

Проектирование систем на кристалле (СнК) наряду с развитыми средствами САПР общего назначения требует применения специализированных средств проектирования, в частности для генерации топологии регулярных структур, таких, как ОЗУ, ПЗУ, РПЗУ, ПЛМ. Например, количество  различных блоков ОЗУ на кристалле может исчисляться десятками, и отличаться друг от друга блоки памяти могут емкостью, длиной слова, наличием или отсутствием встроенных средств самотестирования и т.д. Для сокращения сроков и стоимости разработки СнК широкое распространение получили так называемые генераторы памяти – специализированные кремниевые компиляторы, предназначенные для генерации топологии   таких структур.
Генератор памяти позволяет автоматически получать топологию памяти по заданным на входе параметрам блока. Существуют два различных подхода [1-3] к генерации памяти: первый – полностью автоматическая генерация всей топологии,   второй – сборка памяти из макроячеек. Первый способ [4] позволяет с минимальными предварительными затратами получить результат, но  не позволяет оптимально использовать площадь кристалла и не гарантирует получение необходимых временных и электрических параметров. Второй способ [5] требует некоторого времени для разработки вручную топологии библиотеки макроячеек, из которых будет собираться память, но зато он позволяет максимально оптимизировать площадь кристалла и получить гарантированные электрические и временные параметры.
В данной работе описывается генератор статической синхронной  оперативной памяти,  построенный на основе метода сборки памяти из макроячеек. Генератор памяти   представляет собой  комплекс  топологических библиотек и программ, предназначенных для автоматического создания топологии блоков синхронных статических запоминающих устройств с задаваемой  организацией с одним и двумя портами на основе КМОП технологий с проектными нормами 0.25 мкм и 0.28 мкм.

2. Возможности генератора памяти.

В качестве входных данных служит набор параметров, задаваемых пользователем. ГП, исходя из этих параметров и, используя сделанную заранее вручную библиотеку макроячеек, под управлением сценария генерации топологии создает следующие выходные файлы: топологию блока в формате GDSII, электрическую схему в формате .net для верификации топологии блока памяти, поведенческую модель блока на языке Verilog, файлы физической (.lef) и временной (.lib, .tlf) информации, описание параметров созданного блока и файл расположения ячеек памяти. Рабочий диапазон напряжений питания: 1.8В – 3.3В, диапазон температур: -40°С – +125°С.
В качестве входных задаются следующие основные параметры:

  1. Технология - две  КМОП технологии с проектными нормами 0.25 и 0.28 мкм,
  2. Количество портов – один или два.
  3. Для двухпортовой памяти количество тактирующих сигналов два (по одному на порт) или  один общий.
  4. Информационная емкость  32 байт - 128 Кбайт,
  5. Длина слова -  от 8 до 40 бит с шагом 2 бита и от 40 до 128 бит с шагом 8 бит,
  6. Возможность побайтного маскирования при записи данных с длиной «байта» 8, 10, 12, 14,16 бит и количеством сигналов маскирования от 0 - 8,
  7. Количество строк -     8 - 512,
  8. Количество столбцов  -   8 - 2048,
  9. Тип организации памяти – либо память с       приоритетом площадь/потребляемая мощность либо с приоритетом быстродействие,
  10. Отсутствие или наличие встроенного генератора самотестирования (BIST).

3. Описание архитектуры памяти.

Адреса (ADR[m-1:0]), входные данные (DATA[n-1:0]), сигналы разрешения чтения и записи (RDSTR и WDSTR), сигнал выбора кристалла (CS) и сигналы маскирования (MASK[(n/8-1):0]) поступают на входные D-триггеры с потенциальным управлением (D-защелки), которые запоминают значения входных сигналов по высокому уровню тактового сигнала CLK. Выходные данные   запоминаются на выходных D-защелках по низкому уровню сигнала тактирования.  При низком уровне сигнала CS выходная шина данных переходит в третье состояние, внутренние сигналы управления отключаются и память переходит в состояние низкого энергопотребления. Сигналы маскирования позволяют проводить запрет записи по выбранным байтам.
Для памяти с приоритетом по быстродействию для уменьшения  времени доступа применяется метод блокирования [6] - специальный прием  для увеличения быстродействия. При увеличении количества столбцов увеличивается сопротивление и емкость строчных шин. Это приводит к увеличению задержки включения адресных транзисторов крайних ячеек и увеличению времени доступа.  Можно просто ограничить размеры памяти, и собирать память требуемых размеров из отдельных законченных блоков, но более экономично с точки зрения занимаемой площади разделить матрицу больших размеров на отдельные блоки и применить для каждого блока свой  строчный дешифратор.  Остальные блоки остаются общими для всей памяти. В нашем случае этот прием позволил уменьшить время доступа на 0.8нс (приблизительно на 25%) для повышенных температур и минимального напряжения питания, что очень существенно. Недостатком такого подхода является увеличение потребляемой мощности, однако сборка полной памяти из отдельных законченных блоков приводит к еще большему   увеличению тока  потребления.
Архитектура блока однопортовой памяти для случая без блокирования представлена на рис. 3.
Память состоит из следующих блоков:

  1. Матрица памяти (Cell array);
  2. Предзаряд  столбцов (Columns precharge);
  3. Строчный дешифратор (line decoder);
  4. Блок управления (Control block);
  5. Блок чтения и записи (Sense amplifier, write block and output buffer);
  6. Дешифратор слов Y (Word decoder);
  7. Генератор самотестирования (BIST).

4. Структура программного обеспечения.

В основе генератора памяти лежит специализированное программное обеспечение (СПО), разработанное на базе  графического  редактора разработки топологии интегральных схем EditLay [ ].   Головная программа, производящая разборку входного файла задания на генерацию топологии и запуск сценария генерации, написана на языке СИ. Сценарий генерации памяти написан на языке LUA []. Этот объектно-ориентированный язык интерпретирующего типа в первую очередь предназначен для обработки больших массивов данных,  эффективен для решения таких задач и удобен при отладке программ. Главная задача, решаемая ГП – обработка элементов топологии в GDS-II формате. Для этих целей разработан специальный   интерфейс c СПО, обеспечивающий выполнение ограниченного набора команд обработки GDS-II файлов, как из программ, написанных на языке  СИ, так и из программ, написанных на    языке LUA. В ГП можно выделить следующие блоки.

  1. Общий блок, в котором  определены  функции, необходимые в процессе создания топологии.
  2. Блок, отвечающий за формирование   топологии.
  3. Блок, отвечающий за привязку к конкретной технологии.
  4. Блок, отвечающий за генерацию выходных файлов, не связанных с топологией.

Скорость работы генератора достаточно высокая: время генерации топологии не превышает двух секунд на компьютере  класса Pentium 4. Генератор работает в режиме командной строки, не имеет графического интерфейса и поэтому может быть адаптирован к различным ОС, включая LINUX.

5. Обзор  критических компонентов памяти.

5. 1. Оценка устойчивости ячейки памяти.

Генераторы памяти разрабатываются под конкретные условия производства, которые характеризуются как минимум двумя документами: Правилами Проектирования (Design Rules) и Параметрами Процессов (Process Specification). Первый определяет минимальные топологические проектные нормы, а второй - удельные сопротивления, емкости, параметры моделей.  
На  первом этапе  создания или адаптации ГП проводится разработка топологии элемента памяти, как наиболее критичного элемента, определяющего площадь. Для одно портового ОЗУ применялась 6- транзисторная ячейка памяти с р- канальными нагрузочными транзисторами, а для двух портового ОЗУ – 8- транзисторная ячейка с раздельными адресными транзисторами для портов А и В. К выбору размеров транзисторов ячейки  необходимо подходить особенно тщательно, поскольку от этого зависит ее помехоустойчивость, способность ячейки препятствовать изменению информации и   надежно хранить данные. Эта свойство ячейки памяти сохранять информацию при внешних воздействиях (ионизирующее излучение, температура), разбросе технологических и схемотехнических параметров  зависит от величины   SNM (static-noise margin)[]. Для надежной работы схемы величина SNM должна быть 0.2-0.7 В  в диапазоне  температур окружающей среды и напряжений питания. При меньших значениях резко падает надежность хранения информации, а при больших могут возникнуть сложности с записью данных. Требования к нижней границе SNM могут быть изменены для специальных условий применения схем, в первую очередь повышенных уровней радиации. Для расчета SNM, в процессе оптимизации размеров транзисторов ячейки памяти, применялся   метод, основанный на «баттерфляй» диаграмме [ ]. При расчете SNM  двух портового ОЗУ адресные транзисторы портов А и В должны быть открыты, а шины данных портов закорочены, так как это наихудший случай одновременного доступа по двум портам по совпадающим адресам в режиме чтения, поскольку основным источником помехи является разбаланс шин данных.

5. 2.   Усилитель считывания и цепи предзаряда.

С целью уменьшения потребляемой мощности и увеличения быстродействия, предзаряд столбцов осуществляется через n-канальные транзисторы импульсами длительностью  около 1.5 нс, которые формируются по заднему фронту сигнала тактирования. Дополнительно к основным транзисторам предзаряда имеются «слабые» n-канальные транзисторы, которые подключаются, когда схема не выбрана, чтобы предотвратить влияние токов утечки по столбцам и обеспечить работу памяти после выхода из режима stand-by, что позволяет памяти работать на очень низких частотах (от нуля Герц).   
Усилитель считывания, схема которого показана на рис. 6, состоит из трех каскадов. В зависимости от длины слова и объема памяти один усилитель через адресные транзисторы подключается минимум к двум столбцам, максимум к восьми. Подключение большего количества столбцов нецелесообразно из-за возрастания входной емкости усилителя и падения быстродействия.  Первый каскад представляет собой классический дифференциальный усилитель, имеющий   чувствительность не хуже 10мВ с собственной цепью предзаряда по входам на р-канальных транзисторах.   Входные каскады усилителей  такого типа весьма чувствительны к разбросу  параметров транзисторов, в частности длины канала, что может приводить к  большому разбросу по быстродействию для различных усилителей блока памяти. Для предотвращения влияния этого эффекта минимальная длина канала транзисторов первого каскада увеличена в четыре раза по сравнению с минимальными проектными нормами. Поскольку значение выходного сигнала усилителя зависит не только от разности напряжений на шинах данных, но и от уровня напряжения на входе усилителя, сигнал чтения должен быть задержан относительно адресного сигнала дешифратора строк для предотвращения неправильного чтения данных. Эта задержка зависит от количества столбцов генерируемой памяти и для ее формирования введена фальшивая строка, паразитная емкость которой определяет величину задержки сигнала чтения.

5.3. Тестирование памяти с помощью встроенного генератора самотестирования (BIST).

Для упрощения процесса тестирования блок памяти может содержать встроенный генератор самотестирования. Генератор самотестирования (BIST) состоит из контроллера тестовых последовательностей, формирователя адресных сигналов и компаратора для сравнения записанных и прочитанных данных. Количество  адресов и данных BIST зависит от размера памяти и длины слова. Для контроля памяти применяются следующие тестовые последовательности: solid0, solid1, checkerboard0.  Общая длина тестовой последовательности одно портового ОЗУ равна 6N+3, а для двух портового 12N+5, где N – количество слов блока памяти. Если в состав блока памяти включен BIST,  необходимо добавить  дополнительно по три контактные площадки на каждый блок  для запуска процесса самотестирования и контроля результатов. В качестве тактирующего сигнала используется системный сигнал CLK. Выходной  сигнал компаратора при обнаружении каждой  ошибки переходит  из 0 в 1. По сигналу «СТАРТ  BIST» входы адресов, данных, выбора кристалла, сигналов записи и чтения     блока памяти отключаются от системных  входов и подключаются к выходам соответствующих сигналов BIST.

6. Результаты измерений тестовых микросхем памяти.

Для проверки эффективности работы ГП и точности расчета временных параметров были изготовлены  микросхемы памяти, которые содержали различные варианты блоков ОЗУ, дополненные входными и выходными буферами для согласования с измерительным оборудованием и защиты от электростатики. Микросхемы памяти были изготовлены по двум различным  технологиям, с одним и двумя портами, с различными приоритетами по потребляемой мощности и быстродействию, различной длиной слова  и емкостью матрицы 128 байт, 1, 4, 8, 64 кбайт. Все микросхемы имели в своем составе встроенный генератор самотестирования. Результаты измерений показали следующее:

  1. Все изготовленные образцы  функционировали в соответствии с техническими требованиями на ГП.
  2. Измеренные значения таких параметров, как время выборки (tacc), времена установки и удержания входных и выходных сигналов (tsu, thi, tho), с достаточно высокой точностью соответствовали результатам моделирования.
  3. Результаты тестирования микросхем с помощью встроенного генератора самотестирования показали высокую корреляцию  с результатами функционального контроля на тестере.
  4. Потребляемая ОЗУ мощность соответствовала поставленным требованиям и, например, для двух портового ОЗУ емкостью 64 кбайт и приоритетом по потребляемой мощности  составила 1.82мВт/МГц при работе одного порта, и 3.74 мВт/МГц при работе двух портов в режиме запись/чтение,  напряжении питания 2.5В и комнатной температуре.

Временная диаграмма результатов измерений для нормальных условий (Т=25?С, Vdd = 2.5В) на частоте 120 МГц показана на рис. 5.

7. Выводы.

Разработан генератор статический оперативной памяти, который  предназначен для генерации топологии и других вспомогательных данных одно и двух портовых СОЗУ   высокую гибкость: две различные технологии, длина слова и количество строк не зависит от параметров генератора, а количество столбцов зависит только от длины слова, возможность генерации памяти со встроенным генератором самотестирования, возможность побайтного маскирования при записи, возможность выбора приоритета потребляемая мощность/быстродействие  Всего возможных вариантов – около 80000. Нужно отметить, что скорость работы программы-генератора достаточно высокая: все файлы для максимально возможной конфигурации генерируются менее чем за 2с на компьютере класса Pentium-4. Изготовленные по сгенерированной генератором топологии чипы памяти успешно прошли тестирование и показали высокое быстродействие при довольно небольшой потребляемой мощности, а также высокую корреляцию с результатами моделирования.


В заключение авторы поблагодарят за поддержку работы, изготовление и тестирование образцов профессора Р.Кремера  и Г.Шуфа из IHP (Frankfurt, Oder, Germeny), а так же И.В.Лопаненко и В.В.Бобовского за помощь в разработке СПО.

  1. Автоматизация проектирования БИС. Кн. 1 Г. Г. Казеннов. Принципы и методология построения САПР БИС. – М.: Высш. шк., 1990. – 110с.: ил.
  2. Автоматизация проектирования БИС. Кн. 4 Г. Г. Казеннов В. М.Щемелинин. Топологическое проектирование нерегулярных БИС. – М.: Высш. шк., 1990. – 110с.: ил.
  3. Автоматизация проектирования БИС. Кн. 6 Г. Г. Казеннов, Е. В. Сердобинцев. Проектирование топологии матричных БИС. – М.: Высш. шк., 1990. – 112с.: ил. www.asim.lip6.fr/alliance/
  4. Sylvain Clerc, Denis Dufourt, Louis Zangara. High Flexibility CMOS SRAM generator Using Multiplan architecture. 1999.
  5. M.Yoshimoto, et al., “A 64Kb CMOS RAM with Divided Word Line Structure” ISSCC Dig. of Tech Papers, pp 58-59, Feb. 1983
  6. E. Seevinck, F.J. List, J. Lohstron. “Static - noise margin Analysis of MOS SRAM Cell”. IEEE JOURNAL OF SOLED - STATE CIRCUITS, VOL. SC-22, NO. 5, OCTOBER 1987.
  7. A.J.Bhavnagarwala, X. Tang, J. Meindl. The Impact of Intrinsic Device Fluctuations on CMOS SRAM Cell Stability. IEEE J. OF SOLID-STATE CIRCUITS. VOL.36, NO. 4, APRIL, 2001

 

 

Структура ПО генератора памяти на примере однопортового ОЗУ

Рис. 1. Структура программного обеспечения генератора памяти на примере     однопортового ОЗУ.

Архитектура  однопортового ОЗУ
Рис. 2. Архитектура  однопортового ОЗУ.

Временная диаграмма работы ОЗУ
Рис. 3. Временная диаграмма работы ОЗУ.

Усилитель считывания
Рис. 4.  Усилитель считывания.

Временная диаграмма результатов измерений
рис. 5. Временная диаграмма результатов измерений (частота 120 МГц).