Научная статья на тему 'Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейств Spartan-3, Virtex-II и Virtex-IIPRO'

Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейств Spartan-3, Virtex-II и Virtex-IIPRO Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Тарасов Илья, Зотов Валерий

Группа арифметических команд микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Тарасов Илья, Зотов Валерий

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

Текст научной работы на тему «Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейств Spartan-3, Virtex-II и Virtex-IIPRO»

106

www.finestreet.ru

компоненты

Окончание, начало в № 5'2005

Особенности микропроцессорного ядра РкоВ^е,

предназначенного для применения в проектах, реализуемых на основе ПЛИС семейств Spartan-3, Virtex-II, Virtex-4 и Virtex-IIPRO

Валерий ЗОТОВ

walerry@km.ru

Группа арифметических команд микропроцессорного ядра РкоВ^е, предназначенного для использования в кристаллах семейств Браггап-З, Укгех-П, У1ггех-!!РРО и У1ггех-4

Группа арифметических команд новой версии микропроцессорного ядра PicoBlaze пополнилась двумя вариантами инструкции COMPARE, которая будет представлена в заключительной части данного раздела. В структуре полей арифметических команд микропроцессорного ядра PicoBlaze, предназначенного для применения в кристаллах семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4, произошли те же изменения (по сравнению с форматами аналогичных команд для базовой версии ядра [2]), что и в логических инструкциях, рассмотренных в предыдущем разделе.

В таблице 9 приведены модифицированные варианты форматов команд сложения ADD содержимого регистра с номером N и константы kk, а также содержимого двух регистров общего назначения с номерами N и M без учета переноса.

Таблица 10 представляет новую версию формата инструкций ADDCY, выполняющих операции суммирования двух операндов с учетом значения флага переноса, полученного при выполнении предыдущей команды.

Форматы инструкций SUB, предназначенных для выполнения операции вычитания содержимого регистра с номером M или константы kk из содержимого регистра с номером N, без учета заема, в новой редакции представлены в таблице 11.

Модифицированные варианты форматов команд SUBCY, используемых для вычисления разности двух операндов с учетом значения заема, образовавшегося при выполнении предыдущей операции, приведены в таблице 12.

Для осуществления арифметического (в отличие от поразрядного) сравнения значений двух восьмиразрядных операндов предназначена команда COMPARE. В качестве операндов при выполнении данной инструкции

Таблица. 9. Форматы команд сложения двух операндов без учета переноса для микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4

Поле кода операции Поле номера регистра Поле константы Мнемоника Выполняемая операция

0 0 0 0 K K K K K K K K ADD sN, kk Сложение содержимого регистра sN и константы kk

Поле кода операции Поле номера первого регистра Поле номера второго регистра Нулевые разряды Мнемоника Выполняемая операция

0 0 0 m m m m 0 0 0 0 ADD sN,sM Сложение содержимого регистров sN и sM

17 16 15 14 13 12 11 10 0 Номер разряда микрокоманды

Таблица. 10. Форматы команд сложения двух операндов с учетом переноса для микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4

Поле кода операции Поле номера регистра Поле константы Мнемоника Выполняемая операция

0 0 0 K K K K K K K K ADDCY sN, kk Сложение содержимого регистра sN и константы kk с учетом переноса

Поле кода операции Поле номера первого регистра Поле номера второго регистра Нулевые разряды Мнемоника Выполняемая операция

0 0 m m m m 0 0 0 0 ADDCY sN,sM Сложение содержимого регистров sN и sM с учетом переноса

17 16 15 14 13 12 11 10 0 Номер разряда микрокоманды

Таблица. 11. Форматы команд вычитания без учета заема для микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4

Поле кода операции Поле номера регистра Поле константы Мнемоника Выполняемая операция

0 0 0 K K K K K K K K SUB sN, kk Вычитание из содержимого регистра sN константы kk

Поле кода операции Поле номера первого регистра Поле номера второго регистра Нулевые разряды Мнемоника Выполняемая операция

