Научная статья на тему 'Сопряженное проектирование на базе реконфигурируемых систем на кристалле'

Сопряженное проектирование на базе реконфигурируемых систем на кристалле Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
431
287
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИСТЕМА НА КРИСТАЛЛЕ / УРОВЕНЬ РЕГИСТРОВЫХ ПЕРЕДАЧ / СЛОЖНО-ФУНКЦИОНАЛЬНЫЕ БЛОКИ / ПРОГРАММИРУЕМЫЕ ЛОГИЧЕСКИЕ ИНТЕГРАЛЬНЫЕ СХЕМЫ / SYSTEM ON CHIP / RTL / IP-CORES / FPGA

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Костикова Елена Валентиновна, Фахми Шакиб Субхиевич

С увеличением сложности систем и возможностей технологии проектирования СБИС класса «система на кристалле» все более необходимым становится создание интегрированных САПР БИС/СБИС с программируемой структурой. В статье рассматривается весь маршрут физического прототипирования на примере разработки умножителя с использованием аппаратно-программных средств САПР на базе технологии «система на кристалле».

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Co-design engaging chip-based reconfigurable systems

With the increase of system complexity and the technological possibilities in the design of VLSI «system on chip», designing integrated EDA with programmed structure is becoming more and more attractive and indispensable. In this paper the entire physical prototyping route is reviewed by the example of developing a multiplier using EDA hardware-software means based on the «system on chip» technology.

Текст научной работы на тему «Сопряженное проектирование на базе реконфигурируемых систем на кристалле»

УДК 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), являющееся элементом библиотеки, используемой САПР.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Заключение

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

Наиболее важным фактором при аппаратнопрограммном проектировании является поддержка средой проектирования физического контроля, т. е. разработчику предоставляется возможность в интерактивном режиме или в командной строке считывать реальные состояния электрических цепей, анализировать содержимое оперативного запоминающего устройства и программно-доступных ресурсов, реализованных в конфигурируемой логике, управлять состоянием процессора и задавать точки останова со сложными условиями вызова. Таким образом, среда САПР 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 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.