Применение IP-библиотек для проектирования СнК


PDF версия

В статье рассматриваются особенности применения библиотек IP-блоков для проектирования заказных СБИС типа СнК на примере продукта GRLIB компании Gaisler Research. Эта библиотека содержит широкий набор модулей, которые позволяют формировать системы различного назначения. В статье приводится маршрут проектирования СБИС, основанный на применении GRLIB, а также пример разработки СнК с помощью данной библиотеки.

Введение

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

Преимущество готовых блоков заключается в том, что при их использовании проектировщик не тратит время и средства на разработку и верификацию. Для решения ряда задач можно использовать библиотеки IP-блоков, предлагаемые различными компаниями по «открытой» лицензии (например, GNU General Public License — открытое лицензионное соглашение GNU). Для дальнейшего коммерческого применения полученных результатов обычно требуется приобрести соответствующую лицензию у разработчика библиотеки.

В статье рассматривается маршрут проектирования, основанный на использовании готовых IP-блоков библиотеки GRLIB компании Gaisler Research (GRLIB — Gaisler Research Library), и приводится пример ее применения для проектирования цифровых систем управления [2].

Библиотека IP-блоков GRLIB

Библиотека GRLIB, разработанная фирмой Gaisler Research для проектирования заказных СБИС типа СнК, включает в себя набор IP-блоков, написанных на языке VHDL, а также тесты для проверки их работоспособности [3].

Отличительной чертой и существенным преимуществом данной библиотеки является встроенная система автоматизации процесса проектирования. Она предназначена для работы в различных операционных средах (ОС), базовой из которых является Linux. Набор ОС, доступных для работы с этой библиотекой, постоянно пополняется. Система проектирования основана на настраиваемом сценарии Makefile (сценарии для утилиты Make, позволяющей автоматизировать процесс компиляции) и графической среде XGrlib, позволяющей путем изменения Makefile создавать новые проекты или настраивать уже существующие (определять архитектуру системы и настройки необходимых IP-блоков). Среда также позволяет определять для различных этапов проектирования (например, для логического синтеза или функциональной верификации) используемые «внешние» программные пакеты, такие как Altera Quartus, Actel Libero, Aldec Active-HDL и др. Таким образом, XGrlib формирует исходный HDL-код разрабатываемой системы из библиотеки, реализуя этап создания RTL-модели в маршруте проектирования [2].

Библиотека ориентирована на использование системной шины (bus-centric). Это означает, что большинство ее компонентов (IP-блоков) будут соединены между собой через общий интерфейс — шину AMBA класса AHB, дополнительно расширенную возможностями Plug&Play для упрощения операций добавления и удаления элементов системы. Основные элементы библиотеки — контроллер шины AHB и 32-разрядное высокопроизводительное процессорное ядро LEON3.
Стандартный интерфейс шины (по спецификации версии 2.0) позволяет разработчикам не только эффективно использовать библиотеку, но и расширять ее собственными модулями, адаптируя имеющиеся проекты.

Системная шина AMBA (Advanced Microcontroller Bus Architecture), которая разработана компанией ARM для организации эффективного взаимодействия различных компонентов системы, построенных на базе процессорных ядер фирмы, обеспечивает быстрое модульное проектирование систем, позволяя многократно использовать схемотехнические решения и функциональные тесты. Важными особенностями данной шины являются ее широкая распространенность, хорошая документированность и отсутствие необходимости в покупке лицензии на ее использование.
Спецификация шины AMBA определяет три различных класса шины: ASB, AHB и APB. Класс AHB наилучшим образом подходит для высокопроизводительных систем и имеет ряд особенностей: режим SPLIT-передачи; конвейерные и пакетные пересылки; арбитраж шины, который гарантирует наличие только одного ведущего в данный момент времени; возможность передачи данных размером в байт, полуслово и слово.

LEON3 представляет собой 32-разрядное процессорное ядро, построенное по архитектуре SPARC v8 (Scalable Processor ARChitecture). Основной областью применения SPARC-процессоров являются высокопроизводительные рабочие станции, серверы и суперкомпьютеры. В его архитектуре реализована концепция «регистровых окон», упрощающая создание однопроходных компиляторов и существенно снижающая количество команд обращения к памяти по сравнению с другими вариантами RISC-архитектуры [4].

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

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

Тактовая частота работы процессора зависит от его конфигурации и конкретной технологической реализации (до 400 МГц для ASIC, изготовляемой по 0,18-мкм технологии).

В состав библиотеки входят также следующие IP-блоки: арбитр шины AMBA 2.0 AHB; мост преобразования AHB-APB; буфер для записи файла трассировки шины AMBA AHB; 32-разрядный контроллер SDRAM; 32-разрядный контроллер SRAM или PROM; контроллер UART; 32-разрядный параллельный порт GPIO; модуль 32-разрядных таймеров; 32-разрядный контроллер шины PCI; буфер для записи файла трассировки шины PCI; контроллер Ethernet 10…100 Мбит/с MAC-уровня; блок FPU, соответствующий стандарту IEEE 754, для работы с числами одинарной или двойной точности и ряд других.

