Добрый день, уважаемые посетители сайта!

Данная статья предназначена для новичков в проектировании цифровых интегральных схем и описывает маршрут (последовательность действий), применяемый при их проектировании.

Общие сведения

Программируемые логические интегральные схемы (ПЛИС), как следует из названия, являются подтипом интегральных схем, основной особенностью которых является возможность их многократной реконфигурации, т.е. изменения их поведения и связей базовых элементов посредством загрузки их конфигурации в элементы памяти. Данная особенность ПЛИС является несомненным плюсом при первых шагах в освоении маршрута проектирования, так как он, в основном, является идентичным для всех интегральных схем, за исключением различия в последних этапах проектирования.

Маршрут проектирования (Design Flow) — последовательность действий, определяющая   этапы   проектных  процедур, используемых на всех стадиях разработки цифровых устройств — от формирования и формализации идеи до тестирования готовых образцов.

Проектирование архитектуры цифровых устройств и микропроцессоров может производиться как на уровне схем с использованием графического схемного редактора, так и с использованием специализированных языков, называемых языками описания цифровой аппаратуры. В настоящее время подавляющее большинство проектируемых цифровых систем производится с помощью данных языков, поэтому именно этот метод будет рассмотрен в данной статье.

В настоящее время применяются два основных языка описания аппаратуры (Hardware Description Language — HDL): VHDL и SystemVerilog. По сравнению с языком SystemVerilog язык описания аппаратуры VHDL является более многословным и громоздким, однако множество компаний используют при разработке аппаратуры язык VHDL.

На обоих языках можно полностью описать любую электронную систему, но у каждого из них есть свои особенности. Лучше использовать язык, который уже распространен в вашей организации или тот, которого требуют ваши клиенты. Большинство систем автоматизированного проектирования (САПР) позволяют смешивать языки, поэтому разные составные части проекта могут быть разработаны с использованием различных средств. Несмотря на существенные различия данных языков, маршрут проектирования при применении любого из них будет идентичным.

В нашем подразделении при проектировании микросхем применяется язык описания аппаратуры SystemVerilog, поэтому в последующих блогах все примеры будут представлены именно на этом языке.

Уровни проектирования

Проектирование сложно-функциональных цифровых устройств или систем (например микропроцессора) является трудоемкой задачей и требует решения множества вопросов, от определения системы команд, общего алгоритма работы устройства и параметров отдельных его частей, до взаимодействия конкретной пары регистров в этом устройстве. В связи с этим сам процесс проектирования разделен на несколько уровней, от более высокого уровня абстракции, где отрабатываются алгоритмы и параметры составных частей, до самого низкого, где работа ведется с базовыми логическими элементами, такими как триггер или комбинационные схемы.

Системный уровень проектирования (System Level)

Системный уровень проектирования является первым этапом проектирования сложно-функциональных цифровых устройств. На данном этапе проводят выбор и анализ алгоритмов, реализуемых устройством, определяют архитектуру устройства и проводят анализ эффективности выполнения устройством поставленных алгоритмов. Также на данном этапе определяют характеристики составных частей устройства, размер и эффективность использования памяти, характеристики интерфейсов между устройствами, определяют алгоритмы буферизации и кэширования данных, распределяют функции между аппаратной и программной частью устройства и т.п.

На системном уровне проектирования разрабатывается поведенческая модель, или модель системного уровня (System Level Model) — модель высокого уровня абстракции, описывающая общий алгоритм функционирования устройства на языках высокого уровня, таких как MathLab, C++, SystemC и SystemVerilog. Наиболее часто поведенческие модели описаны с использованием объектно-ориентированного подхода и не учитывают временные характеристики работы устройства, такие как время выполнения арифметических операций и время передачи данных между составными частями устройства в соответствии с используемыми интерфейсами.

Также поведенческой моделью может считаться описание архитектуры системы с моделями составных частей, описанных на уровне транзакций — модель уровня транзакций (Transaction Level Model — TLM). Модель уровня транзакций — способ описания системы с использованием функций, описывающих множество транзакций через множество каналов. Данная модель описывает коммуникационное взаимодействие между составными частями и поведение самих составных частей цифрового устройства.

Модель уровня транзакций, в зависимости от ее назначения, может иметь различную детализацию во временных характеристиках работы составных частей цифрового устройства. В данной модели рассматривается два основных типа объектов, к которым могут применяться данные характеристики: функциональные модули и интерфейсы. К каждому из них могут быть применены три типа временной детализации: без учета времени выполнения (Un-timed), с учетом усредненного и/или вероятностного времени выполнения (Approximately-timed), а также с учетом времени исполнения с точностью до такта синхронизации (Cycle-timed).

Помимо поведенческой модели цифрового устройства на этапе системного проектирования разрабатываются модульные тесты для его составных частей (модулей) и интеграционные тесты для системы в целом.

Алгоритм выполнения процессов на системном уровне проектирования
Алгоритм выполнения процессов на системном уровне проектирования

Неоспоримым преимуществом системных моделей является малое время моделирования (по сравнению с моделями более низкого уровня абстракции) и возможность использовать данные модели для разработки программного обеспечения системы параллельно с дальнейшей разработкой аппаратной части системы на последующих уровнях проектирования системы.

Функциональный уровень проектирования (Functional Level)

Функциональный уровень проектирования является вторым этапом в создании цифровых устройств. На данном этапе разрабатываются описание устройства с использованием ранее упомянутых языков описания аппаратуры. Исходными данными для данного этапа являются результаты работ, проведенных на системном уровне, а также характеристики целевой интегральной схемы и её окружения в модуле аппаратуры.

