Например, Бобцов

АППАРАТНО-ПРОГРАММНОЕ ПРОЕКТИРОВАНИЕ СЛОЖНЫХ ФУНКЦИОНАЛЬНЫХ БЛОКОВ С ИСПОЛЬЗОВАНИЕМ СИСТЕМ НА КРИСТАЛЛЕ

АППАРАТНО-ПРОГРАММНОЕ ПРОЕКТИРОВАНИЕ СЛОЖНЫХ ФУНКЦИОНАЛЬНЫХ...
7 СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ
УДК 681.3 АППАРАТНО-ПРОГРАММНОЕ ПРОЕКТИРОВАНИЕ СЛОЖНЫХ ФУНКЦИОНАЛЬНЫХ БЛОКОВ С ИСПОЛЬЗОВАНИЕМ СИСТЕМ НА КРИСТАЛЛЕ И.А. Зубакин, Ш.С. Фахми, С.С. Шагаров
С увеличением возможностей технологии проектирования СБИС класса «система на кристалле» становится все более привлекательным и необходимым средством создание интегрированных САПР БИС/СБИС с программируемой структурой. В статье рассматриваются некоторые этапы проектирования (аппаратная и программная части проекта схемы) и верификации схемы в целом на примере разработки умножителя с использованием аппаратно-программных средств САПР на базе технологии «система на кристалле». Ключевые слова: система на кристалле, уровень регистровых передач, сложный функциональный блок, программируемая логическая интегральная схема.
Введение
В настоящее время сложность систем на кристалле (СнК) и разновидности инженерных решений микропроцессорных систем на базе программируемых логические интегральных схем (ПЛИС) привели к бурному развитию методологии проектирования. Методология сопряженного проектирования − методология, которая позволяет архитекторам системы и инженерам верификации работать на более высоком уровне абстракции. Трудности проектирования СнК связаны как с необходимостью выполнять проекты в сжатые сроки, так и с постоянно возрастающей сложностью систем. По существующим оценкам средний объем современных проектов превышает сотни тысяч вентилей и имеет тенденцию постоянного роста, и в окончательной стоимости проекта все большую роль играют разработанные программные и аппаратные ресурсы. Возрастание сложности современных проектов как в части объемов аппаратного обеспечения (количество логических вентилей), так и в части объемов программного обеспечения (объем программного кода) делает проблему технологической, методической и методологической поддержки данного направления актуальной [1, 2].
СнК образуют динамический, быстро растущий сектор рынка. Интеграция все большего числа сложных функциональных блоков (СФ-блоков) в одном кристалле сопровождается сокращением площади плат при реализации проектов, повышением быстродействия систем и их надежности, уменьшением потребляемой мощности и стоимости. Возможность быстрой реконфигурации схем непосредственно в работающем устройстве открывает перспективы не только эффективной отработки прототипа проекта, но и создания принципиально новых структур с динамическим реконфигурированием и многофункциональным использованием аппаратных и программных средств. Все перечисленные реалии и отсутствие материала по предметной области делает проблему методической поддержки сопряженного проектирования СнК востребованной и нуждающейся в популяризации.
Средства проектирования
Для сопровождения проектирования цифровых устройств обработки сигналов на основе перспективной технологии СнК различные производители предлагают интегрированные программные средства проектирования. В данной статье рассмотрена среда FastChip, которая представляет программный пакет, обеспечивающий управление всем
90 Научно-технический вестник Санкт-Петербургского государственного университета
информационных технологий, механики и оптики, 2010, № 2(66)

И.А. Зубакин, Ш.С. Фахми, С.С. Шагаров

