Управление, вычислительная техника



Скачать 97.75 Kb.
Дата17.10.2016
Размер97.75 Kb.

Вестник Брянского государственного технического университета. 2009. № 1 (21)

Управление, вычислительная техника


и информатика
УДК 681.3.068(03)
Н.В.Симкин
АРХИТЕКТУРА И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ГРАФИЧЕСКОЙ

СИСТЕМЫ НА БАЗЕ ПРОГРАММИРУЕМОЙ ЛОГИЧЕСКОЙ

ИНТЕГРАЛЬНОЙ СХЕМЫ VIRTEX-II PRO

Разработаны архитектура и программное обеспечение графической системы в интегрированной среде автоматизации проектирования электроники Xilinx ISE Design Suite.


Ключевые слова: архитектура; программное обеспечение; графическая система; проектирование; PowerPC; встроенный процессор.
Современный этап развития программного обеспечения вычислительной техники характеризуется широким применением программно-аппаратных комплексов, которые строятся по принципу «система на кристалле»(System-on-Chip). В первую очередь эта тенденция проявляется в программируемых логических интегральных схемах (ПЛИС) с архитектурой FPGA [1-5]. При таком подходе кристалл ПЛИС рассматривается как свободный конфигурируемый логический ресурс, на базе которого реализуются все необходимые устройства вычислительной системы. Ведущими мировыми производителями ПЛИС являются фирмы Xilinx и Altera, которые предоставляют и программное обеспечение для разработки проектов, а также для последующего конфигурирования кристаллов [6;7].

Графические системы состоят из различных уровней аппаратного и программного обеспечения, необходимого для того, чтобы вычислительная система отображала графическую информацию на LCD. Как правило, графическая система состоит из графического процессора (GPU), выполняющего математические операции, необходимые для формирования изображения, которое сохраняется в области памяти, называемой «кадровый буфер» (frame buffer), и контроллера LCD, считывающего содержимое кадрового буфера и передающего данные на вход LCD. Также необходимо программное обеспечение для управления аппаратурой и предоставления интерфейса программирования приложений (API) для разработчиков прикладных программ. Современные графические контроллеры обычно выполняются на специализированных микросхемах (ASIC) - главным образом из-за высоких требований к производительности, особенно в трехмерных приложениях.

В статье изложены результаты создания проекта графической системы на ПЛИС Virtex-II Pro, включающего необходимые программные и аппаратные компоненты для выполнения основных операций двухмерной графики.

Архитектура и программное обеспечение графической системы выполнялась в среде автоматизации проектирования электроники Xilinx ISE Design Suite, которая включает следующие основные программы: Project Navigator, Xilinx Platform Studio, Xilinx Platform Studio SDK [6].

Графическая система (рис.1) включает в себя процессор PowerPC 405, два контроллера памяти Sync RAM, контроллер LCD, контроллер памяти на кристалле Block RAM Controller, блок памяти Block RAM, контроллер JTAG, генератор тактовых импульсов Clock Generator, локальную процессорную шину PLB, шину регистров устройств DCR.

Связи между компонентами графической системы выполнены на основе шинной архитектуры PLB и DCR, а их адреса и прерывания установлены с помощью программы Xilinx Platform Studio. С помощью программы Xilinx Platform Studio SDK разработаны приложения для демонстрации функционирования графической системы, которые используют функции прорисовки пикселей, линий, прямоугольников, окружностей и отображения символьной информации.




Рис.1. Архитектура графической системы на ПЛИС Virtex-II Pro
Особенностью ПЛИС Virtex-II Pro является то, что она имеет интегрированный процессорный блок PowerPC 405, который состоит из ядра фирмы IBM PowerPC 405-D5 RISC, контроллера OCM, схемы синхронизации и интерфейса с ПЛИС Virtex-II Pro. Встроенное процессорное ядро позволяет работать на частоте до 300 Mhz с малой потребляемой мощностью. Специально разработанный интерфейс объединяет процессор с компонентами ПЛИС.