0 0 m m m m 0 0 0 0 SUB sN,sM Вычитание содержимого регистра sM из содержимого регистра sN

17 16 15 14 13 12 11 10 0 Номер разряда микрокоманды

Таблица. 12. Форматы инструкций вычитания с учетом заема для микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4

Поле кода операции Поле номера регистра Поле константы Мнемоника Выполняемая операция

0 0 K K K K K K K K SUBCY sN, kk Вычитание из содержимого регистра sN константы kk с учетом заема

Поле кода операции Поле номера первого регистра Поле номера второго регистра Нулевые разряды Мнемоника Выполняемая операция

0 m m m m 0 0 0 0 SUBCY sN,sM Вычитание содержимого регистра sM из содержимого регистра sN с учетом заема

17 16 15 14 13 12 11 10 0 Номер разряда микрокоманды

могут выступать содержимое регистра обще- операндом в инструкциях COMPARE всегда

го назначения и константа или содержимое является содержимое регистра общего назна-

двух регистров общего назначения. Первым чения, номер которого N указан в виде значе-

ПЛИС

компоненты 1107

Таблица. 13. Форматы инструкций арифметического сравнения двух операндов для микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spaгtan-3, Viгtex-II, Viгtex-IIPRO и Viгtex-4

Поле кода операции Поле номера регистра Поле константы Мнемоника Выполняемая операция

0 0 0 0 K K K K K K K K COMPARE sN, kk Сравнение содержимого регистра sN и константы kk

Поле кода операции Поле номера первого регистра Поле номера второго регистра Нулевые разряды Мнемоника Выполняемая операция

0 0 0 m m m m 0 0 0 0 COMPARE sN,sM Сравнение содержимого регистра sM и содержимого регистра sN

17 16 15 14 13 12 11 10 0 Номер разряда микрокоманды

Содержимое Константа, указанная

Результат | гпмрд„р кк і регистра sN в команде

1 1 1 1 1 1 1 1 1 <' '-L | I I I I I I I — |к|к|к|к|к|к|к|к|

Содержимое Содержимое

Результат IrOMPARF cN яМ І регистра sN регистра вМ

1 1 1 1 1 1 1 1 1 <' — 1 I I I I I I 1-І І І І І І І І 1