процессом реализации устройств на основе технологии CнК. Среда FastChip имеет характерные черты других подобных САПР, а потому ее возможности представляют интерес для анализа и исследования. На современном этапе наблюдается тенденция специализации средств автоматизированного проектирования электронных изделий, что является важнейшим условием эффективности разработки и ускорения выпуска продукции. Такой пример сочетания специализации, функциональности и открытости современных САПР демонстрирует указанная среда разработки.
Новизна СнК заключается в одновременной аппаратно-программной реализации на одном кристалле значительной (если не всей) функционально законченной части аппаратуры. Поэтому средства моделирования системного уровня как самой аппаратуры, так и кристаллов СнК одни и те же. За рубежом сейчас действуют сотни дизайнцентров при аппаратостроительных фирмах и масса отдельных дизайн-центров. В них соразработчиками элементной базы выступают разработчики аппаратуры. Они либо доводят проект до .edif файла, который передается разработчикам кристаллов, либо делают только системный проект до уровня регистровых передач (RTL-уровня) [3].
Кроме того, поскольку СнК – изделие не только очень сложное, но и дорогое при небольших объемах выпуска, ошибки проектирования должны быть исключены. Поэтому в новой методологии, кроме математического моделирования, необходим этап создания прототипа устройства на базе неких специальных аппаратно-программных платформ, которые сегодня так и называются – алгоритмически ориентированные платформы проектирования. Они содержат набор элементов: ПЛИС, процессорные ядра, память, определенную шинную архитектуру, интерфейсы и т.д., которые позволяют создать прототип схемы до ее воплощения в СБИС. А дальше разработчик решает, остановиться ему на уровне ПЛИС или производить специализированные СБИС на основе СнК [4].
В настоящее время СнК включает в свой состав несколько миллионов эквивалентных вентилей, разнообразные типы процессоров, в том числе и цифровой обработки сигнала, т.е. представляет собой большую сложную систему. Это обстоятельство заставляет при всей общности методологии проектирования уточнять ее на примере конкретной СнК, в качестве которой в данной статье выбрана реконфигурируемая СнК фирмы Triscend (ZyLogic) [5, 6].
Целью данной статьи является описание маршрута сопряженного проектирования аппаратно-программных частей СФ-блоков на основе 32-разрядной СнК, входящей в состав лабораторного макета [7], и отобразить основные проектные процедуры верификации и отладки на примере цифрового устройства умножения целых чисел. Также в статье показано, что весь процесс проектирования проводится как начальный этап, а соверификация и сосимуляция – это последующие самостоятельные этапы. Хотя имеются разные трактовки сопряженного проектирования, но реально совместные процедуры выполняются в различных комбинациях на различных этапах проектирования [8].
Следует отметить, что идеология разработки устройств на основе технологии «реконфигурируемая СнК» отличается от проектирования устройств в многокристальном исполнении. Это связано с тем, что реконфигурируемые СнК представляют собой приборы системного уровня интеграции, т.е. сочетают на одном кристалле как разнородные аппаратные структуры (процессор, программируемая логика, оперативная память), так и архитектурные элементы их взаимодействия (адресные селекторы, конфигурируемая системная шина). Специфика разработки цифровых устройств на основе реконфигурируемой СнК заключается в интеграции с помощью САПР двух потоков проектирования:
− реализации аппаратной составляющей системы на основе конфигурируемой системной логики CSL (ячейки матрицы FPGA и средства соединений между ними);

Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики, 2010, № 2(66)

91

АППАРАТНО-ПРОГРАММНОЕ ПРОЕКТИРОВАНИЕ СЛОЖНЫХ ФУНКЦИОНАЛЬНЫХ...

− разработки программной составляющей системы для встроенного микропроцессорного ядра, используя ресурсы как встроенных периферийных элементов, так и возможности интерфейса с конфигурируемой логикой. Сопряженное проектирование – процесс параллельного проектирования аппарат-
ных и программных средств, при котором оценивается целесообразность выбора аппаратной или программной реализации определенного фрагмента проекта. Этот процесс также позволяет проектировщикам увидеть, как система могла бы работать с данным разделением аппаратных средств ЭВМ и программного обеспечения [9].
Сопряженная верификация – проверка возможности совместного функционирования программного обеспечения и аппаратных средств ЭВМ. С другой стороны, во время этого процесса анализируется, будут ли одинаково решаться специфические задачи проекта при аппаратной или программной реализации. Результатом работы является фиксация выбранного варианта реализации.
Прототипирование аппаратно-программных частей проекта
В основу прототипирования положен простой принцип: необходимо создать поведенческую модель СФ-блока до начала детальной разработки аппаратной и программной частей проекта. При этом прототип должен представлять собой точную (до цикла) поведенческую модель всего СФ-блока, включая его аппаратную и программную части [10].
Рассмотрим цифровое устройство умножения целых чисел (рис. 1), включающее в себя три основных блока:
а) программная часть проекта для ввода исходных данных в составе двух программно доступных регистров, доступ к которым осуществляется с помощью средств компиляции, позволяющих поддерживать все стадии разработки;
б) аппаратная часть проекта, реализованная на языке VHDL, для выполнения операции умножения и импортированная в САПР;
в) блок вывода результатов умножения на индикацию, реализуемый на элементах из библиотеки СФ-блоков.

Программная часть проекта

Аппаратная часть проекта

Регистр 1 Регистр 2

