Выпуск #8/2006
А.Бухтеев.
Средства ESL-проектирования компании Celoxica: программно ориентированный подход
Средства ESL-проектирования компании Celoxica: программно ориентированный подход
Просмотры: 2869
Разработка средств проектирования СБИС системного уровня (Electronic System Level, ESL) – одно из самых актуальных направлений развития индустрии САПР электронной техники. Размеры электронных систем растут, традиционные методы проектирования СБИС становятся неэффективными. Распространение ПЛИС делает современные микроэлектронные технологии доступными для разработчиков, не знакомых с особенностями проектирования СБИС. Задача ESL-средств – обеспечить широкому кругу пользователей удобную и понятную среду проектирования.
Главная :: Выпуски 2006 года
Выпуск № 8/2006 :: Системы проектирования
ЯндексДирект
Дать объявление
Всё для АТС и контроля доступа
Установка, настройка, ремонт, обслуживание. Быстро, качественно и недорого.
po-et.ru · Москва
Микроконтроллеры Microchip
Разработка и интеграция USB, ZigBee устройств, плат, программ Linux/Windows
Адрес и телефон · novorado.com · Москва
Источники питания. Новые решения.
Для магнетронов, ионных источников, смещения, высоковольтные импульсные.
Адрес и телефон · www.pronika.ru
Оборудование из Японии и США
Домостроительное, лесопильное, сушильное, котельное, деревообрабатывающее
www.nozomi.us.com
А.Бухтеев.
Средства ESL-проектирования компании Celoxica: программно ориентированный подход
Загрузить полную версию статьи в формате .pdf (450 кб) Pdf
Разработка средств проектирования СБИС системного уровня (Electronic System Level, ESL) – одно из самых актуальных направлений развития индустрии САПР электронной техники. Размеры электронных систем растут, традиционные методы проектирования СБИС становятся неэффективными. Распространение ПЛИС делает современные микроэлектронные технологии доступными для разработчиков, не знакомых с особенностями проектирования СБИС. Задача ESL-средств – обеспечить широкому кругу пользователей удобную и понятную среду проектирования.
В течение достаточно долгого (по меркам микроэлектронной индустрии) времени основные усилия разработчиков цифровых СБИС были сконцентрированы на решении задач функционального проектирования на уровне регистровых передач (RTL). Соответственно и в области разработки средств автоматизации проектирования основные инвестиции направлялись в развитие средств синтеза, моделирования и верификации на RTL-уровне.
Однако в последние годы разработчики как СБИС, так и САПР стали больше внимания уделять физическому и системному (ESL) уровню проектирования. Это обусловлено переходом на новые технологии (90 нм и 65 нм), и, следовательно, необходимостью учета новых физических эффектов. Потребность же в средствах проектирования системного уровня вызвана увеличением размерности проектов, тенденцией создания систем на кристалле и систем на программируемом кристалле.
Разработка современных систем на кристалле требует большого коллектива – инженеров-системотехников, схемотехников, разработчиков топологии и других специалистов. Затраты на проектирование систем на кристалле экономически оправданы только для схем массового производства. Характеристики современных ПЛИС и структурных ASIC, включающих встроенные процессоры и блоки памяти, уже позволяют реализовать значительное число приложений в виде системы на программируемом кристалле. Благодаря тому, что значительная часть работ (проектирование топологии) уже выполнена разработчиками самих ПЛИС, затраты на проектирование сокращаются. Следующий шаг к упрощению процесса проектирования систем на программируемом кристалле – создание инструментов, не требующих знания схемотехники СБИС. Эти инструменты должны обеспечивать проектирование на системном уровне абстракции и быть понятными для инженеров, занимающихся прикладными задачами.
Существует два варианта решения этой проблемы. Один из них – организация своего рода "электронного конструктора", когда система создается из уже готовых блоков. Этот подход наиболее прост в реализации и использовании, но в чистом виде применим только для ограниченного круга задач. Другой подход условно можно назвать "проектирование как программирование". Доля встроенного программного обеспечения в общем объеме работ по проектированию систем на кристалле и систем на программируемом кристалле постоянно растет. Тенденция такова, что подобные системы можно рассматривать как программный комплекс, в котором часть блоков реализована аппаратно. Даже в традиционном маршруте проектирования для сложных систем применяются программные модели аппаратных блоков. Они служат эталоном при создании описания этих блоков на уровне регистровых передач. Если существует возможность автоматического преобразования программных моделей в аппаратное представление, то процесс проектирования системы будет аналогичен процессу программирования. Доступ к проектированию СБИС получит широкий круг инженеров, знакомых с процессом программирования. ESL-средства компании Celoxica помогают организовать именно такой программно ориентированный процесс.
МАРШРУТ ПРОЕКТИРОВАНИЯ И ESL-СРЕДСТВА КОМПАНИИ CELOXICA
Компания Embedded Solutions была создана в 1996 году. В 2000 году ее название было изменено на Celoxica. Основа ESL-технологий компании – результаты исследовательских работ, проведенных на базе Оксфордского университета. Там же в 1992 году был создан первый программный прототип. Сейчас семейство продуктов компании – один из наиболее полных и мощных ESL-комплексов, который поддерживает методологию программно ориентированного проектирования встраиваемых систем и аппаратуры с использованием языков C/C++ и SystemC. Семейство включает в себя следующие продукты:
· Agility Compiler – система проектирования на основе языка SystemC. В рамках системы предусмотрены средства создания поведенческих моделей, исследования архитектуры, моделирования, а также автоматический синтез аппаратного описания для ПЛИС из описания на языке SystemC. Возможен также синтез из SystemC-описания в RTL-описание (для дальнейшей реализации в виде заказной СБИС);
· DK4 Design Suite – система проектирования, аналогичная по функциональности системе Agility Compiler, но на основе языка Handel-C;
· Прикладные библиотеки и программные интерфейсы. Библиотеки содержат различные варианты аппаратной реализации готовых прикладных функций обработки видеопотоков и изображений, арифметики с плавающей точкой и др. Поддержка стандартных программных интерфейсов (Application Programming Interface, API) обеспечивает возможность программно-аппаратной интеграции в системах на базе встроенных процессоров;
· Средства макетирования. Средства макетирования включают в себя набор стандартных плат (с различной периферией и ПЛИС различных производителей) для аппаратной реализации проектируемых систем, встроенное программное обеспечение, драйвера доступа к периферийным устройствам макетных плат, а также учебные примеры.
Обобщенный маршрут проектирования, ядром которого являются ESL-средства компании Celoxica, приведен на рис.1. Исходными компонентами для создания системы могут быть текстовые спецификации, программы на языке С/С++, системные спецификации на языке SystemC, модели Matlab/Simulink, а также готовые программные и аппаратные блоки (в том числе блоки на RTL-уровне). На базе всех этих разнородных компонентов строится общая модель системы, которая затем верифицируется. Высокий уровень абстракции моделей позволяет исследовать архитектуру системы до разбиения на программную и аппаратную часть. Средства компании Celoxica допускают верификацию смешанного кода С/С++/Handel-C/SystemC и совместное моделирование с системами логического моделирования (Active-HDL, ModelSim) и системой Matlab/Simulink. Программы на языках C/C++ , SystemC могут использоваться для организации тестового окружения при работе с системами логического моделирования.
Наличие средств высокоуровневого синтеза позволяет организовать разработку непосредственно на основе исходной программной модели системы. Особенность ESL-средств компании Celoxica – возможность прямого синтеза в элементный базис ПЛИС. Не будучи специалистом в области схемотехники, пользователь, например разработчик алгоритма, может задать тип используемой ПЛИС и сразу получить оценки результатов аппаратной реализации своего алгоритма. При использовании готовых макетных плат компании Celoxica, сразу после синтеза автоматически вызываются программы размещения и трассировки компании-производителя ПЛИС, и разработчик получает файл прошивки. Таким образом, он может сосредоточиться на предметной части проекта, где цена принятых решений самая высокая. Средства синтеза также обеспечивают генерацию RTL-кода в форматах VHDL/Verilog, его оптимизацию для большинства популярных систем логического моделирования и синтеза. Это позволяет встраивать ESL-средства компании Celoxica в традиционные маршруты проектирования СБИС и ПЛИС.
СИСТЕМЫ AGILITY COMPILER И DK4 DESIGN SUITE КОМПАНИИ CELOXICA
Системы Agility Compiler и DK4 Design Suite обладают похожим набором функциональности, в основе которого лежит высокоуровневый синтез. Отличие в том, что в Agility Compiler реализован синтез из описания на языке SystemC, а в DK4 Design Suite – из описания на языке Handel-C (рис.2). Использование различных базовых языков вызвано тем, что первая система ориентирована в основном на разработчиков СБИС, перешедших с RTL-уровня на ESL-уровень, а вторая – на широкий круг программистов на языке С, расширением которого является язык Handel-C. Несколько слов о происхождении этого языка.
Возможности использования стандартных языков программирования, в частности С, для описания аппаратуры существенно ограничены тем, что порядок написания команд определяет последовательность выполнения инструкций. То есть эти языки последовательные, в то время как аппаратная реализация обычно предполагает распараллеливание операций. Язык Handel-C был разработан группой Oxford Hardware Compilation Group на базе языка ANSI С и языка Occam. Последний основан на использовании алгебры взаимодействия последовательных процессов (Communicating Sequential Processes, CSP). В язык С были добавлены новые конструкции, описывающие параллельные операции. С помощью этих конструкций можно указать компилятору, какие из операций должны выполняться параллельно, и эти указания будут реализованы в аппаратной схеме.
Важно, что параллелизм в Handel-C – это не параллелизм с квантованием времени, как в системах компьютерного моделирования, а настоящий параллелизм. Если задается параллельное исполнение двух инструкций, эти две инструкции будут выполняться одновременно двумя отдельными блоками результирующей схемы. Когда компилятор находит блок, предусматривающий распараллеливание, он разделяет процесс выполнения алгоритма на независимые ветви. При обработке такого блока, процессы обработки всех ветвей стартуют одновременно. Когда работа в одной из ветвей завершается, она входит в режим ожидания до тех пор, пока не будут завершены процедуры во всех остальных ветвях. Когда все параллельные ветви отработали, обработка блока завершается и происходит переход к следующему блоку.
Пользователь может писать алгоритмы на Handel-C, не заботясь о том, как работает компилятор. Аппаратное представление алгоритма синтезируется напрямую из исходного кода Handel-C, без промежуточного уровня "интерпретации". Конечную схему на уровне вентилей, которая компилируется из исходного кода, можно рассматривать как инструкции ассемблера в системе Handel-C. С этой точки зрения язык Handel-C больше похож именно на язык программирования, а не на язык описания аппаратуры. Для аппаратуры язык Handel-C фактически то же, что и обычный высокоуровневый язык программирования для ассемблера микропроцессора.
Среда отладки проекта в системах Agility Compiler и DK4 Design Suite (рис. 3) позволяет проводить смешанное моделирование, анализ и отладку проекта на уровне транзакций (Transaction Level Model, TLM). В целом процесс отладки очень похож на процесс отладки программ. Есть средства установки точек прерывания, анализа и визуализации переменных. Однако есть и специфика, связанная с тактовыми сигналами, обработкой параллельных веток исполнения. Важно, что в любой момент для заданного программного блока можно выполнить процедуру синтеза непосредственно в среде проектирования и сразу оценить результат аппаратной реализации на базе одного из распространенных ПЛИС.
Система Agility Compiler в значительной степени позиционируется как средство системного уровня при проектировании заказных СБИС и систем на кристалле. Помимо генерации аппаратного представления в виде списка цепей в формате EDIF для ПЛИС компаний Altera, Xilinx и Actel здесь большое внимание уделяется оптимизации генерируемого RTL-описания. Предусмотрены графические средства контроля и анализа потоков данных (рис. 4). Как и в DK4 Design Suite, имеется возможность создания аппаратного прототипа.
АППАРАТНОЕ ПРОТОТИПИРОВАНИЕ И ПЕРСОНАЛЬНЫЕ СУПЕРКОМПЬЮТЕРЫ
Для аппаратной отладки и прототипирования компания Celoxica предлагает разработчикам воспользоваться своей RC-серией отладочных плат. Все варианты отладочных плат RC-серии включают одну или несколько ПЛИС ведущих производителей для аппаратной реализации разрабатываемого устройства (Xilinx Spartan3L, Xilinx Virtex-II/4, Altera Startix-II, Xilinx Virtex-II/IIPro/4). Кроме того, на платах реализованы различные варианты стандартного аппаратного окружения. Они могут содержать блоки памяти (Flash, SRAM, DDR, SDRAM), процессоры (ARM9T RISC) и какой-то из наборов стандартных интерфейсных блоков (USB2.0, RS232, CAN, PS/2, ADC,VGA, CMOS, Cameralink, DAC, Ethernet, Video I/O, AC97 Audio, SDIO, Bluetooth,TFT / Touchscreen и др.). Кроме плат с жесткой конфигурацией аппаратного окружения (RC10, RC203, RC250, RC340) предусмотрены модифицируемые модульные варианты, позволяющие формировать состав компонентов отладочного модуля в зависимости от потребностей текущего проекта (RC2000 и RCPartner).
Используя системы Agility Compiler и DK4 Design Suite, разработчик может быстро создать на платах RC-серии различные варианты реализации алгоритмов и проанализировать их поведение в реальном аппаратном окружении. Поддержка встроенной операционной системы реального времени и системных API обеспечивает полноценную программно-аппаратную верификацию разрабатываемой системы.
Еще одно очень любопытное и перспективное направление в рамках программно-аппаратного подхода – построение реконфигурируемых высокопроизводительных вычислительных систем (High Performance Reconfigurable Computing, HPRC). Традиционно для построения высокопроизводительных вычислительных систем (High Performance Computing, HPC) использовались различные ускорители на основе заказных СБИС, ориентированные на повышение эффективности определенного типа вычислений. Попытки создания HPRC на основе ПЛИС предпринимались на протяжении последних двадцати лет, однако практическая реализация такого подхода на базе персональных компьютеров возможна только при выполнении следующих условий:
· емкость и производительность ПЛИС должны быть достаточными для реализации реальных вычислительных алгоритмов;
· производительность информационных шин должна обеспечивать достаточную скорость обмена данными между процессором и аппаратным ускорителем;
· средства создания аппаратного ускорителя должны быть доступными и понятными для разработчиков программного обеспечения.
Сегодня создание HPRC на базе ПЛИС реально. Стандартные ПЛИС, изготовленные по технологическим нормам 90 нм, такие как Xilinx Virtex4, за счет распараллеливания вычислительных операций способны выполнять практические алгоритмы значительно быстрее, чем обычные процессоры. Высокопроизводительные шины HyperTransport и PCI Express обеспечивают необходимый уровень скорости обмена данными. Появились и средства синтеза для языков программирования, построенных на базе С/С++.
В рамках стратегии HPRC компанией Celoxica был разработан программно-аппаратный комплекс на базе интерфейса HyperTransport (HTX). Он включает в себя плату ускорителя-сопроцессора RCHTX (рис.5) и среду программирования с компилятором, который позволяет синтезировать аппаратную реализацию функций на языке Handel-С на ПЛИС этой платы. Ускоритель поддерживает встроенную операционную систему, ориентированную на использование интерфейса HTX и процессоров Opteron. Плата содержит две ПЛИС Xilinx Virtex 4, 24 MБайт QDR SRAM и ряд интерфейсных блоков. Основная ПЛИС сопроцессора объемом 16 млн. вентилей предназначена для реализации алгоритмов пользователя. Вторая ПЛИС служит для обмена данными между ПЛИС сопроцессора, главным процессором и оперативной памятью через шину HyperTransport.
Программное обеспечение состоит из системы DK4 Design Suite, включающей компилятор языка С для программирования сопроцессора ПЛИС, пакета поддержки платы (Board Support Package, BSP), драйверов для платы RCHTX, базовой библиотеки арифметики с плавающей точкой (одинарной и двойной точности) и прикладного интерфейса программирования API, который обеспечивает доступ к ресурсам платы из программ пользователя.
Алгоритм работы с системой выглядит следующим образом. Пользователь замещает блоки в исходном С-коде, которые необходимо реализовать на ПЛИС сопроцессора, вызовами API-функций Celoxica. С помощью инструкций языка Handel-C в код вводятся элементы параллелизма. Компилятор С добавляет дополнительные встроенные функции, необходимые для работы программы в новой аппаратной среде. Обмен данными между основным процессом и ПЛИС сопроцессора во время выполнения программы осуществляется через шину HyperTransport.
Основная идея такого подхода в том, чтобы на базе сопроцессора была реализована не вся прикладная программа, а только наиболее интенсивные вычислительные алгоритмы, создающие основную нагрузку на процессор. Хорошие кандидаты для реализации на базе сопроцессора – различные алгоритмы кодирования, шифрования, БПФ, алгоритмы статистического моделирования и распространения волн и т.д. Часто время выполнения приложения определяется алгоритмами, находящимися во внутренних циклах программы, которые могут составлять всего несколько процентов от объема всего исходного кода. Поэтому, приложив сравнительно небольшие усилия, можно увеличить производительность в десятки раз за счет массового распараллеливания вычислений на уровне отдельных операторов.
В среднем эта технология позволяет повысить производительность целочисленных вычислений в сто раз, вычислений с плавающей точкой с одинарной точностью в десять раз, и с двойной точностью – в пять раз. Например, для модели ценообразования опциона Блэка-Шоулза, применяемой в финансовом анализе, производительность была увеличена в двести раз. Но, конечно, возможности повышения производительности в системах HPRC индивидуальны для каждой задачи и ограничиваются правилом Амдэля (определение максимального теоретического ускорения приложения, когда модифицируется только его часть, или при использовании множества процессоров). Можно сделать вывод, что появляется новый класс персональных суперкомпьютеров, которые могут собираться из готовых компонентов различных производителей и становятся доступны по цене для широкого круга пользователей. А технологии компиляции программного С-кода в аппаратную реализацию сопроцессоров ПЛИС делают реконфигурирование таких систем понятным для программистов.
В целом программно ориентированный подход к проектированию открывает дорогу к созданию аппаратных средств на базе современных микроэлектроэлектронных компонентов программистам и специалистам в прикладных областях, не являющихся разработчиками аппаратуры. Инженеров, знакомых с программированием, гораздо больше, чем разработчиков аппаратуры. Это потенциал, который может быть задействован при внедрении программно ориентированного подхода к проектированию.
Предыдущая статья:
Высоковольтный предохранитель для трекового детектора переходного излучения Содержание Следующая статья:
Электроника в России – прошлое, настоящее... И что грядущее готовит?
Оставить комментарий >
Имя: (обязательно)
E-mail: (не публикуется)
Комментарий:
Введите
контрольный код: Cryptographp PictureReload
Выпуск № 8/2006 :: Системы проектирования
ЯндексДирект
Дать объявление
Всё для АТС и контроля доступа
Установка, настройка, ремонт, обслуживание. Быстро, качественно и недорого.
po-et.ru · Москва
Микроконтроллеры Microchip
Разработка и интеграция USB, ZigBee устройств, плат, программ Linux/Windows
Адрес и телефон · novorado.com · Москва
Источники питания. Новые решения.
Для магнетронов, ионных источников, смещения, высоковольтные импульсные.
Адрес и телефон · www.pronika.ru
Оборудование из Японии и США
Домостроительное, лесопильное, сушильное, котельное, деревообрабатывающее
www.nozomi.us.com
А.Бухтеев.
Средства ESL-проектирования компании Celoxica: программно ориентированный подход
Загрузить полную версию статьи в формате .pdf (450 кб) Pdf
Разработка средств проектирования СБИС системного уровня (Electronic System Level, ESL) – одно из самых актуальных направлений развития индустрии САПР электронной техники. Размеры электронных систем растут, традиционные методы проектирования СБИС становятся неэффективными. Распространение ПЛИС делает современные микроэлектронные технологии доступными для разработчиков, не знакомых с особенностями проектирования СБИС. Задача ESL-средств – обеспечить широкому кругу пользователей удобную и понятную среду проектирования.
В течение достаточно долгого (по меркам микроэлектронной индустрии) времени основные усилия разработчиков цифровых СБИС были сконцентрированы на решении задач функционального проектирования на уровне регистровых передач (RTL). Соответственно и в области разработки средств автоматизации проектирования основные инвестиции направлялись в развитие средств синтеза, моделирования и верификации на RTL-уровне.
Однако в последние годы разработчики как СБИС, так и САПР стали больше внимания уделять физическому и системному (ESL) уровню проектирования. Это обусловлено переходом на новые технологии (90 нм и 65 нм), и, следовательно, необходимостью учета новых физических эффектов. Потребность же в средствах проектирования системного уровня вызвана увеличением размерности проектов, тенденцией создания систем на кристалле и систем на программируемом кристалле.
Разработка современных систем на кристалле требует большого коллектива – инженеров-системотехников, схемотехников, разработчиков топологии и других специалистов. Затраты на проектирование систем на кристалле экономически оправданы только для схем массового производства. Характеристики современных ПЛИС и структурных ASIC, включающих встроенные процессоры и блоки памяти, уже позволяют реализовать значительное число приложений в виде системы на программируемом кристалле. Благодаря тому, что значительная часть работ (проектирование топологии) уже выполнена разработчиками самих ПЛИС, затраты на проектирование сокращаются. Следующий шаг к упрощению процесса проектирования систем на программируемом кристалле – создание инструментов, не требующих знания схемотехники СБИС. Эти инструменты должны обеспечивать проектирование на системном уровне абстракции и быть понятными для инженеров, занимающихся прикладными задачами.
Существует два варианта решения этой проблемы. Один из них – организация своего рода "электронного конструктора", когда система создается из уже готовых блоков. Этот подход наиболее прост в реализации и использовании, но в чистом виде применим только для ограниченного круга задач. Другой подход условно можно назвать "проектирование как программирование". Доля встроенного программного обеспечения в общем объеме работ по проектированию систем на кристалле и систем на программируемом кристалле постоянно растет. Тенденция такова, что подобные системы можно рассматривать как программный комплекс, в котором часть блоков реализована аппаратно. Даже в традиционном маршруте проектирования для сложных систем применяются программные модели аппаратных блоков. Они служат эталоном при создании описания этих блоков на уровне регистровых передач. Если существует возможность автоматического преобразования программных моделей в аппаратное представление, то процесс проектирования системы будет аналогичен процессу программирования. Доступ к проектированию СБИС получит широкий круг инженеров, знакомых с процессом программирования. ESL-средства компании Celoxica помогают организовать именно такой программно ориентированный процесс.
МАРШРУТ ПРОЕКТИРОВАНИЯ И ESL-СРЕДСТВА КОМПАНИИ CELOXICA
Компания Embedded Solutions была создана в 1996 году. В 2000 году ее название было изменено на Celoxica. Основа ESL-технологий компании – результаты исследовательских работ, проведенных на базе Оксфордского университета. Там же в 1992 году был создан первый программный прототип. Сейчас семейство продуктов компании – один из наиболее полных и мощных ESL-комплексов, который поддерживает методологию программно ориентированного проектирования встраиваемых систем и аппаратуры с использованием языков C/C++ и SystemC. Семейство включает в себя следующие продукты:
· Agility Compiler – система проектирования на основе языка SystemC. В рамках системы предусмотрены средства создания поведенческих моделей, исследования архитектуры, моделирования, а также автоматический синтез аппаратного описания для ПЛИС из описания на языке SystemC. Возможен также синтез из SystemC-описания в RTL-описание (для дальнейшей реализации в виде заказной СБИС);
· DK4 Design Suite – система проектирования, аналогичная по функциональности системе Agility Compiler, но на основе языка Handel-C;
· Прикладные библиотеки и программные интерфейсы. Библиотеки содержат различные варианты аппаратной реализации готовых прикладных функций обработки видеопотоков и изображений, арифметики с плавающей точкой и др. Поддержка стандартных программных интерфейсов (Application Programming Interface, API) обеспечивает возможность программно-аппаратной интеграции в системах на базе встроенных процессоров;
· Средства макетирования. Средства макетирования включают в себя набор стандартных плат (с различной периферией и ПЛИС различных производителей) для аппаратной реализации проектируемых систем, встроенное программное обеспечение, драйвера доступа к периферийным устройствам макетных плат, а также учебные примеры.
Обобщенный маршрут проектирования, ядром которого являются ESL-средства компании Celoxica, приведен на рис.1. Исходными компонентами для создания системы могут быть текстовые спецификации, программы на языке С/С++, системные спецификации на языке SystemC, модели Matlab/Simulink, а также готовые программные и аппаратные блоки (в том числе блоки на RTL-уровне). На базе всех этих разнородных компонентов строится общая модель системы, которая затем верифицируется. Высокий уровень абстракции моделей позволяет исследовать архитектуру системы до разбиения на программную и аппаратную часть. Средства компании Celoxica допускают верификацию смешанного кода С/С++/Handel-C/SystemC и совместное моделирование с системами логического моделирования (Active-HDL, ModelSim) и системой Matlab/Simulink. Программы на языках C/C++ , SystemC могут использоваться для организации тестового окружения при работе с системами логического моделирования.
Наличие средств высокоуровневого синтеза позволяет организовать разработку непосредственно на основе исходной программной модели системы. Особенность ESL-средств компании Celoxica – возможность прямого синтеза в элементный базис ПЛИС. Не будучи специалистом в области схемотехники, пользователь, например разработчик алгоритма, может задать тип используемой ПЛИС и сразу получить оценки результатов аппаратной реализации своего алгоритма. При использовании готовых макетных плат компании Celoxica, сразу после синтеза автоматически вызываются программы размещения и трассировки компании-производителя ПЛИС, и разработчик получает файл прошивки. Таким образом, он может сосредоточиться на предметной части проекта, где цена принятых решений самая высокая. Средства синтеза также обеспечивают генерацию RTL-кода в форматах VHDL/Verilog, его оптимизацию для большинства популярных систем логического моделирования и синтеза. Это позволяет встраивать ESL-средства компании Celoxica в традиционные маршруты проектирования СБИС и ПЛИС.
СИСТЕМЫ AGILITY COMPILER И DK4 DESIGN SUITE КОМПАНИИ CELOXICA
Системы Agility Compiler и DK4 Design Suite обладают похожим набором функциональности, в основе которого лежит высокоуровневый синтез. Отличие в том, что в Agility Compiler реализован синтез из описания на языке SystemC, а в DK4 Design Suite – из описания на языке Handel-C (рис.2). Использование различных базовых языков вызвано тем, что первая система ориентирована в основном на разработчиков СБИС, перешедших с RTL-уровня на ESL-уровень, а вторая – на широкий круг программистов на языке С, расширением которого является язык Handel-C. Несколько слов о происхождении этого языка.
Возможности использования стандартных языков программирования, в частности С, для описания аппаратуры существенно ограничены тем, что порядок написания команд определяет последовательность выполнения инструкций. То есть эти языки последовательные, в то время как аппаратная реализация обычно предполагает распараллеливание операций. Язык Handel-C был разработан группой Oxford Hardware Compilation Group на базе языка ANSI С и языка Occam. Последний основан на использовании алгебры взаимодействия последовательных процессов (Communicating Sequential Processes, CSP). В язык С были добавлены новые конструкции, описывающие параллельные операции. С помощью этих конструкций можно указать компилятору, какие из операций должны выполняться параллельно, и эти указания будут реализованы в аппаратной схеме.
Важно, что параллелизм в Handel-C – это не параллелизм с квантованием времени, как в системах компьютерного моделирования, а настоящий параллелизм. Если задается параллельное исполнение двух инструкций, эти две инструкции будут выполняться одновременно двумя отдельными блоками результирующей схемы. Когда компилятор находит блок, предусматривающий распараллеливание, он разделяет процесс выполнения алгоритма на независимые ветви. При обработке такого блока, процессы обработки всех ветвей стартуют одновременно. Когда работа в одной из ветвей завершается, она входит в режим ожидания до тех пор, пока не будут завершены процедуры во всех остальных ветвях. Когда все параллельные ветви отработали, обработка блока завершается и происходит переход к следующему блоку.
Пользователь может писать алгоритмы на Handel-C, не заботясь о том, как работает компилятор. Аппаратное представление алгоритма синтезируется напрямую из исходного кода Handel-C, без промежуточного уровня "интерпретации". Конечную схему на уровне вентилей, которая компилируется из исходного кода, можно рассматривать как инструкции ассемблера в системе Handel-C. С этой точки зрения язык Handel-C больше похож именно на язык программирования, а не на язык описания аппаратуры. Для аппаратуры язык Handel-C фактически то же, что и обычный высокоуровневый язык программирования для ассемблера микропроцессора.
Среда отладки проекта в системах Agility Compiler и DK4 Design Suite (рис. 3) позволяет проводить смешанное моделирование, анализ и отладку проекта на уровне транзакций (Transaction Level Model, TLM). В целом процесс отладки очень похож на процесс отладки программ. Есть средства установки точек прерывания, анализа и визуализации переменных. Однако есть и специфика, связанная с тактовыми сигналами, обработкой параллельных веток исполнения. Важно, что в любой момент для заданного программного блока можно выполнить процедуру синтеза непосредственно в среде проектирования и сразу оценить результат аппаратной реализации на базе одного из распространенных ПЛИС.
Система Agility Compiler в значительной степени позиционируется как средство системного уровня при проектировании заказных СБИС и систем на кристалле. Помимо генерации аппаратного представления в виде списка цепей в формате EDIF для ПЛИС компаний Altera, Xilinx и Actel здесь большое внимание уделяется оптимизации генерируемого RTL-описания. Предусмотрены графические средства контроля и анализа потоков данных (рис. 4). Как и в DK4 Design Suite, имеется возможность создания аппаратного прототипа.
АППАРАТНОЕ ПРОТОТИПИРОВАНИЕ И ПЕРСОНАЛЬНЫЕ СУПЕРКОМПЬЮТЕРЫ
Для аппаратной отладки и прототипирования компания Celoxica предлагает разработчикам воспользоваться своей RC-серией отладочных плат. Все варианты отладочных плат RC-серии включают одну или несколько ПЛИС ведущих производителей для аппаратной реализации разрабатываемого устройства (Xilinx Spartan3L, Xilinx Virtex-II/4, Altera Startix-II, Xilinx Virtex-II/IIPro/4). Кроме того, на платах реализованы различные варианты стандартного аппаратного окружения. Они могут содержать блоки памяти (Flash, SRAM, DDR, SDRAM), процессоры (ARM9T RISC) и какой-то из наборов стандартных интерфейсных блоков (USB2.0, RS232, CAN, PS/2, ADC,VGA, CMOS, Cameralink, DAC, Ethernet, Video I/O, AC97 Audio, SDIO, Bluetooth,TFT / Touchscreen и др.). Кроме плат с жесткой конфигурацией аппаратного окружения (RC10, RC203, RC250, RC340) предусмотрены модифицируемые модульные варианты, позволяющие формировать состав компонентов отладочного модуля в зависимости от потребностей текущего проекта (RC2000 и RCPartner).
Используя системы Agility Compiler и DK4 Design Suite, разработчик может быстро создать на платах RC-серии различные варианты реализации алгоритмов и проанализировать их поведение в реальном аппаратном окружении. Поддержка встроенной операционной системы реального времени и системных API обеспечивает полноценную программно-аппаратную верификацию разрабатываемой системы.
Еще одно очень любопытное и перспективное направление в рамках программно-аппаратного подхода – построение реконфигурируемых высокопроизводительных вычислительных систем (High Performance Reconfigurable Computing, HPRC). Традиционно для построения высокопроизводительных вычислительных систем (High Performance Computing, HPC) использовались различные ускорители на основе заказных СБИС, ориентированные на повышение эффективности определенного типа вычислений. Попытки создания HPRC на основе ПЛИС предпринимались на протяжении последних двадцати лет, однако практическая реализация такого подхода на базе персональных компьютеров возможна только при выполнении следующих условий:
· емкость и производительность ПЛИС должны быть достаточными для реализации реальных вычислительных алгоритмов;
· производительность информационных шин должна обеспечивать достаточную скорость обмена данными между процессором и аппаратным ускорителем;
· средства создания аппаратного ускорителя должны быть доступными и понятными для разработчиков программного обеспечения.
Сегодня создание HPRC на базе ПЛИС реально. Стандартные ПЛИС, изготовленные по технологическим нормам 90 нм, такие как Xilinx Virtex4, за счет распараллеливания вычислительных операций способны выполнять практические алгоритмы значительно быстрее, чем обычные процессоры. Высокопроизводительные шины HyperTransport и PCI Express обеспечивают необходимый уровень скорости обмена данными. Появились и средства синтеза для языков программирования, построенных на базе С/С++.
В рамках стратегии HPRC компанией Celoxica был разработан программно-аппаратный комплекс на базе интерфейса HyperTransport (HTX). Он включает в себя плату ускорителя-сопроцессора RCHTX (рис.5) и среду программирования с компилятором, который позволяет синтезировать аппаратную реализацию функций на языке Handel-С на ПЛИС этой платы. Ускоритель поддерживает встроенную операционную систему, ориентированную на использование интерфейса HTX и процессоров Opteron. Плата содержит две ПЛИС Xilinx Virtex 4, 24 MБайт QDR SRAM и ряд интерфейсных блоков. Основная ПЛИС сопроцессора объемом 16 млн. вентилей предназначена для реализации алгоритмов пользователя. Вторая ПЛИС служит для обмена данными между ПЛИС сопроцессора, главным процессором и оперативной памятью через шину HyperTransport.
Программное обеспечение состоит из системы DK4 Design Suite, включающей компилятор языка С для программирования сопроцессора ПЛИС, пакета поддержки платы (Board Support Package, BSP), драйверов для платы RCHTX, базовой библиотеки арифметики с плавающей точкой (одинарной и двойной точности) и прикладного интерфейса программирования API, который обеспечивает доступ к ресурсам платы из программ пользователя.
Алгоритм работы с системой выглядит следующим образом. Пользователь замещает блоки в исходном С-коде, которые необходимо реализовать на ПЛИС сопроцессора, вызовами API-функций Celoxica. С помощью инструкций языка Handel-C в код вводятся элементы параллелизма. Компилятор С добавляет дополнительные встроенные функции, необходимые для работы программы в новой аппаратной среде. Обмен данными между основным процессом и ПЛИС сопроцессора во время выполнения программы осуществляется через шину HyperTransport.
Основная идея такого подхода в том, чтобы на базе сопроцессора была реализована не вся прикладная программа, а только наиболее интенсивные вычислительные алгоритмы, создающие основную нагрузку на процессор. Хорошие кандидаты для реализации на базе сопроцессора – различные алгоритмы кодирования, шифрования, БПФ, алгоритмы статистического моделирования и распространения волн и т.д. Часто время выполнения приложения определяется алгоритмами, находящимися во внутренних циклах программы, которые могут составлять всего несколько процентов от объема всего исходного кода. Поэтому, приложив сравнительно небольшие усилия, можно увеличить производительность в десятки раз за счет массового распараллеливания вычислений на уровне отдельных операторов.
В среднем эта технология позволяет повысить производительность целочисленных вычислений в сто раз, вычислений с плавающей точкой с одинарной точностью в десять раз, и с двойной точностью – в пять раз. Например, для модели ценообразования опциона Блэка-Шоулза, применяемой в финансовом анализе, производительность была увеличена в двести раз. Но, конечно, возможности повышения производительности в системах HPRC индивидуальны для каждой задачи и ограничиваются правилом Амдэля (определение максимального теоретического ускорения приложения, когда модифицируется только его часть, или при использовании множества процессоров). Можно сделать вывод, что появляется новый класс персональных суперкомпьютеров, которые могут собираться из готовых компонентов различных производителей и становятся доступны по цене для широкого круга пользователей. А технологии компиляции программного С-кода в аппаратную реализацию сопроцессоров ПЛИС делают реконфигурирование таких систем понятным для программистов.
В целом программно ориентированный подход к проектированию открывает дорогу к созданию аппаратных средств на базе современных микроэлектроэлектронных компонентов программистам и специалистам в прикладных областях, не являющихся разработчиками аппаратуры. Инженеров, знакомых с программированием, гораздо больше, чем разработчиков аппаратуры. Это потенциал, который может быть задействован при внедрении программно ориентированного подхода к проектированию.
Предыдущая статья:
Высоковольтный предохранитель для трекового детектора переходного излучения Содержание Следующая статья:
Электроника в России – прошлое, настоящее... И что грядущее готовит?
Оставить комментарий >
Имя: (обязательно)
E-mail: (не публикуется)
Комментарий:
Введите
контрольный код: Cryptographp PictureReload
Отзывы читателей