Результат > 0 CARRY гг] * 0 ZERRO [Ш Результат Ф 0 Лґ 0

Flag [Ц ^ 1 Flag ■ ^ 1

Результат < 0 Результат = 0

Рис. 4. Осуществление операций арифметического сравнения двух операндов

Таблица. 14. Форматы команд логического (арифметического) и циклического сдвига данных микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spaгtan-3, Viгtex-II, Viгtex-IIPRO и Viгtex-4

Поле кода операции Поле номера регистра Поле направления сдвига Поле типа сдвига Мнемоника Выполняемая операция

0 0 0 0 0 0 0 0 0 0 SR0 sN Логический сдвиг содержимого регистра sN вправо на один разряд с записью 0

0 0 0 0 0 0 0 0 0 SR1 sN Логический сдвиг содержимого регистра sN вправо на один разряд с записью 1

0 0 0 0 0 0 0 0 0 0 0 SRX sN Логический сдвиг содержимого регистра sN вправо с сохранением последнего разряда

0 0 0 0 0 0 0 0 0 0 0 0 SRA sN Циклический сдвиг содержимого регистра sN вправо через разряд переноса/заема

0 0 0 0 0 0 0 0 0 0 0 RR sN Циклический сдвиг содержимого регистра sN вправо без участия бита переноса

0 0 0 0 0 0 0 0 0 0 0 SL0 sN Логический сдвиг содержимого регистра sN влево на один разряд с записью 0

0 0 0 0 0 0 0 0 0 0 SL1 sN Логический сдвиг содержимого регистра sN влево на один разряд с записью 1

0 0 0 0 0 0 0 0 0 0 0 0 SLX sN Логический сдвиг содержимого регистра sN влево с сохранением последнего разряда

0 0 0 0 0 0 0 0 0 0 0 0 0 SLA sN Циклический сдвиг содержимого регистра sN влево через разряд переноса/заема

0 0 0 0 0 0 0 0 0 0 0 0 RL sN Циклический сдвиг содержимого регистра sN влево без участия бита переноса

16 15 14 13 12 11 10 0 Номер разряда микрокоманды

Таблица. 15. Форматы команд ввода-вывода микропроцессорного ядра PicoBlaze, предназначенного для реализации на основе ПЛИС семейств Spaгtan-3, Viгtex-II, Viгtex-IIPRO и Viгtex-4

Поле кода операции Поле номера регистра Поле адреса порта ввода/вывода Мнемоника Выполняемая операция

0 0 0 0 0 K K K K K K K K INPUT sN, kk Чтение данных из порта ввода/вывода с адресом kk в регистр sN

0 0 0 K K K K K K K K OUTPUT sN, kk Запись данных из регистра sN в порт ввода/вывода с адресом kk

Поле кода операции Поле номера первого регистра Поле номера второго регистра Нулевые разряды Мнемоника Выполняемая операция

0 0 0 0 m m m m 0 0 0 0 INPUT sN,(sM) Чтение данных из порта ввода/вывода с адресом, определяемым регистром sM, в регистр sN

0 0 m m m m 0 0 0 0 OUTPUT sN,(sM) Запись данных из регистра sN в порт с адресом, определяемым регистром sM

17 16 15 14 13 12 11 10 0 Номер разряда микрокоманды

ния первого параметра команды. В качестве второго операнда выступает либо константа kk, значение которой указывается непосредственно в коде команды, либо содержимое другого регистра общего назначения с номером M, который задается в виде значения второго параметра команды. В таблице 13 показаны форматы двух вариантов команды сравнения COMPARE.

Исполнение команды COMPARE аналогично выполнению операции вычитания без уче-

та заема, но полученный при этом результат не сохраняется. Информация о соотношении операндов отражается в состоянии флагов. Если значения операндов равны, то все разряды результирующего слова принимают значение логического нуля, и флаг нулевого результата ZERO Flag устанавливается в состояние, соответствующее логической единице. В остальных случаях флаг нулевого результата ZERO Flag находится в сброшенном состоянии. В том случае, если значение второго опе-

ранда больше значения первого операнда, то флаг CARRY Flag устанавливается в состояние, соответствующее логической единице. При другом соотношении операндов флаг CARRY Flag остается в сброшенном состоянии. Рис. 4 поясняет выполнение команд арифметического сравнения двух операндов.

Команды сдвига данных микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4

В формате команд, предназначенных для выполнения операций сдвига данных, произошли те же изменения, что и в формате логических инструкций — длина поля кода операции увеличилась на два бита и составляет шесть двоичных разрядов, а также поменялось значение кода операции. Мнемоническая форма записи команд сдвига осталась прежней. Новые форматы инструкций логического (арифметического) и циклического сдвига данных, находящихся в регистре общего назначения с указанным номером, представлены в таблице 14.

Команды ввода-вывода микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4

Формат инструкций ввода-вывода, предназначенных для чтения данных из входного порта в заданный регистр общего назначения и передачи информации из указанного регистра в выходной порт, отличается от структуры аналогичных команд базового варианта ядра PicoBlaze длиной поля кода операции [2]. В командах ввода-вывода новой версии ядра длина поля кода операции составляет шесть двоичных разрядов. Кроме того, в инструкциях ввода-вывода поменялось значение кода операции. Мнемоническая форма записи этих инструкций сохранилась без изменений. Новые варианты форматов команд ввода-вывода с различными видами адресации приведены в таблице 15.

Команды обслуживания прерываний микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4

В инструкциях, относящихся к группе команд обслуживания прерываний, изменилась длина поля кода операции и поля режима обработки прерываний. Длина каждого из этих полей команды в новой версии составляет девять разрядов. Кроме того, изменились зна-

1Q8

компоненты

Таблица. 16. Форматы команд обслуживания прерываний микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4

Поле кода операции Поле режима обработки прерываний Мнемоника Выполняемая операция

0 0 0 0 0 0 0 0 0 0 0 0 0 0 RETURNI ENABLE Возврат из процедуры обработки и установка режима запрета прерывания

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RETURNI DISABLE Возврат из процедуры обработки и установка режима разрешения прерывания

0 0 0 0 0 0 0 0 0 0 0 0 0 ENABLE INTERRUPT Установка режима разрешения прерывания

0 0 0 0 0 0 0 0 0 0 0 0 0 0 DISABLE INTERRUPT Установка режима запрета прерывания

17 16 15 14 13 12 11 10 0 Номер разряда микрокоманды

Таблица 17. Форматы команд чтения и записи данных в сверхоперативное запоминающее устройство микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4

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

Поле кода операции Поле номера регистра Поле адреса ячейки Мнемоника Выполняемая операция

0 0 0 0 K K K K K K STORE sN, kk Запись данных из регистра sN в ячейку СОЗУ с адресом kk

0 0 0 0 K K K K K K K K FETCH sN, kk Чтение данных из ячейки СОЗУ с адресом kk в регистр sN

Поле кода операции Поле номера первого регистра Поле номера второго регистра Нулевые разряды Мнемоника Выполняемая операция

0 m m m m 0 0 0 0 STORE sN,(sM) Запись данных из регистра sN в ячейку СОЗУ с адресом, определяемым регистром sM

0 0 0 m m m m 0 0 0 0 FETCH sN,(sM) Чтение данных из ячейки СОЗУ с адресом, определяемым регистром sM, в регистр sN

17 16 15 14 13 12 11 10 0 Номер разряда микрокоманды

чения кодов операций обработки прерываний. При этом мнемоническая форма записи инструкций, используемых для обработки прерываний, осталась без изменений.

Форматы команд возврата из процедуры обслуживания прерываний RETURNI и установки режима обслуживания прерываний в программе ENABLE INTERRUPT и DISABLE INTERRUPT для микропроцессорного ядра PicoBlaze, реализуемого на базе кристаллов семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4, представлены в таблице 16.

Команды чтения и записи данных в сверхоперативное запоминающее устройство микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4

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

ния с указанным номером. Форматы команд чтения и записи данных в сверхоперативное запоминающее устройство микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4, приведены в таблице 17.

Команда FETCH sN, kk выполняет операцию чтения данных из ячейки СОЗУ с адресом kk в регистр общего назначения с номером sN. Чтение данных из ячейки СОЗУ, адрес которой указывает содержимое регистра sM, осуществляется с помощью инструкции FETCH sN,(sM).

Передача содержимого регистра общего назначения с номером sN в ячейку СОЗУ с адресом kk осуществляется с помощью команды STORE sN, kk. Для записи данных из регистра sN в ячейку СОЗУ, адрес которой определяется содержимым регистра sM, предназначена команда STORE sN,(sM). Рис. 5 демонстрирует процесс выполнения операций чтения и записи данных в сверхоперативное запоминающее устройство при различных видах адресации.

Ассемблер микропроцессорного ядра PicoBlaze, предназначенного для использования в кристаллах семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4

Новый вариант микропроцессорного ядра PicoBlaze, предназначенный для применения в кристаллах семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4, поддерживается соответствующей версией ассемблера, которая включена в состав архива файлов, предоставляемого пользователю. Новая версия ассемблера реализована в виде программы Kcpsm3.exe, которая формирует файлы описания содержимого программной памяти в различных форматах. Данная программа, в отличие от ассемблера Kcpsm2.exe [5], поддерживает все новые инструкции микропроцессорного ядра PicoBlaze, реализуемого на базе ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4, а также учитывает изменения в формате команд и параметры блочного ОЗУ используемых кристаллов.

Сверхоперативная память ЗР Константа, указанная в команде

Pei иирыЫ 1 fetch sN,kk|

1

дд ячейки ЗР Регистр эМ

Сверхоперативная память

Регистр sN 1 FETCH sN,(sM)|

^ Адрес 1

00 ЗР Константа, указанная в команде

Сверхоперативная память

Pei HcipsN FETCH sN.kk

Адрес |п|п|к|к|к|к|к|к|

00 ячейки ЗР Регистр эМ

Сверхоперативная память

Регистр sN I FETCH sN.(sM)|

Адрес |

00

Рис. 5. Выполнение инструкций чтения и записи данных в сверхоперативное запоминающее устройство при различных видах адресации

ПЛИС

компоненты 1109

<filename>.psm} Исходный текст программы

Шаблоны описания содержимого программной памяти

ROM_form.vhd --------►

ROM_form. v ---------►

ROM form, сое -------►

Описания содержимого программной памяти, используемые средствами проектирования ХНтх

Описания содержимого программной памяти, в шестнадцатеричном и десятичном форматах

<filename>.vhd

<filename>.v

<filename>.coe

<filename>.m

<filename>.hex

<filename>.dec

pass1.dat

pass2.dat

pass3.dat

pass4.dat

pass5.dat

Промежуточные

результаты

трансляции

<filename>.log

constant.txt

labels.txt

Отчеты

ассемблера

<filename>.fmt} Форматированный текст программы

Рис. 6. Файлы, формируемые ассемблером микропроцессорного ядра PicoBlaze, предназначенного для реализации на основе ПЛИС семейств Spaгtan-3, Viгtex-II, Viгtex-IIPRO и Viгtex-4

Трансляция исходного текста программ для микропроцессорного ядра PicoBlaze, встраиваемого в проекты, реализуемые на базе ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4, осуществляется с помощью командной строки, формат которой имеет следующий вид:

Kcpsm3.exe <идентификатор_файла_с_исходным_текстом_про-граммы_на_языке_ассемблера>[.р$т]

В приведенной выше командной строке квадратные скобки служат для обозначения необязательного параметра. Таким образом, используемое по умолчанию расширение файла, содержащего исходный текст программы, psm можно не указывать.

На рис. 6 в наглядном виде представлена информация об исходных файлах, используемых при трансляции программ микропроцессорного ядра PicoBlaze, предназначенного для реализации в кристаллах семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4, и выходных файлах, формируемых ассемблером KCPSM3.

Для выполнения трансляции разработанной программы кроме основного файла, содержащего исходный текст этой программы на языке ассемблера, необходимы файлы шаблонов ROM_form.vhd, ROM_form.v и ROM_form.coe. Файлы ROM_form.vhd и ROM_form.v представляют собой шаблоны описания содержимого ППЗУ программ на языках высокого уровня VHDL и Verilog соответственно. В файле ROM_form.coe содержится шаблон описания содержимого ППЗУ микропрограмм в формате, воспринимаемом генератором ядер Xilinx CORE Generator.

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

Все файлы, генерируемые новой версией ассемблера, можно условно разбить на пять групп. Первую группу составляют файлы, в которые записывается содержимое программной памяти в форматах, воспринимаемых средствами проектирования фирмы Xilinx серии ISE. В эту группу входят файлы описания содержимого программной памяти на языках VHDL и Verilog, а также в формате, воспринимаемом генератором ядер Xilinx CORE Generator, которые имеют расширение vhd, v и coe соответственно. VHDL-и Verilog-описания содержимого ППЗУ программ используются на этапах синтеза и моделирования проектируемой системы. Ко второй группе относятся файлы, описывающие содержимое ППЗУ микропрограмм в форматах, используемых утилитами, не входящими в состав САПР серии ISE. В эту группу входят файлы, содержащие результаты трансляции в виде кодов в шестнадцатеричном и десятичном представлении, которые имеют расширение hex и dec соответственно. Третью группу образуют файлы отчетов о ходе и результатах выполнения процесса трансляции. Файл с расширением log содержит детальную информацию о трансляции каждой строки ассемблерной программы. В файле constant.txt перечисляются все константы, используемые в программе, с указанием их значений. Файл labels.txt содержит информацию о метках, которые содержатся в программе, и адресах программной памяти, которые им соответствуют. В четвертую группу входит единственный файл, имеющий расширение fmt, в котором записан отформатированный вариант исходного текста программы на языке ассемблера. К пятой группе относятся файлы pass1.dat-pass5.dat, содержащие промежуточные результаты, полученные на различных фазах процесса трансляции. Информация, которая содержится в этих файлах, может использоваться в процессе отладки транслируемой программы.