Умножитель

Программно дост упны е регистры

Импортированный СФ -б лок

Библиотечный СФ-блок

Рис. 1. Цифровое устройство умножения целых чисел

92 Научно-технический вестник Санкт-Петербургского государственного университета
информационных технологий, механики и оптики, 2010, № 2(66)

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

Импортирование СФ-блоков
Библиотека модулей

Поле ПЛИС

Рис. 2. Графические средства описания проекта

Средства описания проекта САПР FastChip включают как собственные средства (библиотечные элементы), так модули, создаваемые пользователем. Набор предлагаемых средой FastChip предопределенных элементов достаточно широк (около 150), постоянно расширяется, и его можно разделить на следующие группы:
− типовые параметризируемые элементы вычислительной техники (логические элементы, мультиплексоры, счетчики и т. д.), конкретные параметры которых (разрядность, коэффициент пересчета, начальное состояние) могут назначаться разработчиком;
− специализированные элементы взаимодействия микропроцессорной части реконфигурируемой СнК и матрицы программируемой логики (адресные селекторы, элементы системной шины, схемы синхронизации и ожидания);
− специфичные для реконфигурируемой СнК составляющие (буферные элементы, порты ввода–вывода);
− типовые узлы вычислительных систем (контроллеры интерфейсов, графических индикаторов и т. д.), часть параметров которых варьируется проектировщиком. Библиотечные модули, от простых (логические вентили, сумматоры, умножители,
компараторы, счетчики, элементы памяти) до сложных (блок шифрования DES), пред-

Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики, 2010, № 2(66)

93

АППАРАТНО-ПРОГРАММНОЕ ПРОЕКТИРОВАНИЕ СЛОЖНЫХ ФУНКЦИОНАЛЬНЫХ...

ставляют собой готовые к использованию виртуальные элементы принципиальной схе-

мы, являющиеся «блоками интеллектуальной собственности – IP». Такие параметризи-

руемые конструкции в терминологии САПР FastChip называются «Soft Modules», что

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

полняются аппаратно с помощью внутрикристальной программируемой логики. Следу-

ет отметить, что библиотечные модули не содержат никакой информации о своей ком-

поновке внутри FPGA, следовательно, их быстродействие будет зависеть от конкретно-

го варианта размещения, трассировки и загруженности кристалла.

После определения необходимых для решения задачи библиотечных модулей раз-

работчик размещает выбранные блоки в рабочей области (проектном окне) экрана

САПР и при необходимости определяет их символические имена. Далее проектиров-

щик осуществляет настройку изменяемых параметров выбранных модулей, например,

разрядность счетчика, начальное состояние регистров и т.д., путем установки конкрет-

ных числовых значений в полях конфигурации модуля. Среда FastChip оперативно от-

ражает оценку затрат на реализацию (число требуемых логических ячеек, портов ввода-

вывода, адресных селекторов) в зависимости от сложности проекта.

Синтез умножителя на языке VHDL. Наиболее универсальное решение в области

синтеза принадлежит компании Synplicity (САПР Synplify), которое покрывает все свя-

занные с этим аспектом области проектирования, а именно логический и физический

синтез для ПЛИС любых производителей, макетирование специализированных уст-

ройств на ПЛИС, а также средства отладки прошивок на уровне исходного RTL описа-

ния и написанные на языке VHDL.

Операция умножения, независимо от способа реализации, требует использования

n × (m − 1) полных одноразрядных сумматоров, где m – число разрядов сомножителей.

Реализация умножения с использованием n -разрядных сумматоров порождает широ-

кую номенклатуру параллельных умножителей, в том числе матричную и пирамидаль-

ную структуры и смешанные варианты [3]. Устройства этого класса способны выпол-

нить умножение за один такт работы схемы. Подобными характеристиками обладают

схемы, построенные на основе набора параллельных умножителей меньшей разрядно-

сти с последующим суммированием частичных произведений [3], однако вопросы, свя-

занные с синтезом устройства умножения, не являются целью статьи, а реализация

предлагается с использованием встроенной в САПР функции умножения.

Упрощенная программа реализации операции умножения:

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_arith.all;

use IEEE.std_logic_unsigned.all;

entity Mul2x1 is

port ( A, B

: in std_logic_vector(7 downto 0);

PP : out std_logic_vector(15 downto 0));

end Mul2x1;

architecture AMult of Mul2x1 is

signal sA, sB : unsigned (7 downto 0);

signal sP

: unsigned(15 downto 0);

begin

sA