Пример сквозного проектирования встраиваемой восьмиразрядной микропроцессорной системы на базе ядра семейства PicoBlaze, реализуемой на основе ПЛИС фирмы Xilinx. Часть 1
Статья завершает цикл материалов, знакомящих с интегрированной средой разработки и отладки программного обеспечения восьмиразрядных микропроцессорных систем, выполняемых на основе конфигурируемых ядер семейства PicoBlaze [1–7] фирмы Xilinx, pBlaze IDE (Integrated Development Environment) [8–11]. В публикации на конкретном примере показан процесс сквозного проектирования встраиваемой микропроцессорной системы. Данный пример наглядно демонстрирует разработку и отладку программной части в среде pBlaze IDE, а также проектирование аппаратной платформы с помощью САПР серии Xilinx ISE (Integrated Software Environment), включая реализацию и загрузку проекта в кристалл.
Все статьи цикла:
- Пример сквозного проектирования встраиваемой восьмиразрядной микропроцессорной системы на базе ядра семейства PicoBlaze, реализуемой на основе ПЛИС фирмы Xilinx. Часть 1
- Пример сквозного проектирования встраиваемой восьмиразрядной микропроцессорной системы на базе ядра семейства PicoBlaze, реализуемой на основе плис фирмы Xilinx. Часть 2
- Пример сквозного проектирования встраиваемой восьмиразрядной микропроцессорной системы на базе ядра семейства PicoBlaze, реализуемой на основе ПЛИС фирмы Xilinx. Часть 3
Архитектура простейшего контроллера сбора и обработки данных, проектируемого на основе микропроцессорного ядра PicoBlaze и реализуемого в ПЛИС семейства Spartan-3
В качестве примера, иллюстрирующего процесс разработки встраиваемых микропроцессорных систем на основе ядер семейства PicoBlaze, рассмотрим проектирование простейшего двухканального контроллера сбора и обработки данных, который должен выполнять следующие функции:
- прием данных, поступающих от двух восьмиразрядных источников (датчиков);
- запись принимаемых данных в сверхоперативное запоминающее устройство (СОЗУ);
- сравнение полученных данных с предельно допустимыми значениями соответствующих параметров и формирование необходимых управляющих сигналов при выходе за границы установленного диапазона;
- отображение информации о выходе принятых данных за пределы зафиксированного диапазона значений для каждого анализируемого параметра;
- передача данных, содержащихся в СОЗУ, по сигналу запроса прерывания через выходной порт во внешний (главный) компьютер.
Такой контроллер может применяться в системах сбора данных различного назначения, мониторинга параметров окружающей среды и технологических процессов, автоматизированного управления, безопасности и т. п. Количество каналов принимаемых данных (и, следовательно, контролируемых параметров) при необходимости может быть увеличено в соответствии с требованиями проекта. Максимальное число таких каналов ограничивается, прежде всего, физическими ресурсами кристалла, используемого для реализации контроллера, и емкостью СОЗУ микропроцессорного ядра. Структурное представление архитектуры разрабатываемой микропроцессорной системы показано на рис. 1. В состав проектируемого контроллера кроме микропроцессорного ядра семейства PicoBlaze входят два входных и четыре выходных параллельных порта ввода/вывода. Входной порт с адресом ADDR_INPORT1 предназначен для считывания информационных данных, поступающих от первого источника (датчика), а порт с адресом ADDR_INPORT2 — от второго. Выходные порты с адресами ADDR_CTRLPORT1 и ADDR_CTRLPORT2 используются для вывода управляющих кодов. К выходному порту с адресом ADDR_ALARM_PORT подключаются светодиодные индикаторы, с помощью которых отображается используемая для визуального контроля информация о выходе полученных данных за пределы допустимого диапазона значений для каждого параметра. Выходной порт с адресом ADDR_EXTPORT предназначен для вывода данных, поочередно считанных из СОЗУ, во внешний (главный) компьютер. Описания компонентов, представляющих параллельные порты ввода и вывода, на языке VHDL (VHSIC Hardware Description Language) будут сформированы в процессе разработки контроллера.
Для реализации контроллера выберем ПЛИС семейства Spartan-3, сочетающие широкие функциональные возможности с невысокой стоимостью. В качестве аппаратного тестового модуля, предназначенного для проверки функционирования разработанного контроллера, воспользуемся отладочной платой из инструментального комплекта Spartan-3 Starter Kit. Подробное описание возможностей комплекта и структуры инструментального модуля приводится в [12]. Кроме того, проектируемый контроллер может быть реализован практически без внесения каких-либо изменений на базе кристаллов более перспективного семейства Spartan-3E, которое в настоящее время уже доступно разработчикам. В ближайшее время ожидается соответствующий инструментальный комплект, включающий отладочную плату, выполненную на основе ПЛИС семейства Spartan-3E.
Создание рабочего каталога для проекта простейшего контроллера сбора и обработки данных, разрабатываемого на основе микропроцессорного ядра PicoBlaze и реализуемого в ПЛИС семейства Spartan-3
Прежде чем приступить к подготовке проекта контроллера, на одном из дисков компьютера создадим с помощью Проводника операционной системой Windows XP/2000 (или управляющей оболочки Total Commander) раздел, предназначенный для хранения всех разрабатываемых проектов, например раздел C:Project. В нем сформируем новую папку с названием sampled_data_controller, которая будет использоваться в качестве рабочего каталога проекта разрабатываемого контроллера. В эту папку скопируем из архива Kcpsm3.zip файлы исходного описания компонентов микропроцессорного ядра PicoBlaze, реализуемого в ПЛИС семейства Spartan-3, Kcpsm3.vhd и embedded_kcpsm3.vhd, а также шаблоны описания программной памяти ROM_form.vhd, ROM_form.v, ROM_form.coe и соответствующую версию ассемблера Kcpsm3.exe. Если для интегрированной среды разработки и отладки микропроцессорных программ pBlaze IDE не был создан ярлык на Рабочем столе компьютера, то целесообразно в сформированный рабочий каталог проекта C:Projectsampled_data_controller поместить копию приложения pBlazIDE.exe. Такое решение обеспечивает быстрый запуск интегрированной среды непосредственно из рабочего каталога проекта, минуя процедуру поиска и открытия папки, в которой находится файл pBlazIDE.exe. После завершения копирования в рабочий каталог проекта всех перечисленных выше файлов приступаем к подготовке управляющей микропроцессорной программы, предназначенной для создаваемого контроллера, с помощью интегрированной среды разработки и отладки программного обеспечения pBlaze IDE.
Разработка программного обеспечения для простейшего контроллера сбора и обработки данных, проектируемого на основе микропроцессорного ядра PicoBlaze и реализуемого в ПЛИС семейства Spartan-3
Для открытия основного окна интегрированной среды разработки и отладки программного обеспечения pBlaze IDE переходим в рабочий каталог проекта C:Projectsampled_data_controller, используя Проводник или управляющую оболочку (файловый менеджер) Total Commander (Windows Commander), и активизируем приложение pBlazIDE.exe. Сразу же указываем тип микропроцессорного ядра семейства PicoBlaze, для которого будет создаваться программное обеспечение. Для этого выбираем команду Settings из главного меню основного окна интегрированной среды pBlaze IDE, после чего в появившемся всплывающем меню выделяем строку Picoblaze 3, соответствующую версии микропроцессорного ядра, предназначенной для реализации в ПЛИС семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4 [1, 6]. Затем открываем новое рабочее окно встроенного текстового редактора интегрированной среды pBlaze IDE, нажав кнопку быстрого доступа
, расположенную на оперативной панели управления, или выбрав команду New из всплывающего меню File. Для определения имени создаваемого файла, в который будет записан исходный текст микропроцессорной программы, выполняем команду сохранения содержимого окна на диске Save (Save As) из всплывающего меню File или нажимаем кнопку быстрого доступа
(
). В открывшейся стандартной диалоговой панели в качестве идентификатора создаваемого файла следует ввести строку prog_rom.psm. Использование данного названия для разрабатываемой микропрограммы позволяет избежать переименования компонента программной памяти в описании проектируемой системы на языке VHDL. При этом следует обратить внимание на то, чтобы создаваемый файл был помещен в каталог C:Projectsampled_data_controller. После того как файл успешно сохранен на диске, на вкладке открытого нового окна редактирования автоматически отображается идентификатор prog_rom. Далее в данном окне редактирования с помощью клавиатуры набираем исходный текст микропроцессорной программы на языке ассемблера, который выглядит следующим образом.
В структуре приведенной микропроцессорной программы можно условно выделить три части. В первой части представлены директивы интегрированной среды pBlaze IDE, используемые для определения констант, адресов ввода/вывода, переименования регистров общего назначения и декларации портов ввода/вывода. Вторая часть содержит текст основной микропрограммы на языке ассемблера. В третьей части приведен исходный текст подпрограммы обработки прерывания. Рассмотрим более подробно содержание всех частей представленной выше микропроцессорной программы.
В начале программы с помощью директивы EQU интегрированной среды pBlaze IDE [10] определяются мнемонические обозначения адресов используемых портов ввода/вывода и их числовые значения. В качестве мнемонических обозначений указываются идентификаторы, которые были использованы при описании архитектуры проектируемого контроллера.
Затем, применяя эту же директиву, задаем значения констант, которые применяются в микропроцессорной программе в качестве параметров инструкций. Значения констант min_value_1 и min_value_2 представляют нижние границы допустимого диапазона значений данных, считываемых из первого и второго входного порта соответственно. Значения констант max_value_1 и max_value_2 определяют верхние границы предельно допустимого диапазона входных данных. Константы corr_data_min1, corr_data_max1, corr_data_min2, corr_data_max2 используются при вычислении управляющих кодов, вырабатываемых при выходе принимаемых данных за пределы установленных диапазонов. Значение константы delay устанавливает минимальную величину временного интервала, через который выполняется циклическое чтение данных из входных портов ввода/вывода.
Далее следуют директивы EQU, с помощью которых вводятся мнемонические названия регистров общего назначения, задействованных в разрабатываемой микропроцессорной программе. В регистр inform_data записываются данные, которые считываются из входных портов ввода/вывода. Регистр diff_data используется для вычисления разности между текущим значением входных данных и предельно допустимыми значениями, установленными для соответствующего параметра. Регистр addr_pointer исполняет в основной микропроцессорной программе роль указателя текущего адреса ячейки сверхоперативной памяти, по которому производится обращение к СОЗУ. Регистр cur_addr_pointer предназначен для выполнения аналогичной функции в подпрограмме обработки прерывания. Буферный регистр buff_reg применяется для чтения данных из СОЗУ и последующей их записи в выходной порт ввода/вывода EXT_PORT. Регистр count_reg выполняет функцию счетчика времени задержки. В регистр led_reg записываются значения флагов, которые переключаются в установленное состояние (высокого логического уровня) при выходе текущих данных, считанных из входных портов ввода/вывода, за границы предельно допустимого диапазона. Эти флаги записываются в четыре младших разряда регистра led_reg. В третий разряд данного регистра записывается значение логической единицы, если значение входных данных из первого порта ввода/вывода оказывается меньше нижней границы предельно допустимого диапазона, зафиксированного для соответствующего параметра. В противном случае данный бит принимает нулевое значение. В том случае, когда текущее значение входных данных из первого порта ввода/вывода превышает верхнюю границу установленного диапазона, значение логической единицы заносится во второй разряд регистра led_reg. В первый и нулевой разряды регистра записываются значения аналогичных флагов для данных, считываемых из второго порта ввода/вывода.
В последней группе директив EQU приведены выражения декларации всех портов ввода/вывода, которые используются в разработанной микропрограмме. Идентификаторы IN_DATA_PORT1 и IN_DATA_PORT2 представляют входные порты с адресами ADDR_INPORT1 и ADDR_INPORT2 соответственно, из которых выполняется чтение данных. Для выходных портов с адресами ADDR_CTRLPORT1 и ADDR_CTRLPORT2, предназначенных для вывода управляющих кодов первого и второго каналов, указаны идентификаторы CTRL_PORT1 и CTRL_PORT2 соответственно. Выходному порту с адресом ADDR_ALARM_PORT, к которому подключаются светодиодные индикаторы, присвоен идентификатор ALARM_PORT. Выходной порт с адресом ADDR_EXTPORT, используемый для передачи информации из СОЗУ во внешний (главный) компьютер, объявлен как EXT_PORT.
После директив среды pBlaze IDE следует исходный текст основной микропроцессорной программы, содержащей последовательность команд ассемблера, образующих бесконечный цикл операций. В этом цикле выполняется чтение текущих значений входных данных из портов ввода/вывода, сравнение их с граничными значениями предельно допустимого диапазона, формирование управляющих сигналов и вывод соответствующей информации в выходные порты индикации и управления.
Вслед за исходным текстом основной микропроцессорной программы расположен текст подпрограммы обработки прерывания. Директива интегрированной среды pBlaze IDE ORG $1A5, предписывает транслировать код процедуры обработки прерывания начиная с адреса 1A5. Подпрограмма обработки прерывания выполняет поочередное чтение данных из ячеек СОЗУ и передачу их в выходной порт EXT_PORT. Директива ORG $3FF указывает размещение при трансляции кода вектора прерывания по адресу 3FF. Необходимость этого обусловлена архитектурными особенностями микропроцессорных ядер PicoBlaze, предназначенных для реализации на основе кристаллов семейств Spartan-3, Virtex-II, Virtex-IIPRO и Virtex-4 [1, 6].
Завершает сформированный текст директива интегрированной среды pBlaze IDE, которая инициирует процесс автоматической генерации файла описания содержимого программной памяти на языке VHDL после трансляции исходного текста микропроцессорной программы на языке ассемблера. В качестве идентификатора файла шаблона описания содержимого ППЗУ микропрограмм на языке VHDL указано название файла ROM_form.vhd, который входит в состав архива модулей используемой версии микропроцессорного ядра PicoBlaze. Имя формируемого файла описания содержимого программной памяти, указанное в рассматриваемой директиве, совпадает с именем исходного файла, отличаясь расширением. В качестве идентификатора модуля программной памяти использовано имя компонента программной памяти в составе VHDL-описания объекта embedded_kcpsm3, включенного в состав архива файлов применяемой версии микропроцессорного ядра PicoBlaze.
После ввода представленного выше исходного текста микропроцессорной программы в окне редактирования нужно вновь сохранить его в файле prog_rom.psm, используя команду Save из всплывающего меню File или кнопку быстрого доступа
. Далее выполним проверку функционирования разработанного программного обеспечения, эмулируя работу проектируемой системы с помощью отладочных средств pBlaze IDE.
Отладка программного обеспечения для простейшего контроллера сбора и обработки данных, проектируемого на основе микропроцессорного ядра PicoBlaze и реализуемого в ПЛИС семейства Spartan-3
Для трансляции сформированного исходного текста микропроцессорной программы на языке ассемблера и генерации математической модели разрабатываемой системы воспользуемся командой Simulate, которая представлена в одноименном всплывающем меню Simulate, или кнопкой быстрого доступа
, расположенной на оперативной панели управления. Если приведенный выше текст микропрограммы был набран в окне редактора без ошибок, то процесс его трансляции должен завершиться успешно. При этом автоматически генерируется исполняемый код и математическая модель, включающая эмулятор микропроцессорного ядра, программной памяти и используемых портов ввода/вывода, а также файл описания содержимого программной памяти на языке VHDL. При обнаружении ошибок, допущенных в процессе набора текста в окне редактирования, во встроенном окне журнала регистрации сообщений (Log Pane) основного окна интегрированной среды pBlaze IDE будет выведена соответствующая информация с указанием кодового обозначения зафиксированной ошибки [10]. В этом случае нужно отредактировать соответствующую строку исходного текста и вновь повторить запуск процесса трансляции, выполнив операции, перечисленные выше.
В случае успешного завершения трансляции исходного текста микропроцессорной программы интегрированная среда pBlaze IDE автоматически переключается в режим отладки. Окно редактирования исходного текста сменяется окном отладчика, вид которого показан на рис. 2. При этом сформированная математическая модель проектируемой системы находится в начальном состоянии, которое характеризуется сбросом содержимого программного счетчика, флагов регистра состояния и регистров общего назначения. В этом состоянии указатель очередной исполняемой инструкции в окне отладчика расположен в строке исходного текста микропроцессорной программы, содержащей первую исполняемую команду ассемблера микропроцессорного ядра PicoBlaze (рис. 2).
С целью сокращения суммарного времени отладки будем проводить моделирование процесса выполнения разработанной микропрограммы в непрерывном режиме, установив предварительно точки останова (контрольные точки). Для того чтобы убедиться в правильности функционирования основной микропроцессорной программы и подпрограммы обработки прерывания, достаточно зафиксировать две точки останова. Первую контрольную точку целесообразно установить в строке исходного текста, которая содержит метку visual_ctrl. Для этого помещаем курсор на указанную строку исходного текста микропрограммы в окне отладки и выбираем команду Toggle из всплывающего меню Simulate или нажимаем кнопку быстрого доступа на оперативной панели управления основного окна интегрированной среды pBlaze IDE. Вторую точку останова устанавливаем в строке, которая включает метку out_mem. Прежде чем запустить сеанс моделирования, нужно определить начальное состояние входных портов ввода/вывода IN_DATA_PORT1 и IN_DATA_PORT2. Значения данных, которые поступают в указанные порты ввода/вывода, задаются в двоичном представлении с помощью линеек индикаторов состояния, расположенных в одноименных встроенных панелях в правой части окна отладки (рис. 2). Для определения значения каждого двоичного разряда байта входных данных помещаем курсор на поле соответствующего индикатора и щелчком левой кнопкой мыши выбираем требуемое состояние. Сброшенное состояние индикатора (маркер отсутствует) соответствует нулевому биту в соответствующем разряде байта данных, а установленное (отмеченное маркером) — единичному биту. Каждый щелчок кнопки мыши изменяет состояние индикатора на противоположное. При определении значения байта данных следует помнить, что старшим значащим разрядом является седьмой разряд. Установленное значение байта входных данных отображается в шестнадцатеричной форме справа от линейки индикаторов.
Далее активизируем процесс моделирования выполнения микропроцессорной программы в непрерывном режиме, выбрав команду Run из всплывающего меню Simulate или нажав кнопку быстрого доступа
, представленную на оперативной панели управления. После приостановления процесса выполнения микропрограммы в первой контрольной точке проводим проверку текущего содержимого выходных портов ввода/вывода CTRL_PORT1, CTRL_PORT2 и ALARM_PORT, регистров общего назначения и ячеек СОЗУ. Далее устанавливаем новые значения данных, поступающих во входные порты ввода/вывода IN_DATA_PORT1 и IN_DATA_PORT2. Затем возобновляем процесс моделирования, повторно воспользовавшись командой Run или кнопкой быстрого доступа
. Перечисленные операции повторяются для различных комбинаций значений входных данных. Чтобы проконтролировать выполнение всех ветвей разработанной микропроцессорной программы, для каждого входного порта ввода/вывода поочередно задаем значения входных данных, которые соответствуют предельно допустимому диапазону, выходят за нижнюю границу и превышают верхнюю границу этого диапазона. Причем во встроенной информационной панели, которая отображает значения данных, записываемых в выходной порт ALARM_PORT, должно соответствующим образом изменяться изображение светодиодных индикаторов, отражающих состояние младших четырех разрядов. Убедившись в том, что основная микропроцессорная программа функционирует в соответствие с требуемым алгоритмом, переходим к проверке подпрограммы обработки прерывания.
Чтобы смоделировать выполнение процедуры обслуживания прерывания, при очередной остановке в первой контрольной точке установим режим разрешения обработки прерываний. С этой целью переключаем индикатор Enable, который находится во встроенной панели Status (рис. 2), в активное состояние, отмеченное маркером. Для генерации запроса прерывания по фронту сигнала INTERRUPT нужно перевести индикатор Edge, расположенный во встроенной панели Interrupt (рис. 2), во включенное состояние. После этого при продолжении моделирования выполнения микропроцессорной программы с помощью команды Run или кнопки быстрого доступа
будет выполнен переход к процедуре обслуживания прерывания. Процесс моделирования подпрограммы обработки прерывания будет автоматически приостановлен при достижении второй контрольной точки. Для оценки корректности выполнения этой подпрограммы следует обратить внимание на состояние светодиодных индикаторов, расположенных во встроенной информационной панели EXT_PORT, которая отображает значения данных, записываемых в одноименный выходной порт. При повторных нажатиях кнопки быстрого доступа
или выполнении команды Run содержимое ячеек СОЗУ должно поочередно записываться в указанный выходной порт начиная с адреса последнего обращения. На этом завершается отладка микропроцессорной программы для проектируемого контроллера.
Трансляция исходного текста разработанного программного обеспечения для проектируемого контроллера с использованием ассемблера микропроцессорного ядра PicoBlaze
Прежде чем приступить к проектированию аппаратной части разрабатываемого контроллера, рассмотрим альтернативный способ трансляции сформированного исходного текста программного обеспечения с помощью штатного ассемблера микропроцессорного ядра PicoBlaze, который входит в состав архива файлов, предоставляемого пользователю [7]. При этом следует учесть, что ассемблер не поддерживает директивы интегрированной среды pBlaze IDE, десятичную форму представления значений числовых параметров инструкций, а также формат записи некоторых команд. Поэтому для приведения подготовленного текста микропроцессорной программы в соответствие с требованиями ассемблера необходимо внести в него следующие изменения:
- директивы декларации констант EQU интегрированной среды pBlaze IDE заменить директивами CONSTANT ассемблера микропроцессорного ядра;
- директивы EQU, используемые для переименования регистров общего назначения, поменять на директивы NAMEREG;
- исключить директивы декларации портов ввода/вывода DSIN и DSOUT;
- директивы явного указания адресов размещения команд в программной памяти ORG заменить директивами ADDRESS;
- все числовые параметры инструкций перевести из десятичной формы представления в шестнадцатеричную;
- изменить формат команд ввода/вывода, сравнения двух операндов, чтения и записи данных в СОЗУ;
- удалить директиву генерации файла описания содержимого программной памяти на языке VHDL.
В результате выполнения всех перечисленных изменений исходный текст микропроцессорной программы, записываемый в файл prog_rom.psm, преобразуется к следующему виду.
Для трансляции модифицированной микропроцессорной программы можно запустить сеанс DOS, перейти в созданный рабочий каталог C:Projectsampled_data_controller и воспользоваться следующей командной строкой.
Но удобнее активизировать процесс трансляции, используя команду Выполнить (Run) из меню, вызываемого кнопкой Пуск (Start) операционной системы Windows 2000/XP. В появившейся на экране диалоговой панели (рис. 3) с помощью кнопки Обзор активизируем стандартную панель открытия файла, воспользовавшись которой, переходим в созданный рабочий каталог проекта и выбираем исполняемый файл ассемблера Kcpsm3.exe. Затем переключаемся на строку Открыть в диалоговой панели Запуск программы (рис. 3) и дополняем командную строку названием исходного модуля микропроцессорной программы на языке ассемблера prog_rom.psm, используя клавиатуру.
Для исполнения набранной командной строки нажимаем кнопку ОК, расположенную в нижней части диалоговой панели Запуск программы. После этого автоматически открывается окно сеанса DOS, в котором отражается выполнение процесса трансляции. При успешном завершении процесса, в окне сеанса DOS появляется строка KCPSM3 successful, а в рабочем каталоге — сформированные файлы описания программной памяти в различных форматах, в том числе файл prog_rom.vhd. Содержимое этого файла должно быть тем же самым, что и при использовании транслятора интегрированной среды pBlaze IDE, если были выполнены все указанные изменения в исходном тексте разработанной микропроцессорной программы.
После формирования файла описания содержимого программной памяти, соответствующего разработанной микропрограмме, можно приступать к проектированию и реализации аппаратной части контроллера.
Окончание следует.
Литература
- Зотов В. Проектирование встраиваемых микропроцессорных систем на основе ПЛИС фирмы Xilinx. М.: Горячая линия — Телеком. 2006.
- Зотов В. PicoBlaze — семейство восьмиразрядных микропроцессорных ядер, реализуемых на основе ПЛИС фирмы Xilinx // Компоненты и технологии. 2003. № 4.
- Зотов В. Система команд микропроцессорного ядра PicoBlaze, реализуемого на основе ПЛИС семейств Spartan-II, Spartan-IIE, Virtex, Virtex-E // Компоненты и технологии. 2003. № 5.
- Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейства Virtex-II // Компоненты и технологии. 2003. № 6.
- Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейства CoolRunner-II // Компоненты и технологии. 2003. № 7.
- Зотов В. Особенности микропроцессорного ядра PicoBlaze, предназначенного для применения в проектах, реализуемых на основе ПЛИС семейств Spartan-3, Virtex-II и Virtex-IIPRO // Компоненты и технологии. 2005. № 5–6.
- Зотов В. Разработка программ на языке ассемблера для семейства микропроцессорных ядер PicoBlaze // Компоненты и технологии. 2003. № 8.
- Зотов В. Программирование конфигурационной памяти встраиваемой системы, реализуемой на основе микропроцессорного ядра семейства PicoBlaze в ПЛИС фирмы Xilinx // Компоненты и технологии. 2006. № 2.
- Зотов В. pBlaze IDE — интегрированная среда разработки и отладки программного обеспечения встраиваемых восьмиразрядных микропроцессорных систем, реализуемых на основе ПЛИС фирмы Xilinx // Компоненты и технологии. 2006. № 3–4.
- Зотов В. Директивы и сообщения об ошибках интегрированной среды разработки и отладки программного обеспечения встраиваемых восьмиразрядных микропроцессорных систем, реализуемых на основе ПЛИС фирмы Xilinx, pBlaze IDE // Компоненты и технологии. 2006. № 5.
- Зотов В. Разработка и отладка программного обеспечения встраиваемых восьмиразрядных микропроцессорных систем, реализуемых на основе ПЛИС фирмы Xilinx, в среде pBlaze IDE // Компоненты и технологии. 2006. № 6.
- Зотов В. Инструментальный комплект Spartan-3 Starter Kit для практического освоения методов проектирования встраиваемых микропроцессорных систем на основе ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2005. № 7.