УДК 004
КОСТЫГОВ Д.В., БЕЛЯЕВ Я.В.
ГНЦ РФ АО «Концерн «ЦНИИ «Электроприбор», С-Петербург
Разработка цифровой части ASIC с использованием программных продуктов компании Cadence.
Представлен маршрут разработки цифрового блока в программном продукте компании Cadence с использованием технологической библиотеки фабрики производителя. В работе рассматривается верификация, компиляция с использование стандартных ячеек и синтез топологии цифровой части ASIC
Введение
Связь интегральной схемы с внешними устройствами важнейшая задача. Необходимо не только управлять режимами интегральной схемы, но получать данные из нее. Для этого используются различные интерфейсы такие как UART, SPI, I2C, USB и др. Для проектов в которых критична площадь кристалла, но не критично количество линий связи чаще всего используют интерфейс SPI, так как он занимает минимальное количество площади на кристалле.
Маршрут проектирования цифровых интегральных схем
Из-за невероятного роста сложности современных интегральных схем задача их проектирования также является весьма нетривиальной. Разработать схему, содержащую несколько миллионов транзисторов, и обеспечить ее корректную работу настолько сложно, что без помощи компьютера и четких методологий проектирования это сделать практически невозможно.
Поэтому без четкого маршрута проектирования, разработка сложных интегральных схем не возможна.
На рисунке 1 представлена первая часть маршрута проектирования цифровых интегральных схем. Первая часть состоит из двух этапов:
Разработка на уровень регистровых передач.
Разработка на уровень логических вентилей.
На уровне регистровых передач создается модель на уровне регистровых передач (RTL-модель) цифрового устройства. Для создания модели используются языки проектирования аппаратуры такие как VHDL, Verilog, SystemC. Так же создаются тесты для проведения моделирования и верификации. Готовую модель на RTL уровне дополняют файлом временных настроек и передают на следующий уровень.
На уровне логических вентилей производится синтез с использованием библиотеки стандартных ячеек таблицы соединений логических вентилей на основе RTL модели с предыдущего этапа. Таблица соединений логических вентилей представляется в виде Verilog файла, он содержит информацию о том, как соединены между собой стандартные ячейки из библиотеки. Для проверки правильности выполнения синтеза также проводится моделирование полученной таблицы.
Рисунок 1 – Первая часть маршрута проектирования
Проверка эквивалентности является важной частью маршрута проектирования. Она позволяет выявить несоответствия между RTL моделью и синтезированной таблице соединения логических вентилей. Кроме того, она позволяет выявить выражения и переменные, которые были проигнорированы синтезатором и указывает по какой причине они были пропущены.
На рисунке 2 представлена вторая часть маршрута проектирования цифровых интегральных схем. Вторая часть маршрута состоит из двух этапов:
Размещение и трассировка.
Верификация.
Рисунок 2 – Вторая часть маршрута проектирования
На этапе размещения и трассировки проводится размещение стандартных ячеек на кристалле в соответствии с таблицей соединения на уровне логических вентилей. После размещения стандартных ячеек выполняется трассировка соединений между ячейками. Статический временной анализ выполняется для определения временных характеристик. После выполнения этапа получается:
Обновленная таблица соединений логических вентилей.
Топология кристалла.
Временные характеристики.
На этапе верификации проводятся проверки на соблюдение правил проектирования и возможность изготовления. Так же обязательно проводится моделирования для подтверждения работоспособности цифровой интегральной схемы.
После верификации генерируется GDSII файл, который содержит всю необходимую информацию для начала производства цифровой интегральной схемы.
RTL модель внешнего интерфейса
Задача блока внешнего интерфейса – организация связи интегральной схемы с внешними устройствами такими как микроконтроллер или персональный компьютер.
Блок внешнего интерфейса состоит из следующих блоков:
SPI-slave.
Устройство управления.
Счетчик.
Приемная очередь.
Передающая очередь.
Организация внешнего интерфейса, как отдельного устройства, со своими очередями и автоматом управления, облегчает взаимодействие интерфейса и других блоков в устройстве.
На рисунке 3 представлена схема блока внешнего интерфейса.
Рисунок 3– Схема блока внешнего интерфейса
На рисунке 4 представлен вид блока внешнего интерфейса с входными, выходными сигналами и цепями питания.
Рисунок 4 – Блок внешнего интерфейса
На схеме выделены следующие сигналы:
clk – тактирующий сигнал внутри схемы
rst_n – сигнал асинхронного сброса,
data_out – выходные данные,
data_in – входящие данные,
readen_resive – сигнал для чтения из очереди блока внешнего интерфейса,
write_transmit – сигнал для записи в очередь блока внешнего интерфейса,
SS – сигнал выборки устройства,
SCK – тактовый сигнал от мастера,
MOSI – master out, slave in,
MISO – master in, slave out,
VDD – цепь питания,
GND – цепь земли.
Верификация внешнего интерфейса
Для прямого тестирования был написан тест на языке VHDL. Тест включал набор данных для передачи по SPI интерфейсу, этот набор загружался в передающую очередь и далее передавался по SPI интерфейсу. Еще в тесте был создан набор данных для приема через SPI интерфейс, эти данные после интерфейса записывались в принимающую очередь. Для выполнения прямого теста и визуализации результатов его выполнения использовалось программное обеспечение Mentor Graphics ModelSim 10.1d.
Для случайного тестирования использовался тест написанный на языке System Verilog, так как это язык позволяет во время тестирования собирать информацию о покрытии. Для случайного тестирования и построения покрытия использовалось программное обеспечение Cadence Incisive. После разработки тестов необходимо провести моделирование и верификацию устройства с помощью этих тестов.
Так же во время выполнения случайных тестов производится набор информации для построения покрытия кода и управляющего автомата.
На рисунке 5 представлена временная диаграмма выполнения прямого теста. На рисунке можно увидеть данные записанные в передающую очередь, передаются, а данные которые принимает интерфейсное устройство записываются в принимающую очередь. Так же по временной диаграмме можно проверить корректность передающихся данных так как начальный набор известен.
На рисунке 6 представлена временная диаграмма случайного тестирования по ней видно, что в результате работы устройства нет непредвиденных сбоев его работы. Устройство работает при любых входных данных, а также при случайных срабатываниях некоторых сигналов.
Рисунок 5 – Временная диаграмма выполнения прямого теста для внешнего интерфейса
Рисунок 6 – Временная диаграмма выполнения случайного теста для внешнего интерфейса
На рисунке 7 представлена общая информация о покрытии кода внешнего интерфейса.
На рисунке 8 представлена информация о покрытии управляющего автомата внешнего интерфейса. По картинке видно, что все состояния автомата были пройдены, а также пройдены все возможные линии переходов.
На рисунке 9 представлена информация о покрытии кода внешнего интерфейса. Покрытие кода не 100% так как в устройстве есть служебные сигналы, которые не используются.
Рисунок 7 – Общая информации о покрытии
Рисунок 8 – Информации о покрытии управляющего автомата
Рисунок 9 – Информация о покрытии кода
Выполнение синтеза
Задачей синтеза схемы является перевод логического описания цепи в сеть транзисторов, удовлетворяющую заданным временным ограничениям.
Синтез логики состоит в генерации структурного представления модели на логическом уровне. Такие модели можно задавать множеством различных способов, например, с помощью диаграмм состояний, фазовых диаграмм, принципиальных схем, булевых уравнений, таблиц истинности или описаний на HDL (Hardware Description Language – язык описания аппаратуры).
Процесс синтеза состоит из последовательности этапов оптимизации, порядок и природа которых зависит от выбранной функции стоимости – площади, скорости, мощности или их комбинации. Обычно системы оптимизации логики делят указанную задачу на два этапа.
Фаза, не зависящая от технологии, когда логика оптимизируется с помощью нескольких техник булевых или алгебраических манипуляций.
Фаза отображения, в технологию, в ходе которой учитываются особенности и свойства предполагаемой архитектуры реализации. Полученное на первом этапе описание, не зависящее от технологии, переводится в таблицу соединений логических элементов схемы или ПЛМ-описание.
Для проведение синтеза был спроектировать скрипт с настройками среды.
На рисунке 10 представлен результат интерфейсного устройства. В
Рисунок 10 – Результат первого этапа синтеза для всей схемы
На рисунке 11 представлен результат первого этапа синтеза для spi интерфейса. На схеме видно множество логических элементов, но они не привязаны к ячейкам из библиотеки стандартных ячеек.
Рисунок 11 – Результат первого этапа синтеза для всей схемы
Проектирование топологии
Целью топологического проектирования ИС является создание комплекта исходной информации и разработка сопроводительной документации, необходимой для производства кристалла на микроэлектронной фабрике. В процессе проектирования топологии основными критериями являются площадь предполагаемого кристалла, от которой зависит себестоимость производства микросхем на фабрике, и его быстродействие.
На рисунке 12 представлен маршрут разработки топологии.
Рисунок 12– Маршрут разработки топологии
Этапы разработки топологии можно свести к следующим:
Импорт таблицы соединений логических вентилей (Verilog net-листа).
Задание ограничений на расположение компонентов проекта (P&R hints).
Подключение к проекту технологических библиотек и СФ-блоков.
Размещение компонентов проекта и шин питания и «земли» (floorplan).
Размещение стандартных ячеек библиотеки фабрики (place).
Размещение дерева тактовых сигналов.
Трассировка сигнальных цепей (nanoroute).
По приведённому на рисунке 12 маршруту была спроектирована топология интерфейсного устройства она представлена на рисунке 13
Рисунок 13 – топология интерфейсного устройства
Заключение
Рассмотрен маршрут проектирования интегральных схем. На примере маршрута спроектировано интерфейсное устройство.
Для интерфейсного устройства разработана RTL-модель, проведена ее верификация. Также синтезирована таблица соединений на вентильном уровне.
Проведена разработка топологии интерфейсного устройства и сгенерирован GDSII файл.
Литература
Точчи Р.Дж., Уидмер Н.С. Цифровые системы. Теория и практика. – 8-е издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2004. – 1024 с.
Цифровые интегральные схемы. Методология проектирования. Рабаи Ж.М., Чандраксан А., Борижович Н. – 2-е издание. – М.: Издательский дом «Вильямс», 2007. – 911с.
-
Проектирование СБИС типа СнК. Маршрут проектирования. Топологическое проектирование. Синхронизация и тактовые деревья. Часть 2. Стешенко В., Руткевич А., Гладкова А., Шишкин Г., Бумагин А., Гондарь А.
Hubert Kaeslin Digital Integrated Circuit Design. – Cambridge University.
Spear C. System Verilog for Verification: A Guide to Learning the Testbench Language Feature. – Springer.
Bergeron J. Writing Testbenches using SystemVerilog. – Springer.
Verification Methodology Manual for SystemVerilog. Bergeron J., Cerny E., Hunter A., Nightingale A. – Springer.
Компания Cadence. Cadence Design System = Сайт компании – http://cadence.com.
Компания Cadence. Cadence Online Support = Сайт поддержки компании Cadence – http://support.cadence.com.
|