В разработанном проекте графической системы программа находится в памяти Block RAM. Процессор исполняет коды программы и модифицирует содержимое видеобуфера.

Шина PLB представляет собой разделяемую шину, работающую по принципу «мастер-подчиненный» (Master-Slave). PLB имеет адресную шину, двунаправленную шину данных и шину управления. В среде Xilinx Platform Studio контроллер LCD подключается к шине PLB через интерфейс IPIC, включающий в себя шины Rd/Wr Req & Qualifiers, Status Reply и Read Data. Основные задачи IPIС – декодирование адреса и генерирование сигнала выбора устройства. Большинство сигналов шины PLB просто транслируются через IPIС. Принцип подключения контроллера LCD через IPIС показан на рис.2.

Рис. 2. Подключение контроллера LCD к шине PLB, работающей в режиме Master_Single
Разработанный контроллер LCD имеет три порта, с помощью которых он подключается к шинам IPIC Rd/Wr Req & Qualifiers, Status Reply и Read Data. Шина Rd/Wr Req & Qualifiers включает в себя адресную шину и сигнал запроса на чтение данных. Шина Status Reply используется для передачи статусных сигналов, которые указывают, что адрес распознан и на шине достоверные данные. Шина Read Data используется для передачи данных на контроллер LCD. Данные передаются за один цикл шины одним 32-битным блоком.

Шина DCR, аналогично PLB, работает по принципу «мастер-подчиненный» (Master-Slave) и используется для исключения конфигурационных регистров контроллера LCD из адресного пространства шины PLB, что повышает пропускную способность шины PLB.

Контроллер LCD состоит из модуля управления LCD, модуля прямого доступа к памяти и модуля генерирования прерывания. Алгоритмы работы модулей контроллера LCD реализованы с использованием языка описания аппаратуры Verilog [8].

Модуль управления LCD генерирует сигнал горизонтальной синхронизации hsync, сигнал вертикальной синхронизации vsync, сигнал разрешения DE и сигналы R[5:0], G[5:0], B[5:0], несущие данные соответственно о красной, зеленой и синей составляющих пикселя. Сигналы горизонтальной (hsync) и вертикальной (vsync) синхронизации обеспечивают регенерацию изображения на экране монитора 60 раз в секунду.

На рис.3 представлена диаграмма формирования сигнала горизонтальной синхронизации hsync, а на рис.4 – диаграмма формирования сигнала вертикальной синхронизации vsync. Из рис.3 следует, что сигнал hsync имеет интервалы thp, thb, DE и thf, длительность которых составляет соответственно 96, 48, 640 и 16 тактовых импульсов CLK. Поэтому длительность интервала hsync равна длительности 800 тактовых импульсов CLK. Сигнал вертикальной синхронизации vsync состоит из интервалов tvp, tvb, DE и tvf, длительность которых составляет соответственно 2, 31, 480, 12 импульсов hsync. Таким образом, длина интервала vsync равна 525 hsync и при частоте тактового сигнала, которая для данного LCD с разрешением 640x480 равна 25Mhz, составляет 16 мс. На рис.3, 4 представлен сигнал DE, который управляет передачей данных о пикселях LCD, и имеет длительность активного интервала, равную 640 тактовым импульсам CLK. Длительность пассивного интервала составляет 160 тактовых импульсов CLK во время горизонтальной развертки и 45 импульсов hsync во время вертикальной синхронизации.


Рис. 3. Диаграмма формирования сигнала горизонтальной синхронизации hsync
Модуль прямого доступа к памяти состоит из спроектированных элементов: счетчика адреса, управляющего автомата и интерфейса с шиной PLB. Асинхронное FIFO (First Input First Output) связывает между собой модуль прямого доступа к памяти и контроллер LCD, работающие соответственно на частотах 100 и 25 Mhz. Кроме этого, FIFO буферизует данные о пикселях, чтобы обеспечить их непрерывное считывание в LCD, а также преобразует данные из 32-битного формата в 8-битный. Так как для хранения данных о цвете каждого пикселя используется палитра, то данные с выхода FIFO, прежде чем попасть на вход LCD, декодируются. Декодирование осуществляется с помощью таблицы цветов (CLUT). Вход разрешения чтения из FIFO управляется сигналом разрешения DE модуля синхронизации LCD. Вход разрешения записи, вход заполнения и вход данных FIFO представляют собой выходы управляющего автомата, который непрерывно и циклически обеспечивает поток данных из видеобуфера для регенерации изображения на LCD. Модуль асинхронного FIFO был сгенерирован в программе CoreGenerator [6], настроен и инициализирован в ISE Project Navigator.

