- •Введение
- •Обзор современного состояния субмикронной и глубоко-субмикронной технологий
- •Проектирование цифровых интегральных схем
- •Задачи и методы схемотехнического моделирования сбис
- •Этапы проектирования сбис
- •Общие вопросы характеризации цифровых библиотек
- •Характеризация логических элементов
- •Характеризация элементов памяти
- •Анализ переходных процессов
- •Описание характеристик ячеек из библиотеки
- •Языки моделирования цифровых библиотек
- •Обзор средств, существующих в настоящее время
- •Средства проектирования компании cadence
- •Системное проектирование
- •Аппаратное проектирование и верификация
- •Математическое макетирование
- •Топологическое проектирование
- •Средства проектирования компании synopsys
- •Средства проектирования компании mentor graphics
- •Системный уровень
- •Уровень регистровых передач
- •Логический уровень
- •Заказное проектирование аналоговых и смешанных схем
- •Топологическое проектирование
- •Краткое описание возможностей SystemC
- •Контекст SystemC
- •Аспекты SystemC
- •Точность моделирования
- •Модели вычислений
- •Функциональное моделирование
- •Моделирование на уровне транзакций
- •Уровень rtl и связь с реализацией
- •Верификационные расширения
- •Построение модели функционального виртуального прототипа
- •Модели использования fvp
- •Создание встроенных программ
- •Функциональная верификация
- •Анализ fvp с помощью транзакций
- •Программы для характеризации цифровых библиотек
- •Spice-подобные программы моделирования
- •Интерфейс к пользовательским моделям
- •Программная система Charisma
- •Характеризация цифровой ячейки по помехоустойчивости
- •Помехоустойчивость цифровых бис к воздействию внешних помех
- •Устойчивость цепей питания цифровых бис
- •Анализ устойчивости цифровых бис к воздействию внутренних помех
- •Влияние помех в шинах питания на входы бис
- •Рекомендуемые схемотехнические методы борьбы с помехами в шинах питания бис
- •Помехи, генерируемые в сигнальных шинах из-за перекрестного взаимодействия
- •Помехи в сигнальных шинах, вызванные «состязаниями» сигналов
- •Конечная верификация проекта
- •Электрическая верификация
- •Временная верификация
- •Функциональная верификация
- •Заключение
- •Библиографический список
- •Оглавление
- •394026 Воронеж, Московский просп., 14
Проектирование цифровых интегральных схем
За последние два десятилетия плотность интеграции и быстродействие интегральных схем претерпели поражающие воображение изменения. В 1960 году Гордон Мур, тогда работавший в корпорации Fairchild Corporation и позднее ставший одним из основателей компании Intel, предсказал, что количество транзисторов, размещаемых на одном кристалле микросхемы, будет расти со временем по экспоненте. Это предсказание, позднее названное законом Мура, оказалось удивительно прозорливым. Величина степени интеграции приблизительно удваивается каждые один или два года. В результате с 1970 года плотность интеграции схем памяти, например, возросла более чем тысячекратно. Интересное явление представляют собой микропроцессоры. С момента их появления в начале 1970-х годов быстродействие и плотность интеграции микропроцессоров росли с постоянной и предсказуемой скоростью. За последнее десятилетие тактовая частота удваивалась каждые три года и теперь уже достигла гигагерцевого диапазона.
В условиях быстрого развития технологии проектирования критически важным моментом в достижении коммерческого успеха изделия становится время до его появления на рынке.
Как результат, разработчики начали все в большей степени придерживаться жестких методологий проектирования и стратегий, которые были более податливы автоматизации процесса проектирования.
Вместо использования индивидуализированного подхода ранних разработок теперь схема строится иерархическим образом: процессор представляет собой набор модулей, каждый из которых, в свою очередь, состоит из ячеек. В целях уменьшения трудозатрат на проектирование и увеличения шанса получения работоспособного решения с первого раза ячейки как можно чаще используются повторно. Иерархический подход, оказавшийся единственно возможным, является ключевой составляющей успеха цифровых интегральных схем, и это объясняет тот факт, что большие аналоговые схемы так и не получили развития.
Очевиден следующий вопрос: почему такой подход оказался жизнеспособным в мире цифровых приборов и не прижился (или прижился в меньшей степени) при проектировании аналоговых устройств? В данном случае краеугольной и наиболее важной в плане преодоления проблемы сложности оказалась концепция абстрагирования. На каждом уровне конструирования можно абстрагироваться от внутренних деталей строения сложного модуля и заменить их черным ящиком, или моделью. Такая модель содержит фактически всю информацию, необходимую для проектирования блока, принадлежащего следующему уровню иерархии. Например, после того, как разработчик создал модуль умножителя, характеристики этого модуля могут быть описаны с высокой точностью и введены в модель. В общем случае характеристики модуля только в весьма незначительной степени зависят от способа его использования в более крупной системе. Поэтому в большинстве случаев он может рассматриваться как черный ящик с известными характеристиками. Поскольку у проектировщика системы отсутствует настоятельная необходимость лезть внутрь такого ящика, сложность проектирования значительно снижается. Влияние подобного подхода "разделяй и властвуй" огромно. Вместо того чтобы иметь дело с мириадами элементов, разработчику достаточно рассматривать всего лишь горстку компонентов, каждый из которых в плане работы и стоимости характеризуется небольшим набором параметров.
Это похоже на работу разработчика программного обеспечения, использующего библиотеку подпрограмм, например драйверов ввода-вывода. Тому, кто пишет большую программу, вовсе не надо лезть внутрь библиотечных подпрограмм. Единственное, что его волнует, так это получение ожидаемого результата после обращения к одному из таких программных модулей. Можно только представить себе, во что бы превратилось написание программ, если бы проходилось извлекать из жесткого диска каждый бит по отдельности и обеспечивать его правильность, а не просто полагаться на удобные операторы "file open" и "get string".
Обычно используемые при проектировании цифровых устройств уровни абстрагирования в порядке возрастания степени абстрагирования выглядят следующим образом: прибор, цепь, вентиль, функциональный модуль (например, сумматор) и система (например, процессор) (рис. 1). Полупроводниковый прибор представляет собой элемент с очень сложным поведением.
Рис. 1. Уровни абстрагирования при проектировании цифровых интегральных схем
Но ни один схемотехник в процессе разработки вентиля не будет серьезно углубляться в уравнения физики твердого тела, описывающие поведение приборов. Вместо этого он просто воспользуется упрощенной моделью, которая адекватно описывает входные/выходные характеристики транзистора. Например, вентиль достаточным образом описывается реализуемым им булевым выражением ( ), размерами охватывающего его прямоугольника, положением входных и выходных выводов и величиной задержки выходного сигнала относительно входного.
Подобная философия проектирования сделала возможным появление развитых систем автоматизированного проектирования (САПР), ориентированных на цифровые интегральные схемы, — без них никогда бы не был достигнут тот уровень сложности, который мы имеем на сегодняшний день. Современные системы САПР имеют в своем составе средства для моделирования на различных иерархических уровнях, средства верификации проекта, генерации топологии и синтеза разработки в целом.
Кроме того, чтобы избежать перепроектирования и повторной верификации часто используемых ячеек, например базовых вентилей и арифметических модулей и модулей памяти, разработчики прибегают к созданию библиотек ячеек. Такие библиотеки содержат не только топологии, но также обеспечивают полное документирование и описание характеристик поведения ячеек.
Приведенный выше анализ демонстрирует, что автоматизация процесса проектирования и практика модульного проектирования эффективно справляются с некоторыми проблемами, связанными со сложностью разрабатываемых систем и присущими современным разработкам цифровых интегральных схем. Это приводит к неизбежно возникающему вопросу: если автоматизация проектирования решает все проблемы, то зачем тогда вообще переживать по поводу проектирования цифровых интегральных схем? Придется ли разработчику когда-либо волноваться из-за транзисторов и паразитных связей, или наименьшими рассматриваемыми им объектами проектирования будут вентиль и модуль?
Истина состоит в том, что реальность более сложная и существует множество причин, по которым глубокое понимание мельчайших деталей структуры и поведения цифровых схем еще долгое время будет оставаться важным активом разработчика.
Во-первых, кто-то по-прежнему должен будет проектировать и реализовывать библиотеки модулей. Полупроводниковые технологии продолжают с каждым годом совершенствоваться. До тех пор, пока кто-нибудь не разработал надежного метода "портирования" ячейки из одной технологии в другую, каждое изменение в технологии, а это происходит примерно каждые два года, будет требовать перепроектирования библиотеки.
Создание адекватной модели ячейки или модуля требует глубокого понимания того, как они работают внутри. Например, чтобы идентифицировать главные параметры, определяющие быстродействие, сначала необходимо выделить критический путь, задающий временную диаграмму функционирования.
Библиотечный подход хорошо работает в тех случаях, когда налагаемые на разработку ограничения (быстродействие, стоимость или потребляемая мощность) не слишком жесткие. Тут возможны разнообразные специфичные для конкретного применения проектные решения, когда в качестве главной цели выступает получение более интегрированного варианта системы, а требования по быстродействию не выходят за рамки возможностей технологии. К сожалению, для большого количества других продуктов, например процессоров, успех зависит от быстродействия, и поэтому разработчики стремятся выйти на пределы возможностей технологии. В таких обстоятельствах иерархический подход становится несколько менее привлекательным. Если вернуться к упомянутой ранее аналогии с методологиями разработки программного обеспечения, то в тех случаях, когда критически важным является время исполнения, программист склоняется к "индивидуализации" подпрограмм; компиляторы — или средства проектирования — еще не достигли того уровня, который могут дать упорный человеческий труд и изобретательность.
Еще более важным является то наблюдение, что основанный на абстрагировании подход корректен только до определенной степени. Например, быстродействие сумматора может существенным образом зависеть от способа его подключения к окружению. Вносят вклад в общую задержку и сами межсоединения, поскольку они обладают паразитными емкостью, сопротивлением и даже индуктивностью. В будущем по мере масштабирования технологий в сторону уменьшения размеров влияние паразитных элементов межсоединений будет только возрастать.
Масштабирование, как правило, усиливает и некоторые другие недостатки основанной на абстрагировании модели. Некоторые объекты проектирования приобретают глобальный или внешний характер. Примерами глобальных факторов являются тактовые сигналы, используемые для синхронизации цифровой системы, и линии подвода питания. Рост размеров цифровых микросхем оказывает заметное влияние на эти глобальные сигналы. Например, подключение большего количества ячеек к линии питания может вызвать заметное падение напряжения на ней, что может замедлить работу всех подсоединенных к ней ячеек. Проблемы, связанные с распределением тактовых сигналов, синхронизацией работы микросхемы и распределением напряжения питания, приобретают все более и более важное значение. Их решение требует хорошего понимания всех особенностей проектирования цифровых микросхем.
• Еще одним следствием развития технологии является появление со временем новых особенностей проектирования и новых ограничений. Примером этого является периодическое возникновение в качестве ограничивающего фактора величины рассеиваемой мощности, о чем уже говорилось в историческом обзоре. В качестве другого примера можно привести изменение в пропорциях величин паразитных элементов прибора и межсоединений. Чтобы преодолеть эти непредвиденные факторы, необходимо, по крайней мере, уметь смоделировать и проанализировать их воздействие, что опять же требует глубокого понимания топологии цепи и ее поведения.
Наконец, если что-то может пойти не так, то обычно так и происходит. Изготовленная микросхема не всегда имеет на выходе сигналы с той формой, которую можно было бы ожидать по результатам предварительного моделирования. Отклонения могут вызываться изменениями параметров процесса изготовления, индуктивностью корпуса или плохим моделированием тактового сигнала. Устранение ошибок проектирования требует квалификации в области схемотехники.