Научная статья на тему 'КОНТРОЛЛЕРНЫЕ СФ-БЛОКИ ДЛЯ РЕАЛИЗАЦИИ ФУНКЦИЙ УПРАВЛЕНИЯ В СБИС'

КОНТРОЛЛЕРНЫЕ СФ-БЛОКИ ДЛЯ РЕАЛИЗАЦИИ ФУНКЦИЙ УПРАВЛЕНИЯ В СБИС Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
150
21
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СФ-БЛОК / СБИС / КОНТРОЛЛЕР / ПРОЦЕССОР / ЯДРО / СИСТЕМА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Родионов Андрей Андреевич, Шагурин Игорь Иванович

Рассмотрены две разработанные модели контроллерных СФ-блоков, ориентированных на создание СБИС класса система-на-кристалле. Описаны их структуры и характеристики, проведено сравнение. Приведены и проанализированы параметры при реализации данных моделей на ПЛИС фирмы Xilinx. Описаны способы их интеграции в конечные системы, а также даны примеры использования данных контроллерных блоков в реальных прикладных задачах.Two developed models for the controller IP-blocks directed toward VLSI creation have been considered, their structures and characteristics have been described. Their parameters in realization of the given models on Xilinx FPGA have been presented and analyzed. The methods of their integration into the final systems have been described, and the examples of using the controller blocks in the real applications have been presented.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Родионов Андрей Андреевич, Шагурин Игорь Иванович

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

Текст научной работы на тему «КОНТРОЛЛЕРНЫЕ СФ-БЛОКИ ДЛЯ РЕАЛИЗАЦИИ ФУНКЦИЙ УПРАВЛЕНИЯ В СБИС»

МИКРОПРОЦЕССОРНАЯ ТЕХНИКА

УДК 004.383.3

Контроллерные СФ-блоки для реализации функций

управления в СБИС

А.А.Родионов, И.И.Шагурин

Московский инженерно-физический институт (государственный университет)

Рассмотрены две разработанные модели контроллерных СФ-блоков, ориентированных на создание СБИС класса система-на-кристалле. Описаны их структуры и характеристики, проведено сравнение. Приведены и проанализированы параметры при реализации данных моделей на ПЛИС фирмы Xilinx. Описаны способы их интеграции в конечные системы, а также даны примеры использования данных контроллерных блоков в реальных прикладных задачах.

Одним из перспективных направлений развития современной микроэлектронной аппаратуры является разработка и применение систем-на-кристалле (СнК) [1]. Различные устройства, входящие в состав СнК, проектируются в виде стандартных сложно-функциональных (СФ) блоков, представляемых в виде модели, написанной на языке VHDL или Verilog (синтезируемые СФ-блоки или Soft IP-blocks), или в виде топологической реализации, используемой как фрагмент топологии разрабатываемой СБИС (ап-паратно-реализованные СФ-блоки или Hard IP-blocks). В процессе разработки СнК синтезируемые СФ-блоки транслируются в аппаратное представление стандартными средствами современных САПР и реализуются в виде специализированных СБИС (ASIC) или на базе программируемых логических микросхем (ПЛИС) типа FPGA.

Общая структура типовой СнК показана на рис.1. Процессорное ядро осуществляет функции общего управления работой системы, а также выполняет определенные специальные процедуры обработки данных, которые эффективно реализуются программными средствами. В качестве периферийных устройств в составе системы обычно используются таймерные блоки, АЦП и ЦАП, контроллеры шин и другие устройства, выполняющие стандартные процедуры приема, преобразования и формирования внешних сигналов. Специализированные блоки обработки обеспечивают выполнение функций, специфических для данной системы, которые недостаточно эффективно реализуются процессорным ядром. Это могут быть, например, сопроцессоры, программно реализующие обработку чисел с «плавающей точкой» или

© А.А.Родионов, И.И.Шагурин, 2009

Внешние устройства

Л

Блоки интерфейса к внешним устройствам

Специализированные блоки обработки

Память

Рис.1. Структура типовой СнК

цифровую обработку сигналов (Digital Signal Processing), либо специализированные модули, обеспечивающие аппаратную реализацию требуемых алгоритмов. Различные типы модулей памяти (SRAM, DRAM, ROM, EEPROM, Flash) входят в состав СнК или подключаются в виде отдельных внешних блоков. Специальные блоки - параллельные и последовательные порты, адаптеры и контроллеры - обеспечивают интерфейс системы с внешними объектами.

В зависимости от выполняемых функций в СнК могут использоваться различные варианты процессорных ядер - от относительно простых 8-разрядных до высокопроизводительных 32-разрядных. Выбор процессорного ядра производится исходя из требований к его производительности в зависимости от сложности алгоритмов управления и вычислений, реализуемых программным способом. Для реализации широкого набора алгоритмов управления малой и средней сложности целесообразно использовать 8-разрядные процессоры с RISC-архитектурой, которые занимают небольшую площадь на кристалле и при достаточно высокой производительности потребляют малую мощность. В настоящее время наиболее популярными являются 8-разрядные RISC-микроконтроллеры семейств AVR компании Atmel и PIC компании Microchip. Для этих семейств имеется большой набор эффективных средств разработки программного обеспечения, многие из которых предоставляются в открытом доступе. Микроконтроллеры семейства AVR имеют развитую систему команд и позволяют программисту более эффективно реализовать достаточно сложные алгоритмы управления [2]. Поэтому для реализации контроллерных СФ-блоков была выбрана архитектура семейства AVR.

Процессорные ядра и контроллерные СФ-блоки «Mega103» и «Mega128». В состав разработанных контроллерных СФ-блоков входят процессорное ядро и ряд периферийных устройств. СФ-блоки реализованы на базе двух процессорных ядер -«Mega103» и «Mega128», программно совместимых с моделями ATMega103 и ATMega128 компании Atmel. Сравнительные характеристики этих СФ-блоков приведены в табл.1.

Таблица 1

Основные характеристики контроллерных СФ-блоков

Характеристики «Mega103» «Mega128»

Количество выполняемых инструкций 121 133

Встроенный умножитель Нет Есть

Внешние прерывания 8 8

Общее количествово прерываний 15 24

Режим пониженного потребления Нет Есть

Сторожевой (WatchDog) таймер Нет Есть

8-разрядные порты ввода-вывода 4 6

Модуль иЛЯТ 1 1

8-разрядные таймеры/счетчики 2 2

16-разрядные таймеры/счетчики - 2

Модуль 8Р1 - 1

Тип памяти программ Flash ОЗУ, ПЗУ, Flash

Структура контроллерного СФ-блока на базе ядра «Mega128» показана на рис.2. Модель разделена на четыре иерархических уровня:

1) тестовый уровень (System_test.v и System.v) - объединяет контроллер (Mega128.v) и модели памяти программ (program_PROM, program_SRAM), позволяя эмулировать внешние воздействия и проверять функционирование разработанной модели;

2) уровень контроллера (Mega128.v) -выделяются контроллер внешней памяти (programmemoriesctr) и блок формирования тактовых импульсов и сигнала сброса (clk reset gen), обеспечивающие запуск и тактирование СФ-блока;

3) уровень контроллерной периферии (mega128_controller.v) - содержит процессорное ядро (mega128_core.v), ОЗУ данных (data_SRAM) и набор периферийных блоков;

4)уровень процессорного ядра (mega128_core.v) - объединяет декодер команд (inst_decoder), АЛУ с блоком умножения (alu_mul), битовый процессор (bit_processor), регистровый файл, включающий набор регистров общего назначения (mpregs) и служебные регистры процессорного ядра (cpuregs).

В ядре AVR контроллерного СФ-блока реализована Гарвардская структура, т.е. имеются два отдельных адресных пространства для хранения программ и данных. Регистровая память процессора (32 регистра общего назначения в модуле mpregs.v) и ОЗУ емкостью 4 Кбайт (data sram.v) располагаются на кристалле контроллера. Хранение программ может быть реализовано двумя способами: используя внешнюю Flash-память емкостью до 128 Кбайт, для обмена с которой в состав СФ-блока может быть включен контроллер Flash-памяти; используя смешанную память, состоящую из двух областей - области загрузчика (ПЗУ) и основной области программ (ОЗУ). Для обращения к этой памяти в модели имеются соответствующие контроллеры (program_memories_contr.v). Общий объем ОЗУ и ПЗУ программ не должен превышать 128 Кбайт. Распределение адресного пространства памяти для смешанного варианта показано на рис.3. При использовании ПЗУ контроллер после сброса начинает выполнять программу загрузчика, которая позволяет загрузить в память программ (ОЗУ программ) код через входящие в состав модели периферийные интерфейсы SPI (возможна программная поддержка протокола ISP) или UART, а также через любой подключенный к модели внешний интерфейс.

Разработанная версия контроллерного СФ-блока «Mega128» реализует полную систему команд микроконтроллера ATMega128, выполняя 133 инструкции, которые делятся на 5 основных групп: арифметические и логические, инструкции ветвления,

;■■■■ [vj prc?grarin_nnemories_contr р ■ V ' srann_rinodel_iK_Sbit

Рис.2. Структура модели СФ-блока «Mega128»

Память программ Память данных

0x0000 32 регистра общего назначения 0x0000 0x001F

Область программ, конфигурируемая при старте МК (ОЗУ) 64 служебных регистра 0x0020 0x005F

(8К = 4К х 16) 160 дополнительных служебных регистров (область ОЗУ) 0x0060 0x00FF

0x0100

0x0FFF ОЗУ данных (4К = 4К х 8)

Область загрузчика (ПЗУ) 0x1000

(512Ь = 256 х 16) 0x10FF 0x10FF

Рис.3. Карта памяти модели «Mega128» для варианта ПЗУ+ОЗУ

перемещения данных, битовые и инструкции управления процессором. Декодирование инструкций и формирование управляющих сигналов обеспечивает модуль inst decoder.v. Для обращения к памяти данных используется прямая адресация или косвенно-регистровая, реализуемая с помощью индексных регистров X, Y, Z (имеются варианты с 6-разрядным смещением, с пост- или предекрементом).

Арифметические и логические команды, а также команды сравнения выполняются с помощью арифметико-логического устройства (модуль alu_mul.v), которое также содержит блок умножения, обеспечивающий быстрое умножение 8-разрядных операндов со знаком и без знака. Команды установки, сброса и проверки битов реализуются с помощью битового процессора (bit_processor.v). RISC-архитектура процессорного ядра позволяет выполнять большинство команд за один машинный такт. Полная программная совместимость с архитектурой AVR позволяет использовать при написании программ язык Си и стандартные средства разработки компании Atmel и других производителей.

В состав модели СФ-блока «Mega128» входят: 8-разрядное процессорное ядро с архитектурой AVR (mega128_core.v), контроллер памяти (ОЗУ + ПЗУ - program memories contr.v) или контроллер 16-разрядной внешней памяти программ (Flash-памяти), внутреннее ОЗУ данных емкостью 4 Кбайт (data sram.v), последовательный асинхронный интерфейс UART (uart.v), два 8-разрядных (timers_8bit.v) и два 16-разрядных (timers_16bit.v) таймер-счетчика, модуль синхронного последовательного интерфейса SPI Slave (spi.v), который реализует стандартный механизм внутрисхемного программирования ISP, сторожевой таймер (watchdogtimer.v) и шесть 8-разрядных параллельных портов PORTA, PORTB, PORTC, PORTD, PORTE, PORTF (port x.v). СФ-блок имеет 8 внешних входов прерывания, четыре из которых (nINT3-0) инициируют запрос при поступлении низкого уровня потенциала, а остальные четыре (INT4-7) могут программироваться на реализацию запроса при поступлении переднего или заднего фронта импульсного сигнала или при установке низкого уровня потенциала. Реализация прерываний по внешним запросам обеспечивается контроллером extinterrupts.

Кроме вышеописанного контроллерного СФ-блока «Mega128» разработан его упрощенный вариант - модель «Mega103». Ее отличает более компактный набор инструкций (отсутствие команд умножения, словарного перемещения данных, режима пониженного энергопотребления) и меньший набор периферийных блоков (4 порта ввода-вывода, два 8-разрядных таймера и модуль UART).

Модели СФ-блоков «Mega128» и «Mega103» написаны на языке Verilog. Таким образом, они относятся к классу синтезируемых (soft) СФ-блоков, которые могут быть аппаратно реализованы как на базе ПЛИС типа FPGA, так и в составе СБИС типа ASIC.

Результаты синтеза разработанных СФ-блоков на базе ПЛИС семейства Virtex-4 средствами САПР Xilinx XST [3] представлены в табл.2 (для процессорных ядер) и 3 (для моделей с полным набором периферийных устройств согласно табл.1). В этих таблицах указано число элементов ПЛИС, использованных для реализации СФ-блока (в скобках указан процент использования соответствующих ресурсов ПЛИС), при двух вариантах оптимизации (по быстродействию и площади) с применением обычного (Normal) и усовершенствованного (High) алгоритмов. Анализ полученных данных показывает, что синтез с использованием этих критериев дает достаточно близкие результаты по количеству используемых элементов и блоков (различие 8%). Однако оптимизация по быстродействию обеспечивает существенное увеличение тактовой частоты (на 53%). Использование усовершенствованного алгоритма оптимизации (High) при синтезе не дает существенного увеличения тактовой частоты и сокращения площади, но требует значительно большего времени на его выполнение.

Максимальная тактовая частота контроллерного СФ-блока «Mega128» при реализации на FPGA типа Virtex-4 LX25-12 компании Xilinx составляет 66 МГц. В проектах, не требующих высоких тактовых частот, целесообразно использовать оптимизацию по площади, что позволяет экономить около 400 LUT. Упрощенный вариант контроллерного СФ-блока - модель «Mega103» реализуется существенно более компактно, используя в оптимальном случае на 2000 LUT меньше, чем модель «Mega128».

Таблица 2

Ресурсы ПЛИС Xilinx Virtex-4 LX25-12, требуемые для реализации процессорных ядер «Mega128» и «Mega103»

Метод и степень оптимизации Число секций Число триггеров Количество LUT Максимальная тактовая частота, МГц

«Mega128»

Быстродействие (Normal) 1418 (13%) 491 (2%) 2686 (12%) 65,3

Быстродействие (High) 1417 (13%) 491 (2%) 2686 (12%) 65,1

Площадь (Normal) 1312 (12%) 451 (2%) 2370 (11%) 43,2

Площадь (High) 1312 (12%) 451 (2%) 2370 (11%) 43,2

«Mega103»

Быстродействие (Normal) 1036 (9%) 471 (2%) 1987 (9%) 64,7

Быстродействие (High) 966 (8%) 463 (2%) 1811 (8%) 63,8

Площадь (Normal) 865 (8%) 442 (2%) 1531 (7%) 38,3

Площадь (High) 855 (7%) 442 (2%) 1516 (7%) 37,8

Таблица 3

Ресурсы для реализации СФ-блоков «Mega103» и «Mega128» на ПЛИС Xilinx Virtex-4 LX25-12 (содержат 4 Кбайт внутреннего ОЗУ, реализованного в виде

блочной памяти ПЛИС)

Метод и степень оптимизации Число секций Число триггеров Количество LUT Максимальная тактовая частота, МГц

«Mega128»

Быстродействие (Normal) 2127 (19%) 1193 (5%) 4080 (18%) 66,3

Быстродействие (High) 2137 (19%) 1195 (5%) 4074 (18%) 64,4

Площадь (Normal) 1973 (18%) 1091 (5%) 3611 (16%) 40,1

Площадь (High) 1957 (18%) 1091 (5%) 3581 (16%) 43,4

«Mega103»

Быстродействие (Normal) 1227 (11%) 839 (3%) 2313 (10%) 56,4

Быстродействие (High) 1339 (12%) 843 (3%) 2477 (11%) 61,5

Площадь (Normal) 1153 (10%) 793 (3%) 2080 (9%) 34,3

Площадь (High) 1149 (10%) 793 (3%) 2077 (9%) 38,1

Контроллерный модуль включается в структуру СнК с помощью стандартных периферийных блоков (портов ввода-вывода, последовательных интерфейсов) или путем подключения различных дополнительных устройств к его внутренней шине. Контроллерная шина состоит из 16 линий адреса, 8 двунаправленных линий данных и 2 сигналов управления, задающих режим чтения или записи регистров в подключаемых устройствах. Адреса регистров внешних устройств задаются в адресном пространстве внешней памяти данных (диапазон 0x1100 ...OxFFFF). Простой протокол неквитиро-ванного обмена обеспечивает быструю связь с внешними устройствами по запросу процессорного ядра, выдающего на контроллерную шину адрес абонента. Для организации квитированного обмена процессорного ядра с внешними устройствами можно использовать входы прерываний nINT3-0 и INT4-7.

Применение контроллерных СФ-блоков «Mega103» и «Mega128». Контроллерный СФ-блок «Mega103» был использован для реализации прототипа модуля электронной обработки информации для оптикоэлектронных систем с многоэлементными фотоприемными устройствами, в частности для устройств ночного видения. Общая структура системы обработки изображений представлена на рис.4. Реализация данной структуры в виде СБИС типа СнК, интегрирующей функции нескольких десятков микросхем в одном кристалле, позволяет снизить потребляемую мощность не менее чем в 2 раза и массогабаритные характеристики не менее чем в 1,5 - 2 раза, а также устранить зависимость от зарубежных производителей. Задача контроллерного ядра - настройка блока цифровой обработки изображения, обслуживание терминальных устройств (дисплея, клавиатуры) и взаимодействие с персональным компьютером. Модель «Mega103» обладает достаточной производительностью для решения данных задач. Для реализации прототипа данной системы проведены синтез и трассировка контроллерного СФ-блока «Mega103» средствами САПР Cadence. Изготовлены опытные об-

разцы СБИС, содержащей данный СФ-блок, по 0,25-мкм КМОП-технологии. Площадь, требуемая для размещения СФ-блока «Ме§а103» на кристалле, составляет около 1 мм . Испытания опытных образцов СБИС показали, что данный СФ-блок обеспечивает выполнение всех необходимых тестовых программ на частоте до 60 МГц.

Контроллерный СФ-блок «Ме§а128» используется для реализации функций управления в составе проектируемой СБИС декодера цифрового телевизионного сигнала стандарта БУВ-Т (рис.5). СФ-блок «Ме§а128» служит для управления работой всех блоков, входящих в состав СОБОМ демодулятора, который выполняет следующие функции: оцифровку входного аналогового сигнала, демодуляцию и декодирование оцифрованного сигнала, модулированного и закодированного в соответствии со стандартом БТ81 БК 300 744; оценку и коррекцию каналов передачи данных, включая временную и частотную интерполяцию; выдачу многопрограммного транспортного потока МРБ02. Контроллерный СФ-блок обеспечивает управление процессом синхронизации с использованием программного обеспечения, которое может корректироваться и обновляться в процессе работы. Для организации обмена данными с внешними устройствами контроллерный блок имеет модуль асинхронного приемо-передатчика ИЛЯТ, а также интерфейс 12С, через который при рестарте системы производится загрузка ОЗУ данных блока из внешней БЬЛ8Н-памяти.

Антенна Аналоговая ^ часть Цифровая демодуляция Ц Оценка и коррекция

з:

12С Интерфейс «Mega128» и каналов

илят И Синхронизация и управление

Г л

Декодер каналов

Рис.5. Система обработки цифрового телевизионного сигнала

Разработанные СФ-блоки являются эффективным средством модернизации существующих систем на базе микроконтроллеров ATmega103 и ATmega128. Реализация этих контроллерных модулей в составе СнК позволяет повысить производительность в несколько раз, поскольку достигается максимальная тактовая частота 66 МГц против максимальных 16 МГц в микроконтроллерах компании Atmel. Существующие программные коды для систем, спроектированных на микроконтроллерах семейства ATmega, можно легко адаптировать для реализации на разработанных СФ-блоках. Написание дополнительных программ не требует изучения новых процессоров и систем команд и позволяет использовать стандартные средства разработки и отладки, разработанные для микроконтроллеров ATmega (например, предоставляемые компанией Atmel). Имеется возможность использования стандартных средств внутрисхемного программирования ISP (например, AVRISP mkII) для конфигурирования памяти программ контроллерного блока, реализуемой на базе ОЗУ.

СФ-блоки «Mega103» и «Mega128» могут эффективно использоваться в составе СнК, реализованных как на базе современных ПЛИС типа FPGA, так и в виде заказных СБИС.

Литература

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

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

2. Еестифеее А.В. Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL. -М.: Додэка-XXI, 2004. - 560 с.

3. Зотов В.Ю. Проектирование цифровых устройств на основе ПЛИС фирмы XILINX в САПР WebPack ISE. - М.: Горячая линия - Телеком, 2003. - 624 с.

Статья поступила 20 августа 2008 г.

Родионов Андрей Андреевич - аспирант кафедры микро- и наноэлектроники МИФИ. Область научных интересов: реализация СнК на основе СБИС, микропроцессорные системы и их архитектура, HDL-моделирование цифровых устройств, синтезируемые процессорные ядра.

Шагурин Игорь Иванович - доктор технических наук, профессор кафедры микро-и наноэлектроники МИФИ. Область научных интересов: проектирование цифровых СБИС, микропроцессорная техника, системы-на-кристалле.

Информация для читателей журнала «Известия высших учебных заведений. Электроника»

С тематическими указателями статей за 1996 - 2008 гг., аннотациями и содержанием последних номеров можно ознакомиться на нашем сайте:

http ://www. miet. ru/static/je/os.html

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