Связь модуля прямого доступа к памяти с шиной PLB реализована на базе управляющего автомата, который обеспечивает протокол шины PLB и непрерывно, циклически считывает данные из видеоОЗУ, инкрементируя содержимое счетчика адреса. Так как контроллер LCD имеет интерфейс шины PLB, то он считывает данные из видеоОЗУ с любого адреса в пределах адресного пространства шины. Чтобы считывать данные по нужному адресу и знать объем видеобуфера, используются два регистра: регистр адреса и регистр размера буфера. Данные в регистры загружаются программно процессором через шину DCR. Доступ к регистрам DCR осуществляется посредством ассемблерных инструкций mtdcr, mfdcr, и макросов mtdcr(addr,data), mfdcr(addr), которые описаны в заголовочном файле xpseudo_asm_gcc.h среды Xilinx SDK. Управляющий автомат контроллера LCD имеет четыре состояния: ожидания, запроса на чтение, квитирования команды и завершения команды.




Рис. 4. Диаграмма формирования сигнала вертикальной синхронизации vsync
Модуль генерирования прерывания формирует сигнал прерывания после отображения кадра одного из двух буферов. Это необходимо для того, чтобы выполнять перестановку кадров в тот момент, когда кадр не считывается контроллером LCD. В этом случае искажения на экране монитора отсутствуют.

В разработанной графической системе процессор PowerPC 405 использует таблицу векторов прерываний [6]. При написании программ на языке С/C++ в Xilinx Platform Studio SDK инициализируется таблица прерываний с помощью функции void XExc_Init (void) и регистрируется собственный обработчик прерываний void XExc_RegisterHandler (Xuint8 ExceptionId, XExceptionHandler Handler, void *DataPtr) [5].

Разработанный контроллер памяти, имея интерфейс шины PLB, обеспечивает операции чтения и записи в микросхемы памяти CY7C1381C [9], расположенные на печатной плате, процессором PowerPC и контроллером LCD.

В программе Project Navigator создан проект графической системы, главный модуль которого включает в себя микропроцессорную систему, созданную в Xilinx Platform Studio, в виде подмодуля. Также в главном модуле реализованы порты с z-состоянием, а в файле ограничений проекта порты главного модуля назначены на соответствующие выводы микросхемы.

На этапе отладки архитектуры графической вычислительной системы, созданный проект компилируется с целью получения файла конфигурационной последовательности, который с помощью программы iMPACT загружается через интерфейс JTAG в конфигурационную статическую память ПЛИС Virtex-II Pro[5]. После загрузки конфигурационного файла, созданные в среде Xilinx Platform Studio SDK демонстрационные приложения, загружаются через интерфейс JTAG с помощью отладчика XMD в оперативную память Block RAM. Затем осуществляется сброс процессора и запуск программы на исполнение. Результат работы программы представлен на рис. 5.

Рис. 5. Тест графических примитивов

В результате экспериментальных исследований разработанного проекта графической системы было установлено, что максимальная скорость построения графических примитивов ограничивается пропускной способностью контроллера памяти видеоОЗУ и разделяемой шины PLB. Это обусловлено тем, что шина PLB имеет разделяемую архитектуру, которая поддерживает сложные схемы арбитража и поэтому вносит задержки при обращении процессора к видеоОЗУ. Кроме того, процессор и контроллер LCD, являющиеся мастерами шины PLB, могут обращаться к видеоОЗУ только последовательно, что также увеличивает время построения графических примитивов.

