УДК 681.3
сопряженное проектирование на базе реконфигурируемых систем на кристалле
Е. В. Костикова,
ассистент Санкт-Петербургский государственный университет водных коммуникаций
Ш. С. Фахми,
канд. техн. наук, доцент Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»
С увеличением сложности систем и возможностей технологии проектирования СБИС класса «система на кристалле» все более необходимым становится создание интегрированных САПР БИС/СБИС с программируемой структурой. В статье рассматривается весь маршрут физического прототипирования на примере разработки умножителя с использованием аппаратно-программных средств САПР на базе технологии «система на кристалле».
Ключевые слова — система на кристалле, уровень регистровых передач, сложно-функциональные блоки, программируемые логические интегральные схемы.
Введение
В настоящее время сложность систем на кристалле (СнК) и разновидности инженерных решений микропроцессорных систем на базе схем с программируемой логикой привели к бурному развитию методологии моделирования и проектирования. Методология сопряженного проектирования позволяет архитекторам системы и инженерам верификации работать на более высоком уровне абстракции.
Трудности проектирования СнК связаны как с необходимостью выполнять проекты в сжатые сроки, так и с постоянно возрастающей сложностью систем. По существующим оценкам, в современных проектах количество вентилей в среднем превышает десятки миллионов и имеет тенденцию постоянного роста.
В формировании окончательной стоимости проекта все большую роль играют разработанные программные, «зашитые в ПЗУ», и аппаратные ресурсы. Возрастание сложности современных проектов как в части объемов аппаратного обеспечения (в количестве логических вентилей), так и в части объемов программного обеспечения (объем программного кода) делает задачу технологической, методической и методологической поддержки данного направления актуальной [1, 2].
Системы на кристалле образуют динамический, быстро растущий сектор рынка. Интегра-
ция все большего числа сложно-функциональных блоков (СФ-блоков) в одном кристалле сопровождается сокращением площади плат при реализации проектов, повышением быстродействия систем и их надежности, уменьшением потребляемой мощности и стоимости [3, 4]. Возможность быстрой реконфигурации схем непосредственно в работающем устройстве открывает перспективы не только эффективной отработки прототипа проекта, но и создания принципиально новых структур с динамическим реконфигурированием и многофункциональным использованием аппаратных и программных средств [4]. Актуальность современного направления сопряженного проектирования и отсутствие материала по предметной области делают методическую поддержку сопряженного проектирования СнК востребованной и нуждающейся в популяризации. Сопряженное проектирование (имеются различные трактовки этого понятия [1]) приводит к конкретным решениям в предметной области, при этом реально совместные проектные процедуры выполняются в различных взаимных комбинациях на различных этапах проектирования.
Средства проектирования
Для сопровождения проектирования цифровых устройств обработки сигналов на основе перспективной технологии СнК производители та-
ких микросхем предлагают интегрированные программные средства проектирования. На кафедре САПР СПбГЭТУ «ЛЭТИ» разработан макет на базе технологии «система на кристалле», включающий в свой состав: 32-разрядный ARM-процессор (семейства А7), память, программируемые логические интегральные схемы (ПЛИС) и другие периферийные модули, выпускаемые фирмой-производителем ПЛИС и СнК Triscend [5]. Макет позволяет осуществить физическое прототипирование систем с применением схем с программируемой логикой, а также выполнить верификацию как на функциональном, так и на вентильном уровнях (рис. 1) в среде САПР FastChip, разработанной фирмой Triscend (www.efo.ru — сайт официального дистрибьютора фирмы Triscend). Подобные решения могут быть реализованы с изделиями таких производителей, как Altera, Xilins, Atmel [2].
В качестве интегрированной САПР в статье рассматривается среда FastChip — это программный пакет, обеспечивающий управление всем процессом реализации устройств на основе технологии СнК и имеющий возможности анализа и исследования всех проектных процедур маршрута проектирования БИС/СБИС на базе программируемых схем. На современном этапе наблюдается тенденция специализации средств автоматизированного проектирования электронных изделий, что является важнейшим условием эффективности разработки и ускорения выпуска продукции [6]. Такой пример сочетания специализации, функциональности и открытости современных САПР демонстрирует указанная среда разработки.
Новизна СнК заключается в одновременной аппаратно-программной реализации на одном кристалле значительной (если не всей), функцио-
■ Рис. 1. Лабораторный стенд на базе СнК семейства A7
нально законченной части аппаратуры. Средства моделирования системного уровня как самой аппаратуры, так и кристаллов СнК одни и те же. За рубежом сейчас действуют сотни дизайн-центров при аппаратостроительных фирмах и масса отдельных дизайн-центров, где соразработчиками элементной базы выступают разработчики аппаратуры. Они либо доводят проект до петлиста, который передается разработчикам кристаллов, либо делают только системный проект до ИТЬ-уровня (уровень регистровых передач) [7].
Поскольку СнК — изделие не только очень сложное, но и дорогое при небольших объемах выпуска, то ошибки проектирования должны быть исключены. Поэтому в новой методологии, кроме математического моделирования, необходим этап создания прототипа устройства на базе неких специальных аппаратно-программных платформ, которые сегодня так и называются — алгоритмически ориентированные платформы проектирования. Они содержат набор элементов: ПЛИС, процессорные ядра, память, определенную шинную архитектуру, интерфейсы и т. д., — которые позволяют создать прототип схемы до ее воплощения в СБИС. В статье в качестве конкретной выбрана реконфигурируемая СнК с 32-разрядным АИМ-процессором [8-10].
Целью данной статьи является описание маршрута сопряженного проектирования аппаратнопрограммных частей СФ-блоков с использованием 32-разрядной СнК, входящей в состав лабораторного макета [11], и отображение основных проектных процедур верификации и отладки на примере цифрового устройства умножения целых чисел. Следует отметить, что концепция разработки устройств на основе технологии СнК отличается от проектирования устройств в многокристальном исполнении. Это связано с тем, что устройства СнК представляют собой приборы системного уровня интеграции, т. е. сочетают на одном кристалле как разнородные аппаратные структуры (процессор, программируемую логику, оперативную память), так и архитектурные элементы их взаимодействия (адресные селекторы, конфигурируемую системную шину). Специфика разработки цифровых устройств на основе технологии СнК заключается в интеграции с помощью САПР двух потоков проектирования:
— реализации аппаратной составляющей для выполнения алгоритмов обработки на встроенной программируемой логике;
— разработки программной составляющей системы для встроенного процессорного ядра.
Сопряженное проектирование — процесс параллельного проектирования аппаратных и программных средств, при котором оценивается це-
лесообразность выбора аппаратной или программной реализации определенного фрагмента проекта. Этот процесс также позволяет проектировщикам увидеть, как система могла бы работать с данным разделением аппаратных средств ЭВМ и программного обеспечения [12].
Сопряженная верификация — проверка возможности совместного функционирования программного обеспечения и аппаратных средств ЭВМ. Во время этого процесса анализируется, будут ли одинаково решаться специфические задачи проекта при аппаратной или программной реализации. Результатом работы является фиксация выбранного варианта реализации.
Прототипирование аппаратно-программных частей проекта
В основу прототипирования положен простой принцип: необходимо создать поведенческую модель архитектуры до начала детальной разработки аппаратной и программной частей проекта. При этом прототип должен представлять собой точную (до цикла) поведенческую модель всего СФ-блока, включая и аппаратную, и программную его части [12].
Разработка цифрового устройства умножения целых чисел (рис. 2) включает в себя три основных блока:
1) программную часть для ввода исходных данных, включающую два программных регистра, доступ к которым осуществляется с помощью встроенных внешних средств компиляции, позволяющих не только разрабатывать прикладные программы на языке С, но и, что важно, поддерживать все стадии их разработки;
2) аппаратный блок, реализованный на языке VHDL, для выполнения операции умножения и импортированный в САПР;
3) блок вывода результатов умножения на индикацию, реализуемый на элементах библиотеки СФ-блоков.
Для разработки аппаратной конфигурации САПР FastChip обеспечивает возможность интерактивного выбора составных фрагментов схемы и средства задания их межсоединений. Применение САПР предполагает эффективные, наглядные и контролируемые средства описания проекта, при этом наиболее распространенными являются графические и текстовые (рис. 3).
Собственные средства описания проекта САПР FastChip базируются на графическом представлении на основе как допустимых для САПР библиотечных элементов, так и пользовательского базиса. Собственные средства ввода аппаратной конфигурации в массив встроенной конфигурируемой логики — библиотечные модули, на основе которых разработчик может определять схемотехнику проекта. Набор предлагаемых средой FastChip предопределенных элементов достаточно широк (около 150), постоянно расширяется, и его можно разделить на следующие группы:
— типовые параметризируемые элементы вычислительной техники (логические элементы, мультиплексоры, счетчики и т. д.), конкретные параметры которых (разрядность, коэффициент пересчета, начальное состояние) могут назначаться разработчиком;
— специализированные элементы взаимодействия микропроцессорной части реконфигурируемой СнК и матрицы программируемой логики (адресные селекторы, элементы системной шины, схемы синхронизации и ожидания);
N SW_HW (Target Device: TA7S20-60Q.) (Evaluation License) - Triscend FastChip
Fils Constraints Tools
^ ImP0,t Export Generate Bind | i/i. ф Device Link | jjj i’Cll 0f | _ ¿
У' Импортир СФ-бл <¿> Dedicated ювание оков Clocks DMA ICU MCU
I Configurable System Logic (CSL)
||[^L Module Library] Connectivity View CIU Separate I/O Modules vi DRC
Библиотека
модулей
>dule Library Basic Functions - Encryption Function ■5>—I I/O Pads ©-LJ CSI Bus Interfaces CSI Bus Bridges en_i Peripherals SH_i Deprecated Imported M2)tl
CnndReg A CmdR.eg_B Output_A
Поле ПЛИС
Импортированный умножитель
rPost-bind Resource Utilization
* I Ofl C5L Cells: 8Q/2048|g
Ijc* Lonimjiid Uutput (U errur*, 1 warning)
регистры
СФ-блок
■ Рис. 2. Схема подключения умножителя 40 f ИНФОРМАЦИОННО-УПРАВЛЯЮШИЕ СИСТЕМЫ
■ Рис. 3. Интегрированная среда сопряженного проектирования
№ 3, 2010
— специфичные для устройств реконфигурируемых СнК составляющие (буферные элементы, порты ввода-вывода);
— типовые узлы вычислительных систем (контроллеры интерфейсов, графических индикаторов и т. д.), часть параметров которых задается проектировщиком.
Аппаратная часть включает два модуля (см. рис. 2): а) библиотечный модуль Output_A для вывода результата умножения на индикацию; б) импортированный модуль (в виде .edif-файла) M2x1_A, выполняющий операцию умножения целых чисел. Далее выполняются две процедуры, необходимые для верификации проекта: подключение входов и выходов проекта к выводам СнК в редакторе I/O Editor и связывание модулей (Bind) (см. рис. 2).
После определения необходимых для решения задачи библиотечных модулей разработчик размещает выбранные блоки в рабочей области (проектном окне) экрана САПР и при необходимости определяет их символические имена. Далее проектировщик осуществляет настройку изменяемых параметров выбранных модулей (например, разрядность программно-доступных регистров, устройств вывода и т. д.) путем установки конкретных числовых значений в полях конфигурации модуля. Среда FastChip оперативно отражает оценку затрат на реализацию (число требуемых логических ячеек, портов ввода-вывода, адресных селекторов) в зависимости от сложности проекта (см. рис. 3).
Синтез умножителя на языке VHDL
Наиболее универсальное решение в области синтеза принадлежит компании Synplicity (САПР Synplify), которое покрывает все связанные с этим аспектом области проектирования, а именно логический и физический синтез для ПЛИС любых производителей, макетирование специализированных устройств на ПЛИС, а также средства отладки прошивок на уровне исходного RTL-описания и написанные на языке VHDL [13].
Операция умножения, независимо от способа реализации, требует использования n х (m - 1) полных одноразрядных сумматоров, где m — число разрядов сомножителей. Реализация умножения с использованием n-разрядных сумматоров порождает широкую номенклатуру параллельных умножителей, в том числе матричную и пирамидальную структуры, смешанные варианты [1]. Устройства этого класса способны выполнить умножение за один такт работы схемы. Подобными характеристиками обладают схемы, построенные на основе набора параллельных умножителей меньшей разрядности с последующим сум-
мированием частичных произведений [1]. Однако вопросы, связанные с синтезом устройства умножения, не являются целью статьи, а реализация предлагается с использованием встроенной в САПР функции умножения.
Упрощенная программа реализации операции умножения:
--Программа реализации операции умножения на языке VHDL 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 <= unsigned(A); sB <= unsigned(B); sP <= sA * sB;
PP <= std_logic_vector(sP); end AMult;
По описанию на уровне RTL с помощью программы логического синтеза формируется список цепей (gate level netlist), который учитывает задержки на библиотечных элементах (но, как правило, не учитывает временные задержки на межсоединениях) и используется для временной верификации проекта (timing verification). Полученную в результате RTL-синтеза схему (рис. 4) необходимо импортировать в среду САПР для дальнейшей загрузки в ПЛИС (см. рис. 2).
Наличие процессора в составе СнК TA7S20-60 позволяет объединить в один проект аппаратную и программную части. Для этого необходимо воспользоваться средствами программной компиляции, представленными фирмой-производителем САПР.
Разработка программной части проекта. Программная часть содержит два программнодоступных регистра: Command Registr 1 и 2. В данном устройстве практически все функции выполнены аппаратно, поэтому программная часть проекта на языке С достаточно проста и включает в основном операторы инициализации и загрузки программно-доступных регистров 1 и 2 (см. код программы ввода данных в программно-доступные регистры 1 и 2 на языке С).
■ Рис. 4. Синтезированный модуль умножителя
Для разработки программной части необходимо первоначально сгенерировать так называемый header-файл (заголовочный). Для этого в панели инструментов в среде FastChip нажатием кнопки Generate (см. рис. 3) генерируется файл с расширением .h, затем в рабочую папку проекта копируется несколько файлов для осуществления компиляции и верификации программной части: main.c, init.s, main.elt и make из каталога, представленного САПР:
// Программа ввода данных в программнодоступные регистры 1 и 2 на языке С #include «HW_SW.h»
#define Reg_A 0x100ffffc /* size in byte(s) = 1, lane = LANEB0 */ #define Reg_B 0x100ffff8 /* size in byte(s) = 1, lane = LANEB0 */ volatile unsigned int *result1 = ( unsigned int * ) Reg_A; volatile unsigned int *result2 = ( unsigned int * ) Reg_B; void init (void) {} void IRQ_Handler (void) {}
// функция задержки void wait(unsigned int cnt)
{ volatile unsigned int i;
for (i = 0; i < cnt; i++) { volatile int ii; for(ii=0; ii < 1; ii++) {#ifdef __ARM__ __asm { mov r0, r0
mov r0, r0
mov r0, r0
mov r0, r0} #else asm(«mov r0, r0»);
asm(«mov r0, r0»);
asm(«mov r0, r0»);
asm(«mov r0, r0»);
#endif } } }
//Загрузка данных во входные регистры с помощью указателей
results result2 void C_Entry ()
{ init (); int index=0; while (1){*result1 =0x02; *result2 =0x03; }} Верификация схемы в целом. Завершающий этап сопряженного проектирования — компиляция проекта в целом. Для этого в среде FastChip используется свободно распространяемый компилятор Unix, и в командной строке необходимо выполнить стандартную команду make для отладки и верификации аппаратно-программных частей проекта в целом [5]. Если все правильно, то компилятор выдаст следующее окно (рис. 5).
В результате сборки всех частей проекта (рис. 6), импортирования .edif-файла умножителя в среде САПР FastChip и выполнения процедуры компиляции были записаны программным способом два числа: 2 и 3 (см. С-код программы), — и произведено их умножение аппаратно с помощью синтезируемой схемы умножителя.
■ Рис. 5. Компиляция аппаратно-программных модулей проекта
Command Register ■ Рис. 6. Общий вид проекта
Результат выполнения операции выдается на 7-сегментный индикатор через устройство вывода (Output), являющееся элементом библиотеки, используемой САПР.
Заключение
Обычно совместная отладка функционирования аппаратных и программных частей системы возможна только после создания опытного образца системы. Для отладки кристаллов типа СнК могут использоваться методы, учитывающие возможность перепрограммирования БИС с программируемой логикой. Более того, могут быть разработаны специальные тестовые конфигурации, которыми следует пользоваться не только на этапе проверки результатов проектирования, но и на этапах изготовления, выпуска или контроля продукции. Большое значение для быстрого и успешного завершения проекта имеет принятие обоснованного решения о средствах сопряженного проектирования, где имеются средства аппаратной и программной верификации.
Наиболее важным фактором при аппаратнопрограммном проектировании является поддержка средой проектирования физического контроля, т. е. разработчику предоставляется возможность в интерактивном режиме или в командной строке считывать реальные состояния электрических цепей, анализировать содержимое оперативного запоминающего устройства и программно-доступных ресурсов, реализованных в конфигурируемой логике, управлять состоянием процессора и задавать точки останова со сложными условиями вызова. Таким образом, среда САПР FastChip эффективно решает вопросы отладки, уделяя много внимания физической верификации.
В целом задача современного проектирования устройств обработки сигналов на основе реконфигурируемых микросхем сводится к выполнению каждого этапа работы быстрее, с более надежными и достоверными результатами. Технология СнК является прекрасной технической основой сопряженного проектирования, поскольку
такие системы в значительных пределах конструктивно-инвариантны к аппаратным и программным решениям. Технологической основой сопряженного проектирования являются САПР, интегрирующие в себе средства проектирования и отладки аппаратно-программных систем.
Литература
1. Грушвицкий Р., Мурсаев А., Угрюмов Е. Проектирование систем на микросхемах программируемой логики: учебное пособие. — СПб.: БХВ-Петербург, 2002. — 606 с.
2. Немудров В. Г., Мартин М. Системы на кристалле. Проектирование и развитие. — М.: Техносфера, 2004. — 213 с.
3. Шагурин И., Шалтырев В., Волов А. «Большие» FPGA как элементная база для реализации систем на кристалле // Электронные компоненты. 2006. № 5. С. 83—88.
4. Несс Р. Ежегодное исследование рынка встраиваемых систем // Электронные компоненты. 2007. № 11. С. 69-77.
5. Березин В. В., Фахми Ш. С. Проектирование устройств обработки сигналов на основе технологии «система на кристалле» / СПбГЭТУ «ЛЭТИ». — СПб., 2005. — 144 с.
6. Казённов Г. Г. Основы проектирования интегральных схем и систем. — М.: БИНОМ. Лаборатория знаний, 2005. — 295 с.
7. Березин В. В., Золотухо Р. Н., Фахми Ш. С. Отладка аппаратно-программного обеспечения реконфигурируемых систем на кристалле // Компоненты и технологии. 2003. № 7. С. 118-122.
С позиции изучения современных средств проектирования, несмотря на высокую скорость развития и совершенствования средств сопряженного проектирования СнК, разработанный макет и интегрированная среда САПР FastChip будут оставаться актуальными и востребованными.
8. Березин В. В., Фахми Ш. С. Аппаратно-программные средства для проектирования цифровых устройств: учебное пособие / СПбГЭТУ «ЛЭТИ». — СПб., 2005. — 60 с.
9. Березин В. В., Золотухо Р. Н. 32-разрядная реконфигурируемая система на кристалле фирмы Triscend // Компоненты и технологии. 2003. № 2. С. 14-20.
10. Березин В. В. Методология автоматизированного проектирования с применением технологии «система на кристалле» (программная часть и системная интеграция) // Промышленные контроллеры и АСУ. 2004. № 12. С. 38-40.
11. Березин В. В., Фахми Ш. С. Использование возможностей контроллера динамической памяти как составной части «системы на кристалле» // Неразрушающий контроль и диагностика окружающей среды, материалов и промышленных изделий: Межвуз. сб. / СЗТУ. СПб., 2004. Вып. 9. С. 213-225.
12. Фахми Ш. С. Автоматизация проектирования БИС на базе «система на кристалле»: учебное пособие / СПбГЭТУ «ЛЭТИ». — СПб., 2006. — 80 с.
13. Армстронг Дж. Р. Моделирование цифровых систем на языке VHDL: Пер. с англ. — М.: Мир, 1992. — 175 с.