При переходе от одной из прежних версий микропроцессорного ядра РкоВ1аге к новому варианту, рассматриваемому в настоящей статье, следует обратить внимание на то, что разработанное ранее программное обеспечение не может использоваться непосредственно в новой версии ядра. Для переноса этих программ необходимо привести их исходные тексты в соответствие с форматами команд, поддерживаемыми ассемблером KCPSM3. Особое внимание нужно обратить на формат представления адресов переходов и подпрограмм, а также номеров регистров общего назначения. При этом нужно учитывать возможные различия в объеме программной памяти и блока регистров общего назначения в используемой ранее и новой версии микропроцессорного ядра РкоВ1аге. Кроме того, различная глубина стека в этих версиях накладывает ограничения на количество вложенных вызовов подпрограмм. После корректировки исходных текстов программ следует выполнить их трансляцию с помощью новой версии ассемблера KCPSM3.

Загрузчик программ для микропроцессорного ядра РкоВ^е, реализуемого на основе ПЛИС семейств Браггап-З, Укгех-П, УИех-ПРРО и У1ггех-4

Заметным недостатком рассмотренных ранее микропроцессорных ядер семейства РкоВ1аге [1-5] является необходимость повторного выполнения этапов синтеза и реализации аппаратной части разрабатываемой системы при внесении каких-либо изменений в программное обеспечение. Нарис. 7 показан типовой маршрут проектирования встраиваемых микропроцессорных систем на основе восьмиразрядного ядра РкоВ1аге. Он включает в себя следующие этапы [6]:

• формирование проекта и HDL-описания разрабатываемой микропроцессорной системы;

• подготовка исходного текста программы на языке ассемблера для проектируемой микропроцессорной системы;

• трансляция разработанной программы с помощью ассемблера;

• синтез разрабатываемой микропроцессорной системы;

• размещение и трассировка разрабатываемой микропроцессорной системы в кристалле;

• формирование конфигурационной последовательности проектируемой микропроцессорной системы;

• загрузка конфигурационной последовательности встраиваемой микропроцессорной системы в кристалл ПЛИС.

Для новой версии ядра, реализуемого на основе кристаллов семейств Spartan-3, Уи!ехТ1, Уи^ех-ПРИО и Уи1ех-4, в архив файлов, пре-

&

110

компоненты

Шаблоны описания содержимого программной памяти

Создание проекта и исходного описания разрабатываемой микропроцессорной системы

Исходный текст программы <Н1епате.р5т>

ROM_form.vhd Assembler <filename.vhd>

ROM form.v <filename.v> )

Трансляция программы

Синтез разрабатываемой микропроцессорной системы

Размещение и трассировка разрабатываемой микропроцессорной системы в кристалле ПЛИС

Формирование конфигурационной последовательной разрабатываемой микропроцессорной системы

Загрузка конфигурационной последовательности микропроцессорной системы в кристалле ПЛИС

Xilinx ISE

Project

Navigator

<des¡gn.vhd>

Synthesis

PAR

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

¡MPACT

JTAG

ПЛИС

Рис. 7. Типовая последовательность этапов проектирования встраиваемых микропроцессорных систем на основе ядра PicoBlaze, реализуемых в ПЛИС FPGA семейств Spaгtan-3, Viгtex-II, Viгtex-IIPRO и Viгtex-4

Мод шао,

содержимого программной памяти

одернизированные иаблоны описания

ROM_form.vhd ROM form.v

<new_prog.psm>

Создание проекта и исходного описания разрабатываемой микропроцессорной системы

Исходный текст программы <f¡lename.psm>

-i- .

<f i leñame. vhd>

Assembler

<filename.v>

jtag_ loader, bat , r

hex2svfsetup

Assembler

<new_prog.hex>

hex2svf <new_prog.hex> <new_prog.svf>

Трансляция программы

Синтез разрабатываемой микропроцессорной системы

Размещение и трассировка разрабатываемой микропроцессорной системы в кристалле ПЛИС

Формирование конфигурационной последовательной разрабатываемой микропроцессорной системы

Загрузка конфигурационной последовательности микропроцессорной

svf2xsvf -d -i <new_prog.svf> -o <new_prog.xsvf> системы в кристалле і mini. ПЛИС

І playxsvf <new_prog.xsvf>

Xilinx ISE

Project

Navigator

HDL-Editor

т

<design.vhd>

Synthesis

PAR

¡MPACT

JTAG

Рис. 8. Маршрут проектирования встраиваемых микропроцессорных систем на основе ядра PicoBlaze, реализуемых в ПЛИС FPGA семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4, с использованием загрузчика программ JTAG Program Loader

доставляемых пользователю, включен загрузчик программного кода через порт JTAG-интерфейса применяемой ПЛИС. При использовании загрузчика JTAG Program Loader маршрут проектирования встраиваемых микропроцессорных систем на основе ядра PicoBlaze приобретает вид, показанный на рис. 8. Типовая ветвь этого маршрута, включающая этапы синтеза, реализации и формирования конфигурационной последовательности, выполняется только один раз.

В случае модификации микропроцессорной программы достаточно выполнить трансляцию исходного текста этой программы и воспользоваться загрузчиком JTAG Program Loader. Запись кода новой микропроцессорной программы непосредственно в программную память ядра PicoBlaze осуществляется через порт JTAG-интерфейса с помощью стандартного загрузочного кабеля фирмы Xilinx, предназначенного для конфигурирования ПЛИС.

Загрузчик программ JTAG Program Loader выполнен в виде командного файла jtag_loader.bat и комплекта утилит преобразования формата и управления конфигурированием ПЛИС. Этот командный файл содержит набор директив, посредством которых осуществляется последовательный вызов утилит преобразования формата микропроцессорных программ и управления процессом их загрузки в ПЛИС. Исходным модулем для загрузчика является файл, содержащий результаты трансляции исходного текста программы в виде кодов в шестнадцатеричном представлении. Этот файл формируется ассемблером KCPSM3.

Для использования загрузчика программ JTAG Program Loader в структуру микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4, были внесены следующие изменения. Программная память реализуется в виде двухпортового оперативного запоминающего устройства. Один из портов программной памяти сопряжен непосредственно с контроллером JTAG-интерфейса. Поэтому новая программа может быть записана в ППЗУ программ через порт JTAG-интерфейса ПЛИС. Кроме того, в блоке программной памяти дополнительно формируется сигнал сброса, который используется для инициализации модуля исполнительного устройства микропроцессорного ядра PicoBlaze. Такая модернизация модуля программной памяти обусловлена тем, что сразу же после загрузки новой программы исполнительное устройство должно быть переведено в исходное (начальное состояние). С учетом этих изменений необходимо в выражениях декларации и создания экземпляра компонента программной памяти добавить описание порта, соответствующего выходу сигнала сброса. При формировании структурного описания микропроцессорного ядра необходимо подключить выход сигнала сброса программной памяти prog_rom ко входу сброса исполнительного устройства kcpsm3.

Модернизированная структура микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4 с поддержкой загрузки программного кода через порт JTAG-интерфейса, изображена на рис. 9.

В процессе трансляции программ, которые должны записываться в программную память микропроцессорного ядра PicoBlaze через порт JTAG-интерфейса ПЛИС с помощью загрузчика JTAG Program Loader, необходимо использовать модифицированные варианты шаблонов описания содержимого ППЗУ вместо файлов ROM_form.vhd и ROM_form.v. Эти варианты соответствуют ППЗУ программ, реализуемому в виде двухпортовой памяти. Модифицированные варианты шаблонов поставляются вместе с загрузчиком в форме файлов JTAG_Loader_ROM_form.vhd и JTAG_Loader_ROM_form.v соответственно.

Порт

JTAG

Модуль ЦПУ (исполнительный модуль) PicoBlaze KCPSM3

Память программ

TDI

TDO->

TMS-)

тсю

BSCAN

Interface

DAT

WE

ADDR

INSTRUCTION[17:0]

ADDRESS[9:0]

>CLK

Входные g данные -Да Прерывание —

Тактовый

сигнал

Шина команд

IN_PORT[7:0] OUT PORT[7:0]

INTERRUPT PORT_ID[7:0]

RESET READ_STROBE

> CLK WRITE_STROBE INTERRUPT ACK

INSTRUCTION^ 7:0] ADDRESS[9:Q]

10,

Входные *—► данные , . Адрес порта ввода/вы вода —> Строб чтения —> Строб записи —> Подтверждение прерывания Шина адреса

Рис. 9. Модернизированная структура микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4 с поддержкой загрузки программ через порт JTAG-интерфейса

Заключение

Рассмотренная версия микропроцессорного ядра, предназначенная для реализации на основе ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4, как и другие представители семейства PicoBlaze, является свободно распространяемой (бесплатной). Для получения архива файлов, включающего исходные описания компонентов ядра, соответствующую версию ассемблера и загрузчик программ JTAG Program Loader, следует обращаться в центр поддержки и продаж InlineGROUP (www.plis.ru) — официальному дистрибьютору фирмы Xilinx в России,

Беларуси и Украине. Практическое освоение методов проектирования встраиваемых микропроцессорных систем, выполняемых на основе рассмотренного варианта ядра PicoBlaze, целесообразно осуществлять с помощью отладочной платы из инструментального комплекта Spartan-3 Starter Kit. Этот комплект отличается невысокой стоимостью и включает в себя помимо отладочной платы загрузочный кабель, который может применяться в дальнейшем для конфигурирования ПЛИС различных семейств, выпускаемых фирмой Xilinx, и средства проектирования WebPack ISE и Foundation ISE (ознакомительную версию). ■

Литература

1. Зотов В. РкоВ1аге — семейство восьмиразрядных микропроцессорных ядер, реализуемых на основе ПЛИС фирмы ХШпх // Компоненты и технологии, № 4, 2003.

2. Зотов В. Система команд микропроцессорного ядра РкоВ1аге, реализуемого на основе ПЛИС семейств Spartan-II, Spartan-IIE, Уй*ех, У1Яех-Е // Компоненты и технологии, № 5, 2003.

3. Зотов В. Особенности микропроцессорного ядра РкоВ1аге, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейства У^ех-П // Компоненты и технологии, № 6, 2003.

4. Зотов В. Особенности микропроцессорного ядра РкоВ1аге, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейства СооШ.иппег-П // Компоненты и технологии, № 7, 2003.

5. Зотов В. Разработка программ на языке ассемблера для семейства микропроцессорных ядер РкоВ1аге // Компоненты и технологии, № 8, 2003.

6. Зотов В. Ю. Проектирование цифровых устройств на основе ПЛИС фирмы ХШпх в САПР ШеЬРаск КЕ. М.: Горячая линия — Телеком, 2003.

7. Кузелин М. О., Кнышев Д. А., Зотов В. Ю. Современные семейства ПЛИС фирмы ХШпх. Справочное пособие. М.: Горячая линия — Телеком, 2004.

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