Блок DSU (Debug Support Unit) предназначен для отладки процессорного ядра LEON3. Он включается в систему с помощью шины AMBA AHB как ведомый модуль (AHB slave) и поддерживает работу с несколькими процессорными ядрами (вплоть до 16-ти). Его основное достоинство состоит в том, что он не загружает системную шину и не мешает работе процессора. Обмен данными с процессором идет по отдельной шине — отладочному интерфейсу. Подключиться к модулю DSU можно при помощи нескольких интерфейсов — UART (RS232), JTAG, PCI, USB или Ethernet. Основные функции модуля отладки — обеспечение доступа к регистрам процессорного ядра, трассировка, получение информации о конфигурации системы и распределении адресного пространства шины.
Линии запросов прерываний встроены в структуру шины параллельно с основными сигналами AMBA, формируя шину прерываний под управлением контроллера IRQ (Interrupts Unit). Контроллер включается в систему как ведомый модуль APB slave, реализуя все стандартные векторы прерываний, которые предлагает архитектура SPARC v.8. Перед выполнением каждой команды процессорное ядро LEON3 проверяет наличие ожидающих обработки исключительных ситуаций и запросов на прерывание. Если таковые существуют, то контроллер выбирает из них с наивысшим приоритетом.

Благодаря шинной ориентации и достаточно большому набору IP-блоков библиотека GRLIB позволяет создавать СнК различного назначения. В состав библиотеки входят не только RTL-описания IP-блоков, но и готовые проекты различных систем (включая схему соединений — netlist) для большого набора тестовых плат, основанных на ПЛИС типа FPGA, причем этот набор постоянно пополняется. При работе над коммерческими проектами разработчикам предоставляется коммерческая лицензия (commercial license).

Еще одним преимуществом применения GRLIB является наличие программного обеспечения, находящегося в свободном доступе или распространяемого по оценочным лицензиям (evaluation license). Примером могут служить разработанные компанией Gaisler Research надстройки (plugins) для среды Eclipse (www.eclipse.org), которые позволяют использовать набор средств CDT (C Developers Tool-kit) для разработки BCC- (Bare-C Cross-Compiler) и RCC- (RTEMS Cross Compiler) приложений (тестовые программы, загрузчики). Надстройки позволяют компилировать С/С++-приложения под LEON3, а затем отлаживать их на симуляторе или на конечном устройстве/тестовой плате (при помощи симулятора TSIM или отладчика GRMON, соответственно).

При работе с GRLIB можно выделить два подхода к проектированию СнК.

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

– Работа с отдельными IP-блоками библиотеки и создание на их базе независимого верхнего уровня проекта.

Данные подходы дополняют друг друга. Ниже приведен пример проектирования СнК с использованием IP-блоков библиотеки GRLIB.

Проектирование с использованием библиотеки IP-блоков GRLIB

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

 

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Разработка СнК начинается с создания архитектурной модели системы. На этом этапе создается и отлаживается архитектура системы, разрабатываются и проверяются алгоритмы ее функционирования, определяется набор системных блоков. Системная (архитектурная) спецификация описывает общий состав входящих в систему аппаратных и программных блоков и интерфейс связи между ними. В результате создается высокоуровневая поведенческая модель проектируемой системы, обеспечивающая получение требуемого результата, т.е. решение поставленных задач с помощью алгоритмов, реализуемых системными блоками. Модель может разрабатываться как на высокоуровневых языках, например С/С++ (для больших проектов или для решения исследовательских задач), так и с помощью несинтезируемого подмножества языков HDL, SystemC, System Verilog [5].

В полученной поведенческой модели выделяются функции, реализуемые программными и аппаратными средствами. Для разработки программного обеспечения обычно используются языки C/C++, на базе которых создавалась и архитектурная модель системы. Для разработки необходимых аппаратных средств выполняется функциональное проектирование системы, в процессе которого создается функциональная модель, описывающая поведение системы на RTL-уровне. При этом используются HDL-языки (VHDL, Verilog).

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

Следующий этап — логический синтез. Входными данными на этапе автоматизированного логического синтеза являются: разработанное RTL-описание, выбранная технологическая библиотека и заданные проектные ограничения. Результатом выполнения этого этапа является структурное описание проекта в заданном базисе (netlist). Описание системы (проекта) передается для выполнения физического синтеза (трассировки и размещения элементов на кристалле). На заключительных этапах изготавливается и тестируется опытный образец СБИС, на базе которого затем создается и испытывается прототип разрабатываемой аппаратуры [5]. Далее производится тестирование и отладка параллельно создаваемого программного обеспечения (ПО).

Разработка СнК на базе библиотеки GRLIB