На основании исходных данных, полученных с системного уровня в виде спецификации устройства и его структуры, производится дальнейшая декомпозиция функциональности устройства и определяются требования к его составным частям, разрабатывается функциональная схема аппаратной части и протоколы информационно-логического взаимодействия между ними.

Результатом функционального уровня проектирования является модель на уровне регистровых передач ( Register Transfer Level — RTL) — модель цифрового устройства на языке описания аппаратуры, в которой проект представляется в виде иерархии связанных компонентов и в виде множества параллельных регистровых операций, каждая из которых управляется вентильными сигналами.

Также на данном этапе производится верификация (проверка на соответствие функциональным требованиям и спецификации) разработанной модели посредством имитационного моделирования с использованием средств САПР. Верификация может проводиться с использованием разработанных на системном уровне проектирования модульных и интеграционных тестов, в то время как разработанная поведенческая модель устройства может использоваться в качестве эталонной.

Схемотехнический (логический) уровень проектирования (Logical Level)

Переход от функционального уровня проектирования к схемотехническому уровню в общем случае осуществляется с использованием программного обеспечения, входящего в состав САПР. Исходными данными для данного программного обеспечения являются:

  • модель уровня регистровых передач, разработанная и верифицированная на предыдущем уровне проектирования;
  • библиотека базовых элементов и блоков целевой интегральной схемы, а также информация о прочих ее параметрах (типов вводов/выводов, объем и организация блоков встроенной памяти и/или вычислительных блоков и т.п.)

На основании представленных исходных данных, программное обеспечение, называемое синтезирующим компилятором, выполняет процедуру синтеза логической схемы (Logical Synthesis) — автоматизированной генерации списка цепей (Netlist) цифрового устройства на основе описания на языке высокого уровня.

Алгоритм выполнения процессов на функциональном и логическом уровнях проектирования
Алгоритм выполнения процессов на функциональном и логическом уровнях проектирования

Логическая модель (Logic Model) — модель цифрового устройства, представленная в виде списка цепей в базисе библиотеки производителя или в виде списка связей логических элементов без привязки к библиотеке производителя. Также в состав логической модели входит модель базовых элементов производителя/логических элементов на языке описания аппаратуры для ее использования в программах моделирования.

Топологический уровень проектирования (Physical Level)

Топологический уровень проектирования является последним этапом в проектировании цифровых устройств. Данный уровень тесно связан с целевой микросхемой, так как именно на нем определяется местоположение всех элементарных элементов в ее базисе, параметры их соединения и физические характеристики. На данном уровне выполняются следующие процессы:

Планирование топологии (Floorpaning) — часть этапа топологического проектирования, заключающаяся в разработке плана кристалла, включающего расположение блоков, контактных площадок, цепей питания, областей размещения цифровых схем.

Размещение элементов (Placement) — часть этапа топологического проектирования, заключающаяся в создании предварительного или финального размещения элементарных ячеек на кристалле.

Трассировка межсоединений (Routing) — часть этапа топологического проектирования, заключающаяся в создании  металлизированных соединений между элементами.

Синтез дерева цепей синхронизации (Clock-Tree synthesis) — процедура, выполняемая на этапе логического или топологического проектирования, заключающаяся в расстановке буферных элементов в цепях синхронизации и сброса для минимизации рассогласования времени поступления сигналов на разные участки схемы.

Экстракция паразитных элементов (Extraction) процедура выявления  паразитных  элементов (как правило, емкостей и сопротивлений) на основе топологии и определение их параметров для учета их влияния в программах моделирования.

Результатом выполнения перечисленных операций является файл конфигурации для ПЛИС (бинарные данные, описывающие характеристики и связи между ее базовыми элементами), который затем загружается в конфигурационное запоминающее устройство, или данные для изготовления интегральной схемы.

Также в результате выполнения данного этапа формируется список цепей в базисе целевой микросхемы и файл с временными параметрами (Standard Delay Format — SDF) элементов списка цепей и всех связей между ними. Данная информация используется системами моделирования для проведения окончательной верификации модели цифрового устройства в процессе временного моделирования.

Временное моделирование позволяет верифицировать систему с учетом времени распространения сигналов как на базовых элементах микросхемы, так и на связях их соединяющих, что, в свою очередь, позволяет проверить разработанное устройство «в динамике» с учетом гонок сигналов, нестабильного переключения запоминающих элементов и работы комбинационной логики, а также учетом потребляемой мощности.

В заключении …

Прочитав данную статью Вы должны получить общее представление о маршруте проектирования цифровых устройств на базе программируемых логических интегральных схем с использованием языков описания аппаратуры, в том числе об этапах проектирования: системном, функциональном, логическом и топологическом, а также о основных терминах и процессах, проходящих на данных этапах.

В рамках проектирования цифрового устройства по описываемому маршруту поэтапно разрабатываются модели различного уровня абстракции — от моделей высокого уровня до самого низкого, при этом на каждом последующем уровне в качестве эталонной модели используется модель с предыдущего уровня.

Время моделирования цифрового устройства, что немаловажно при его разработке, существенно возрастает при переходе от верхнего уровня к нижним (от нескольких минут до недель и месяцев). Таким образом определение характеристик и архитектуры будущего устройства должно проводиться на высоких уровнях проектирования, а на нижних уровнях проводится их оптимизация.

Маршрут проектирования цифровых схем на ПЛИС

You May Also Like

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *