119 кб

advertisement
Имитатор микропроцессора на основе ПЛИС
для функциональной проверки вычислительной системы
Костенко В. О., ИМВС РАН, vitel@mcst.ru
Изготовление системной панели – основы вычислительной
системы «Эльбрус-3М1» – было запланировано
и полностью завершено на 5 месяцев раньше, чем
изготовление микропроцессора «Эльбрус».
Системная панель, основанная на ПЛИС, требовала
функциональной проверки и отладки совместно с
прототипом микропроцессора «Эльбрус» на ПЛИС,
памятью DDR SDRAM и типовым комплектом устройств I/O.
Работы в этом направлении сводились к поиску ошибок
как в системной панели и ПЛИС системной логики,
так и в прототипе микропроцессора «Эльбрус»,
их воспроизведению, получению временных диаграмм
неправильной работы для определения причин ошибок.
Эти работы необходимо было начать,
не дожидаясь изготовления микропроцессора «Эльбрус»,
для чего потребовалось разработать устройство –
имитатор микропроцессора «Эльбрус» (CPUIM).
Решения, принятые при разработке –
Выбран способ управления CPUIM –
внешнее управление.
необходимо внешнее устройство управления,
необходим внешний канал управления,
зато возможны варианты и устройства управления,
и канала, совместимые между собой.
Выбрана элементная основа CPUIM –
одна ПЛИС серии Stratix фирмы Altera.
Технология 110 нм, тактовая частота более 100 МГц ,
встроенный анализатор для получения временных диаграмм.
Выбран принцип действия CPUIM –
согласование обмена данными
между каналом управления и системной панелью.
Достоинства выбранного принципа действия:
Такое согласование несложно выполнить с помощью
FIFO-буферов, устройств синхронизации данных и
устройств преобразования форматов данных.
При этом скорость внешнего канала управления
может быть сколь угодно низкой, и в нем не требуется
наличие обратной связи для управления потоком данных,
такую связь достаточно иметь в передатчике канала.
Из практических соображений, было принято решение
ограничить внешний канал скоростью 3,2 Гбит/c.
Неизбежный недостаток:
CPUIM обеспечивает пропускную способность,
не превышающую 10 % от способности CPU «Эльбрус»
(а практическая реализация быстрого канала
управления ограничивает эту величину 1-3 %) –
но тестирование, направленное на поиск ошибок при 100 %
пропускной способности, проводилось во время
логического моделирования системы вместе с двумя CPU.
Основное достоинство
выбранного принципа действия:
В качестве устройства управления может использоваться
как специальное оборудование, так и ПЭВМ под управлением
специальной программы, что делает возможным автономную
отладку с ручным или автоматическим управлением.
Для названных целей были разработаны:
Интерактивная диалоговая программа
с оконным интерфейсом –
«ИНЖЕНЕРНЫЙ ПУЛЬТ УПРАВЛЕНИЯ CPUIM».
+ Позволяет вручную проверить работу любой операции.
- От оператора требуется полное понимание работы системы.
Устройство сопряжения CPUIM c
прототипом микропроцессора «Эльбрус» на ПЛИС.
+ Позволяет проверить работу системы на стандартном ПО «Эльбрус».
(Двоичный транслятор, BIOS, ОС, компилятор, драйверы устройств…)
- Требует высокого уровня стабильности работы системы.
- Сниженные возможности по воспроизведению ошибок.
Общая часть CPUIM для всех вариантов:
Устройство сопряжения с системной логикой (100 МГц и 200 МГц DDR):
sys_int
32
10
FIFO
10
От 0 до 3,2 Гбит/c
(Verilog-2001)
Выполняет
необходимую
буферизацию
и уплотнение,
предоставляя
внутренние
32-разрядные
каналы для
подключения
приемника и
передатчика
внешнего
канала.
data
32
40
FIFO
40
32
32
32
Мультиплексор
2 уровня.
300
300
FIFO
FIFO
×2
300
150
×2
300
150
DDR
IN
data_ac
DDR
IN
data_sn
DDR
IN
data_dc0
DDR
IN
data_dc1
5
20
75
75
Мультиплексоры
1 уровня.
quit_ac
32
5
quit_sn
quit
32
10
32
От 0 до 3,2 Гбит/c
quit_dc0
32
300
1/4
75
quit_dc1
32
300
1/4
75
Вариант CPUIM с медленным внешним каналом (через JTAG):
(Verilog-2001,
C, Cygwin)
Канал через
тестовый порт
JTAG и
спец. кабель.
Разработан
на основе
готового
программноаппаратного
решения –
готовый порт
JTAG и
терминал
JTAG для
ПЭВМ.
Порт LPT
(IEEE-1284)
ПЭВМ
Кабель
Byte Blaster II
OC
Windows/
терминал
Cygwin
jtag_link
quit
≤ 2,5 Кбит/c
Порт
JTAG
32
4
data
32
100 МГц
Сеть
TCP/IP
sys_int
Пульт
управления
CPUIM
Системная
панель,
100 МГц/
200 МГц
DDR
Вариант CPUIM с быстрым внешним каналом (LVDS):
(Verilog-2001)
Канал LVDS
(RJ-45, UTP),
два однонаправленных
канала,
Устройство
сопряжения (ПЛИС)
Прототип CPU «Эльбрус»
на ПЛИС.
333 кГц / 667 кГц «DDR»
533/1067
Мбит/с,
сопровождение
синхросигналом,
200/400
Мбит/с на
lvds_link
3
533 / 1067 Мбит /с
lvds_rx
sys_int
quit
32
витую пару.
Синхронизатор
принимаемых
данных,
спец. элементы
I/O LVDS
533 / 1067 Мбит /с
3
lvds_tx
data
32
100 МГц
Системная
панель,
100 МГц/
200 МГц
DDR
Инженерный пульт управления CPUIM:
(Tcl / Tk)
Диалоговая программа
с оконной графикой.
Работает по замкнутому
циклу, запускаемому
вручную.
Основана на
программных
FIFO-буферах.
Работа диалогов
содержит элементы
логики CPU.
Определяет
множество ошибок
аппаратуры
с помощью проверки
некоторых действий.
CPUIM (JTAG)
Чтение TCP/IP
Запись TCP/IP
Буферизация
входных данных
Буферизация
выходных данных
Анализ
входных данных
Анализ
выходных данных
Отображение входных данных,
Переход в диалоговый режим,
Прием выходных данных,
Выход из диалогового режима.
(Работают элементы логики CPU.)
Внешний вид и структура диалогового окна
соответствует структуре каналов CPUIM.
Удобное представление данных.
Итоги работы для проекта «Эльбрус-3М».
Все рассмотренные средства, связанные с CPUIM,
в разное время применялись или продолжают
применяться на практике.
С помощью медленного внешнего канала и инженерного
пульта управления CPUIM удалось отладить работу
DDR SDRAM и EEPROM, после чего быстрый внешний канал
был успешно использован для подключения прототипа CPU
«Эльбрус» на ПЛИС к рабочей станции, что позволило
начать совместную отладку рабочей станции и
системного ПО: двоичный транслятор, x86 BIOS, ОС Linux.
С помощью CPUIM были найдены ошибки
в системной логике, а также своевременно обнаружены проблемы
с механическим и электрическим качеством печатных плат проекта.
В настоящее время CPUIM совместно с прототипом CPU успешно
используется для тестирования логики будущей 2-ой итерации
CPU «Эльбрус» на стандартном ПО «Эльбрус».
Благодарю за внимание.
Download