На рисунке 2 приведена структура СнК, разработанная на основе библиотеки IP-блоков GRLIB. Ядром СнК является 32-разрядное высокопроизводительное процессорное ядро LEON3 (архитектура SPARC v.8). Данная система может решать задачи управления различными устройствами и объектами и выполнения сложных алгоритмов обработки данных.

 

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
В состав СнК включены следующие IP-блоки:

  • 32-разрядное процессорное ядро LEON3 (136 регистров общего назначения, кэш-память команд и данных, каждая емкостью по 4 Кбайт);
  • модуль отладки ядра DSU (Debug Support Unit);
  • интерфейс системной шины AMBA 2.0 (AHB Controller, AHB/APB Bridge);
  • два последовательных асинхронных интерфейса UART, один из которых (UART1) служит для отладки;
  • отладочный JTAG-интерфейс для связи с модулем отладки DSU;
  • 32-разрядный таймер/счетчик;
  • 32-разрядный параллельный порт ввода/вывода (GPIO-32);
  • контроллер прерываний (Interrupts Unit).

Синтез СнК проводился с помощью программного пакета Xilinx ISE 9.1i WebPack. Для испытания системы на прототипе использовалась демонстрационная плата компании Memec на базе FPGA Xilinx Virtex-4 LX25. Память программ емкостью 1 Кбайт (AHBROM) и память данных емкостью 4 Кбайт (AHBRAM) синтезировались с использованием модулей блочной памяти ПЛИС. Синтез проводился с оптимизацией по времени. Полученные данные приведены в таблице 1 (синтезировано процессорное ядро LEON3 без кэш-памяти с 136-ю регистрами общего назначения).

Таблица 1. Результаты синтеза на ПЛИС Xilinx Virtex4 LX25

Показатели

Синтез СнК

Синтез LEON3

Количество 4-входовых ШТ

9765 (45%)

5867 (27%)

Количество шт., используемых для реализации логики

8579

4694

Количество шт., используемых для реализации регистровой памяти и ПЗУ

1152

1152

Количество использованной блочной памяти (блоков)

10 (13%)

4 (5%)

Максимальная частота, МГц

149

159

 

Разработанная СнК прошла верификацию на уровне поведенческой модели, верификацию модели после синтеза, а также верификацию на прототипе. Базовый тест, поставляемый компанией Gaisler, использовался для верификации поведенческой модели. Последующее тестирование СнК проводилось с использованием собственных программ, выполняющих контроль функционирования периферийных модулей и блоков памяти (для написания тестов использовались языки Assembler и C). Так как отладчик GRMON и симулятор TSIM, распространяемые по оценочным лицензиям, настроены на определенную конфигурацию процессорного ядра, то для корректной работы с ними и компиляторами программ с языка C проведена корректировка адресации памяти данных. Разработанные тестовые программы обеспечили контроль функционирования как отдельных IP-блоков, так и целой системы.

Тестирование разработанной СнК, реализованной на плате Memec Virtex-4™ LC Development Kit (DS-BD-V4LX25LC), подтвердило корректность ее функционирования на рабочей частоте 100 МГц (частота кварца на плате). Оценочная максимальная частота по данным Xilinx ISE достигает 149 МГц при потребляемой мощности 452 мВт.

Заключение

Преимуществами библиотеки IP-блоков GRLIB компании Gaisler Research являются возможность автоматизированной разработки СнК и наличие доступа к кодам по открытому лицензионному соглашению GNU.

Проведенная разработка типовой структуры СнК подтвердила эффективность применения GRLIB для реализации базовой архитектуры цифровых систем управления и обработки данных с достаточно высокими характеристиками. Варианты прототипов разработанной СнК при реализации на ПЛИС Virtex4 LX25 обеспечивают высокую производительность (до 150 MIPS) при достаточно низком энергопотреблении (около 450 мВт).

Литература

1. Немудров В.Г., Мартин Г. Системы-на-кристалле. Проектирование и развитие. — М.: Техносфера, 2004, 216 c.

2. Jiri Gaisler, Sandi Habinc, Edvin Catovic. GRLIB IP Library User’s Manual Version 1.0.16.//Gaisler Research., 2007, P.64.

3. Jiri Gaisler, Edvin Catovic, Marko Isomaki, Kristoffer Carlsson, Sandi Habinc. GRLIB IP Core User’s Manual Version 1.0.16.//Gaisler Research, 2007, P.521.

4. Корнеев В.В., Киселев А.В. Современные микропроцессоры. — СПб: БХВ-Петербург, 2003, 440 с.

5. Антонов С.В., Аряшев С.И. Маршрут эффективной разработки ИС//Всероссийская научно-техническая конференция. Проблемы разработки перспективных микроэлектронных систем — 2005. Сборник научных трудов/Под общ. ред. А.Л. Стемпковского. — М: ИППМ РАН, 2005.

Оставьте отзыв

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