Ограничение доступа к памяти обусловлено ещё и тем, что запись и чтение данных из памяти происходит только блоками по 32 бита. При этом если для хранения данных об одном пикселе используется 32 бита, например при формате RGBA8888, этот вариант оптимально подходит. Но если для хранения данных об одном пикселе используется другой формат, например RGB565 или палитра, то для изменения значения одного пикселя необходимо выполнить два цикла обращения к памяти (чтение и запись) и использовать битовые маски и сдвиги, что приводит к замедлению работы графической системы. Время построения графических примитивов на LCD-панели представлено в таблице.

Таблица

Время построения графических примитивов на LCD-панели


Функция


Время выполнения

Вывод линии по алгоритму Брезенхема

67 мкс

Вывод символа с использованием таблицы шрифтов (8х11)

51 мкс

Вывод строки из 30 символов

1,2 мс

Вывод незакрашенной окружности радиусом 30 пикселей

159 мкс

Вывод закрашенной окружности радиусом 30 пикселей

2,1 мс

Вывод незакрашенной окружности на весь экран

650 мкс

Вывод закрашенной окружности на весь экран

112 мс

Вывод закрашенного треугольника

790 мкс

Вывод закрашенного треугольника на весь экран (640х480)

105 мс

Построение эллипса

1,1 мс

Расчет угла поворота

14 мкс

Вращение окружности со стрелкой вокруг другой окружности и вывод текстовой строки

5,4 мс

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

СПИСОК ЛИТЕРАТУРЫ




  1. Грушвицкий, Р.И. Проектирование систем на микросхемах с программируемой структурой / Р.И.Грушвицкий, А.Х.Мурасаев, Е.П.Угрюмов. - 2-е изд.,перераб. и доп.-СПб.: БХВ-Петербург, 2006. -736 с.

  2. Симкин, Н.В. Разработка программного обеспечения обработки потока данных, поступающих с аналого-цифрового преобразователя с временным чередованием каналов/Н.В.Симкин, В.В. Симкин // Труды факультета технической кибернетики «Практика применения научного программного обеспечения в образовании и научных исследованиях».-СПб.: СПбГПУ, 2006.-С.128-129.

  3. Симкин, Н.В. Разработка реконфигурируемого персонального компьютера на базе синтезируемого процессорного ядра NIOS II и LCD WINSTAR/Н.В.Симкин//Материалы 61-й студенческой научной конференции.- Брянск: БГТУ, 2006.-277 с.

  4. Симкин, Н.В. Разработка архитектуры и программного обеспечения видеосистемы осциллографа на базе синтезируемого процессорного ядра NIOS II/Н.В.Симкин//Труды факультета технической кибернетики «Практика применения научного программного обеспечения в образовании и научных исследованиях».-СПб: СПбГПУ, 2007.-С.118.

  5. Зотов, В.Ю.Проектирование встраиваемых микропроцессорных систем на основе ПЛИС фирмы Xilinx/В.Ю.Зотов.-М.: Горячая линия-Телеком, 2006.-520 с.

  6. http://www.xilinx.com

  7. http://www.altera.com

  8. Verilog HDL Reference manual/IEEE 1364 standard.- 1997.

  9. http://www.cypress.com

Материал поступил в редколлегию 18.11.08.




Каталог: doc -> vestnik
vestnik -> Транспортное машиностроение
vestnik -> Постановление От 04. 09. 2015 года с. Бирит №55 «Об утверждении схемы расположения земельного участка»
vestnik -> Вестник Брянского государственного технического университета. 2011. №4(32)
vestnik -> В. М. Рябов становление и развитие отечественного
vestnik -> Е. А. Лагерева оптимальное проектирование гидравлических механизмов поворота поршневого типа крано-манипуляторных установок многоцелевых транспортно-технологических машин сформулирована и решена задача
vestnik -> Модернизация крана-манипулятора самоходной энергетической машины аст-4-А
vestnik -> Вычислительная техника и информационные технологии
vestnik -> Вестник Брянского государственного технического университета. 2007. №1(13)
vestnik -> Формирование системы высшего технического образования в россии


Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©grazit.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал