Научная статья на тему 'Формирование описаний компонентов для внутрикристальной отладки цифровых устройств и встраиваемых микропроцессорных систем на основе параметризированных модулей Xilinx Core Generator tool. Часть 2'

Формирование описаний компонентов для внутрикристальной отладки цифровых устройств и встраиваемых микропроцессорных систем на основе параметризированных модулей Xilinx Core Generator tool. Часть 2 Текст научной статьи по специальности «Компьютерные и информационные науки»

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

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

В предыдущей публикации цикла, посвященного вопросам аппаратной внутрикристальной отладки цифровых устройств и встраиваемых микропроцессорных систем, проектируемых на базе ПЛИС фирмы Xilinx с архитектурой FPGA (Field Programmable Gate Array), были представлены функциональные возможности и структура комплекса программных средств ChipScope Pro, а также методы его применения. Продолжение обзора, начатого в №11-2008

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

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

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

Текст научной работы на тему «Формирование описаний компонентов для внутрикристальной отладки цифровых устройств и встраиваемых микропроцессорных систем на основе параметризированных модулей Xilinx Core Generator tool. Часть 2»

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

walerry@km.ru

Формирование описаний компонентов для внутрикристальной отладки цифровых устройств и встраиваемых микропроцессорных систем на основе параметризированных модулей Xilinx CORE Generator Tool

Подготовка описаний конфигурируемых логических анализаторов на основе параметризированного модуля Integrated Logic Analyzer (ILA) с помощью средств CORE Generator

Для захвата и фиксации сигналов, состояние которых необходимо контролировать в процессе аппаратной отладки разрабатываемого устройства или встраиваемой микропроцессорной системы, следует включить в состав проекта описание одного или нескольких конфигурируемых логических анализаторов. Генерация указанного описания выполняется средствами CORE Generator [1] на основе параметризированного модуля Integrated Logic Analyzer (ILA). Последней версией ядра конфигурируемого логического анализатора является модификация Integrated Logic Analyzer (ILA) v1.02a. Данную версию рассматриваемого параметризированного модуля можно применять для подготовки описаний встроенных логических анализаторов, включаемых в состав цифровых устройств и микропроцессорных систем, выполняемых на базе ПЛИС следующих семейств: Spartan-II, Spartan-IIE, Spartan-3, Spartan-3 XA, Spartan-3E, Spartan-3E XA, Spartan-3A, Spartan-3AN, Spartan-3A DSP, Virtex, QPRO Virtex Rad-Hard, QPRO Virtex Hi-Rel, Virtex-E, QPRO Virtex-E Military, Virtex-II, QPRO Virtex-II Rad Tolerant, QPRO Virtex-II Military, Virtex-II Pro, Virtex-4 FX, Virtex-4 LX, Virtex-4 SX, QPRO Virtex-4 Rad Tolerant, QPRO Virtex-4 Hi-Rel, Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT, Virtex-5 FXT.

Ядро конфигурируемого логического анализатора Integrated Logic Analyzer (ILA) версии v1.02a обладает такими функциональными возможностями, как:

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

• возможность индивидуального выбора разрядности для каждого порта сигналов, определяющих условия запуска логического анализатора, в диапазоне от 1 до 1024 бит при использовании ПЛИС семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT, Virtex-5 FXT и от 1 до 256 бит в случае применения кристаллов других серий FPGA [2];

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

• использование портов сигналов, определяющих условия запуска логического анализатора, в качестве входов регистрируемых данных, по выбору разработчика;

• возможность выбора информационной емкости внутреннего запоминающего устройства, предназначенного для записи значений контролируемых сигналов, в диапазоне от 256 до 4096 слов при использовании ПЛИС семейств Spartan-II, Spartan-IIE, Virtex, QPRO Virtex Rad-Hard, QPRO Virtex Hi-Rel, Virtex-E, QPRO Virtex-E Military; от 1024 до 131 072 слов в случае применения кристаллов семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT, Virtex-5 FXT и от 512 до 16 384 слов при реализации отлаживаемых устройств на базе ПЛИС других серий;

• наличие опции разрешения или запрета использования признаков (квалификаторов), задаваемых разработчиком, для управления записью захватываемых данных во внутреннее запоминающее устройство;

• возможность захвата и фиксации контролируемых сигналов по фронту или спаду тактового сигнала (по выбору разработчика);

• поддержка использования формируемых логических анализаторов в процессе отладки встраиваемых микропроцессорных систем, разрабатываемых с помощью комплекса средств проектирования Xilinx Embedded Development Kit (EDK) [5, 6];

• возможность применения макросов с относительным размещением Relationally Placed Macro (RPM), позволяющих повысить производительность формируемых логических анализаторов;

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

Для быстрого определения значений параметров генерируемого логического анализатора целесообразно использовать соответствующий «мастер» настройки. Количество диалоговых панелей, входящих в состав «мастера» настройки параметров ядра Integrated Logic Analyzer (ILA) версии v1.02a, зависит от числа портов сигналов, используемых для выбора условий запуска логического анализатора. Значение этого параметра задается в стартовой диалоговой панели, вид которой изображен на рис. 6.

В данной диалоговой панели в первую очередь следует в поле редактирования Component Name скорректировать или ввести новое название создаваемого логического анализатора, придерживаясь тех же правил, которые были сформулированы при рассмотрении процесса формирования описания контроллера ICON (см. КиТ № 11, 2008 г.).

Затем нужно указать количество портов сигналов, комбинация состояний которых используется для определения условий запуска формируемого логического анализатора. Значение этого параметра задается с помощью поля выбора Number of Trigger Ports, которое представлено во встроенной панели Trigger Port Settings (рис. 6). Выпадающий список этого поля выбора содержит 16 возможных вариантов, которые позволяют генерировать описания конфигурируемых логических анализаторов, содержащих от 1 до 16 портов сигналов, определяющих условия запуска. Эти порты можно использовать независимо друг от друга. По умолчанию параметр Number of Trigger Ports принимает единичное значение.

Далее следует определить параметры структуры блока формирования условий запуска для создаваемого конфигурируемого логического анализатора. В общем случае структуру этого блока можно представить в виде конечного автомата, который может находиться в одном из нескольких последовательных состояний (уровней), количество которых задается пользователем. Последовательное переключение из одного состояния (уровня) в другое осуществляется при возникновении определенных комбинаций сигналов, определяющих условия запуска логического анализатора. На рис. 7 изображена структурная схема, которая в наглядной форме поясняет функционирование блока формирования условий запуска конфигурируемого логического анализатора, создаваемого на базе па-раметризированного модуля Integrated Logic Analyzer (ILA) версии v1.02a. Максимальное количество последовательных уровней в структуре блока формирования условий запуска задается с помощью поля выбора Max Sequence

Levels, которое также расположено во встроенной панели Trigger Port Settings (рис. 7). В выпадающем списке этого поля выбора представлены числовые значения, находящиеся в диапазоне от 1 до 16. По умолчанию для параметра Max Sequence Levels предлагается единичное значение.

Если формируемое ядро логического анализатора предназначено для отладки устройства, реализуемого на базе кристаллов семейств Spartan-3, Spartan-3 XA, Spartan-3E, Spartan-3E XA, Spartan-3A, Spartan-3AN, Spartan-3A DSP, Virtex-II, QPRO Virtex-II Rad Tolerant, QPRO Virtex-II Military, Virtex-II Pro, Virtex-4 FX, Virtex-4 LX, Virtex-4 SX, QPRO Virtex-4 Rad Tolerant, QPRO Virtex-4 Hi-Rel, Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT или Virtex-5 FXT, то у разработчика есть возможность использовать макросы с относитель-

ным размещением RPM. Для этой цели следует воспользоваться индикатором состояния Use RPMs, расположенным во встроенной панели Trigger Port Settings. По умолчанию для указанных семейств ПЛИС данный индикатор находится в состоянии «Включено», разрешающем применение макросов с относительным размещением. Для повышения производительности генерируемого ядра логического анализатора рекомендуется использовать значение параметра Use RPMs, предлагаемое по умолчанию.

Чтобы добавить в состав интерфейса создаваемого логического анализатора выход сигнала Trigger Output, переключаемого при выполнении заданных условий запуска, нужно установить в состояние «Включено» индикатор Enable Trigger Output Port. Сигнал, формируемый на этом выходе, можно использовать для управления внешними аппаратными средствами контроля и диагностики, применяемыми в процессе отладки разрабатываемого устройства или встраиваемой микропроцессорной системы. Кроме того, данный сигнал можно задействовать в качестве управляющего или сигнала прерывания в составе отлаживаемого устройства или системы. По умолчанию индикатор Enable Trigger Output Port находится в сброшенном состоянии, запрещающем включение выхода сигнала Trigger Output в состав интерфейса генерируемого конфигурируемого логического анализатора.

Следующим шагом в процессе определения параметров формируемого ядра логического анализатора является выбор перепада тактового сигнала, по которому должен осуществляться захват и фиксация значений контролируемых сигналов. Параметризирован-ный модуль Integrated Logic Analyzer (ILA) версии v1.02a позволяет создавать описания логических анализаторов, выполняющих захват и фиксацию или по фронту, или по спаду сигнала синхронизации. Для определения активного перепада тактового сигнала в генерируемом элементе следует воспользовать-

| Компаратор 0 |—*■ | Компаратор 1 |—*■ | Компаратор 2 |—*■

| Компаратор 15 |—*•

Уровень 1 (Состояние 1)

| Компаратор 0 |—>■ | Компаратор 1 |—>■ | Компаратор 2 |—>■

| Компаратор 15 |—*•

Уровень 2 (Состояние 2)

| Компаратор 0 |—»• | Компаратор 1 |-»-| Компаратор 2 |-»-

| Компаратор 15 |—»•

Уровень 16 (Состояние 16)

Сигнал

запуска

Рис. 7. Структурная схема, поясняющая функционирование блока формирования условий запуска

Рис. 8. Вид второй диалоговой панели «мастера» настройки параметров

ся полем выбора Sample On, которое находится во встроенной панели Storage Settings (рис. 6). По умолчанию в этом поле выбора представлен вариант Rising, при использовании которого формируется ядро логического анализатора, выполняющего захват и фиксацию значений контролируемых сигналов по фронту тактового сигнала. Чтобы сгенерировать элемент, осуществляющий захват и регистрацию уровней по спаду сигнала синхронизации, необходимо выбрать в выпадающем списке возможных значений параметра Sample On вариант Falling.

Далее нужно указать максимальное количество значений сигналов, записываемых в буферную память, которое определяет информационную емкость внутреннего запоминающего устройства в формируемом ядре логического анализатора. Требуемое значение этого параметра задается с помощью поля выбора Sample Data Depth, расположенного во встроенной панели Storage Settings (рис. 6). Количество возможных вариантов, представленных в выпадающем списке этого поля выбора, зависит от семейства ПЛИС, выбранного для реализации отлаживаемого устройства. Информация о минимальном и максимальном значении параметра Sample Data Depth для различных семейств ПЛИС была приведена при описании функциональных возможностей параметризированного модуля Integrated Logic Analyzer (ILA) версии v1.02a. Значение, предлагаемое по умолчанию для данного параметра, также зависит от семейства ПЛИС, на базе которого реализуется отлаживаемое устройство или микропроцессорная система. Если генерируемое ядро логического анализатора предназначено для применения в кристаллах семейств Spartan-II, Spartan-IIE, Virtex, QPRO Virtex Rad-Hard, QPRO Virtex Hi-Rel, Virtex-E, QPRO Virtex-E Military, то емкость внутреннего запоминающего устройства по умолчанию составляет 256 слов. Для ПЛИС семейств Spartan-3, Spartan-3 XA, Spartan-3E, Spartan-3E XA, Spartan-3A, Spartan-3AN, Spartan-3A DSP, Virtex-II, QPRO Virtex-II Rad Tolerant, QPRO Virtex-II Military, Virtex-II Pro, Virtex-4 FX, Virtex-4 LX, Virtex-4 SX, QPRO Virtex-4 Rad Tolerant, QPRO Virtex-4 Hi-Rel это значение равно 512 словам. При использовании кристаллов семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT или Virtex-5 FXT информационная емкость внутреннего буфера данных по умолчанию полагается равной 1024 словам.

Для минимизации необходимой емкости внутреннего запоминающего устройства в создаваемых логических анализаторах парамет-ризированный модуль Integrated Logic Analyzer (ILA) версии v1.02a предоставляет возможность использования схемы формирования признаков (квалификаторов) записи значений контролируемых сигналов. Таким образом, во внутреннюю память будут загружаться только те значения сигналов, которые соответствуют признакам, определяемым разработчиком.

Разрешение или запрет использования признаков (квалификаторов) записи значений контролируемых сигналов во внутреннее запоминающее устройство осуществляется с помощью индикатора состояния Enable Storage Qualification, который также представлен во встроенной панели Storage Settings (рис. 6). По умолчанию данный индикатор установлен в состояние «Включено», разрешающее использование схемы формирования признаков (квалификаторов) записи значений контролируемых сигналов во внутреннюю память генерируемого логического анализатора.

Завершает процесс установки общих параметров конфигурации ядра логического анализатора выбор способа организации портов, предназначенных для подключения регистрируемых данных, и определение их разрядности. Параметризированный модуль Integrated Logic Analyzer (ILA) версии v1.02a позволяет разработчикам выбрать один из двух вариантов организации входных портов регистрируемых данных. Первый вариант заключается в использовании портов сигналов, определяющих условия запуска логического анализатора, в качестве входов захватываемых и фиксируемых данных. Второй вариант предусматривает включение дополнительных входных портов, предназначенных для регистрации уровней контролируемых сигналов в процессе аппаратной отладки, в состав интерфейса генерируемого ядра логического анализатора. Выбор требуемого варианта осуществляется с помощью индикатора состояния Data Same as Trigger. По умолчанию этот индикатор находится в состоянии «Включено», при котором порты сигналов, определяющих условия запуска логического

анализатора, выполняют также функцию входов контролируемых данных.

В случае выбора второго варианта организации входных портов регистрируемых данных необходимо указать разрядность соответствующей шины, включаемой в состав интерфейса формируемого ядра. Требуемое значение разрядности входного порта данных указывается с помощью клавиатуры в поле редактирования Data Port Width. Этот параметр может принимать значения в диапазоне от 1 до 256 разрядов при создании ядра логического анализатора, предназначенного для применения в кристаллах семейств Spartan-3, Spartan-3 XA, Spartan-3E, Spartan-3E XA, Spartan-3A, Spartan-3AN, Spartan-3A DSP, Virtex-II, QPRO Virtex-II Rad Tolerant, QPRO Virtex-II Military, Virtex-II Pro, Virtex-4 FX, Virtex-4 LX, Virtex-4 SX, QPRO Virtex-4 Rad Tolerant и QPRO Virtex-4 Hi-Rel. Если формируемый элемент используется для отладки устройств и встраиваемых микропроцессорных систем, реализуемых на базе ПЛИС семейств Virtex-5 LX, Virtex-5 LXT, Virtex-5 SXT или Virtex-5 FXT, то разрядность входной шины данных можно выбирать в диапазоне от 1 до 1024 бит. По умолчанию в поле редактирования предлагается значение, соответствующее 32-разрядной шине данных.

Следующие диалоговые панели «мастера» настройки ядра конфигурируемого логического анализатора Integrated Logic Analyzer (ILA) версии v1.02a предназначены для установки требуемых параметров каждого порта сигналов, совокупность значений которых определяет условия запуска. Количество этих панелей равно числу портов, указанному в поле выбора Number of Trigger Ports, которое расположено во встроенной панели Trigger

Port Settings. Все диалоговые панели, используемые для конфигурирования входных портов сигналов, определяющих условия запуска, имеют сходную структуру. Типовой вид второй диалоговой панели «мастера» настройки параметризированного модуля Integrated Logic Analyzer (ILA) версии v1.02a приведен на рис. 8. Порядковый номер порта, предназначенного для подключения сигналов, комбинация значений которых определяет условия запуска логического анализатора, отображается в заголовке встроенной панели Trigger Port (рис. 8).

Открывая поочередно диалоговые панели, вид которых соответствует изображению, представленному на рис. 8, следует задать необходимые значения параметров для каждого входного порта. Вначале целесообразно определить с помощью клавиатуры в поле редактирования Trigger Port Width разрядность соответствующего порта. Значение этого параметра можно выбирать в диапазоне от 1 до 256 разрядов. По умолчанию для каждого порта сигналов, определяющих условия запуска логического анализатора, предлагается значение разрядности, равное 8 бит.

Далее нужно указать количество схем сравнения (компараторов), подключаемых к соответствующему порту, используя для этого поле выбора Match Units (рис. 8). С помощью компараторов отслеживаются события (комбинации уровней сигналов) в процессе аппаратной отладки проектируемого устройства или встраиваемой микропроцессорной системы, которые интересуют разработчика. Увеличение количества компараторов, подключаемых к каждому порту логического анализатора, повышает его гибкость, предоставляя больше возможностей для контроля всех необходимых комбинаций значений сигналов в процессе функционирования отлаживаемого устройства или микропроцессорной системы. Но при этом соответственно возрастает объем логических ресурсов кристалла, необходимых для реализации генерируемого ядра логического анализатора. Поэтому не следует без необходимости выбирать большое количество схем сравнения, сопряженных с каждым портом сигналов, определяющих условия запуска. Выпадающий список возможных значений параметра Match Units содержит 16 вариантов. По умолчанию к каждому порту генерируемого логического анализатора подключается один компаратор.

Параметризированный модуль Integrated Logic Analyzer (ILA) позволяет установить на выходе каждого компаратора конфигурируемый счетчик, разрядность которого определяет разработчик. Данный счетчик позволяет отслеживать указанное пользователем количество повторений соответствующего события в процессе работы отлаживаемого устройства. Контроль числа возникновения конкретного события используется, в частности, при отладке устройств и микропроцессорных систем, выполняющих цикличе-

ские операции. Необходимость установки на выходах компараторов счетчиков, осуществляющих подсчет числа повторений событий, и их разрядность определяется с помощью поля выбора Counter Width (рис. 8). Выпадающий список этого поля выбора позволяет указать разрядность счетчика в диапазоне от 1 до 32 бит. По умолчанию для данного параметра предлагается вариант Disabled, запрещающий применение счетчиков повторений соответствующих событий на выходах компараторов.

Для обнаружения разнообразных событий в процессе аппаратной отладки разрабатываемых устройств и встраиваемых систем в составе ядра конфигурируемого логического анализатора можно применять компараторы (схемы сравнения) различного типа. Параметризированный модуль Integrated Logic Analyzer (ILA) версии v1.02a предоставляет возможность использования одного из шести типов компараторов. Каждый из этих вариантов позволяет отслеживать определенный класс событий в процессе функционирования отлаживаемого устройства или встраиваемой микропроцессорной системы. Требуемый тип компараторов, подключаемых к соответствующему входному порту формируемого логического анализатора, указывается в поле выбора Match Type (рис. 8). В выпадающем списке этого поля выбора представлены шесть вариантов: Basic, Basic w/edges, Extended, Extended w/edges, Range, Range w/edges.

Схемы сравнения, относящиеся к типу Basic, позволяют отслеживать совпадение ('=') или несовпадение ('<>') уровней входных сигналов с задаваемыми контрольными значениями. При этом в условных выражениях в качестве контрольных значений сигналов могут задаваться символы «0» (состояние низкого логического уровня, логический ноль), «1» (состояние высокого логического уровня, логическая единица) и «X» — безразличное состояние. Компараторы вида Basic w/edges поддерживают те же функции сравнения данных, что и Basic, но при этом позволяют обнаруживать события, включающие в себя изменения уровней сигналов. В условных выражениях, определяющих выполняемую функцию сравнения, в качестве задаваемых контрольных значений сигналов могут указываться дополнительно символы «R» (переключение сигнала из состояния низкого логического уровня в состояние высокого логического уровня), «F» (переход сигнала из состояния логической единицы в состояние логического нуля) и «B» (любое изменение сигнала). Компараторы, относящиеся к классу Extended, поддерживают расширенный спектр операций сравнения уровней входных сигналов и контрольных значений, определяемых разработчиком: равенство ('='), неравенство ('<>'), больше ( '>'), больше или равно ('>='), меньше ('<'), меньше или равно ('<='). При этом в качестве значений сигналов в условных выражениях могут указывать-

ся те же символы, что и для компараторов типа Basic. Схемы сравнения вида Extended w/edges выполняют те же функции, что и компараторы Extended, но позволяют при этом отслеживать события изменения уровней входных сигналов. В этом случае в качестве задаваемых контрольных значений сигналов можно использовать те же символы, что и в компараторах Basic w/edges. Компараторы типа Range кроме операций сравнения, поддерживаемых компараторами Extended, позволяют контролировать попадание значений входных сигналов в заданный диапазон ('in range') и выход за пределы этого диапазона ('not in range'). Схемы сравнения, относящиеся к виду Range w/edges, отличаются от компараторов Range дополнительной возможностью по обнаружению событий изменения уровней входных сигналов.

По умолчанию в поле выбора Match Type предлагается наиболее простой вариант компаратора — Basic. При использовании более сложной схемы сравнения (с большим числом поддерживаемых операций) следует принимать во внимание увеличение объема логических ресурсов кристалла, необходимых для ее реализации. После выбора требуемого варианта компаратора в строке Bit Values отображается информация о допустимых символах задаваемых значений сигналов, а в строке Function — сведения о поддерживаемых операциях сравнения.

Если в качестве входов регистрируемых данных были выбраны порты сигналов, задаваемая комбинация значений которых определяет условия запуска логического анализатора, то с помощью параметра Exclude Trigger Port from Data Storage можно разрешить исключение неиспользуемых портов. Для этого следует перевести индикатор Exclude Trigger Port from Data Storage в состояние «Включено». По умолчанию данный индикатор находится в сброшенном состоянии, запрещающем удаление портов сигналов, определяющих условия запуска, из общего списка входов фиксируемых данных.

В процессе определения параметров формируемого ядра логического анализатора можно получить предварительную оценку необходимого количества модулей блочной памяти ПЛИС, используемых в его составе. Для этого нужно в заключительной диалоговой панели «мастера» настройки параметров ядра конфигурируемого логического анализатора Integrated Logic Analyzer (ILA) версии v1.02a открыть вкладку с названием Core Details, как показано на рис. 9. На этой же вкладке отображается информация о количестве компараторов, включаемых в состав ядра.

Указав все необходимые значения параметров конфигурации логического анализатора, следует активизировать процесс автоматической генерации описания нажатием клавиши Готово (Finish), которая расположена в нижней части заключительной диалоговой

Рис. 9. Вид заключительной диалоговой панели «мастера» настройки параметров, содержащей сведения о количестве используемых модулей блочной памяти ПЛИС

панели «мастера» настройки ядра Integrated Logic Analyzer (ILA) версии v1.02a. После успешного завершения этого процесса нужно, используя САПР серии Xilinx ISE [3, 4], включить в состав описания проектируемого устройства один или несколько экземпляров этого ядра. Далее необходимо подключить соответствующие входы и выходы каждого экземпляра логического анализатора к контроллеру ICON и требуемым цепям отлаживаемого устройства в соответствии со схемой, приведенной на рис. 10.

В конфигурируемых логических анализаторах, генерируемых на основе параметри-зированного модуля Integrated Logic Analyzer (ILA) версии v1.02a, применяются следующие условные обозначения входных и выходных портов:

• CLK — вход сигнала синхронизации;

• DATA[M:0] — входная шина данных с разрядностью M+1, предназначенная для подключения регистрируемых сигналов отлаживаемого устройства или встраиваемой микропроцессорной системы;

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

• CONTROL[35:0] — двунаправленная шина, предназначенная для сопряжения ядра логического анализатора с контроллером Integrated Controller (ICON);

• TRIG0 [N:0] — входная шина с разрядностью N+1, соответствующая первому (или единственному) порту сигналов, совокупность значений которого определяет условия запуска логического анализатора;

• TRIG1 [K:0]- TRIG15 [L:0]— входные шины с разрядностью K+1, ..., L+1, соответствующие дополнительным портам сигналов, определяющих условия запуска логического анализатора.

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

Ядра логических анализаторов, формируемых на основе параметризированного модуля Integrated Logic Analyzer (ILA) версии v1.02a, можно также применять в процессе аппаратной отладки встраиваемых систем, проектируемых на основе 32-разрядных микропроцессорных ядер семейств PowerPC и MicroBlaze [6-15]. Для этого следует, используя комплекс средств проектирования Xilinx EDK, включить сгенерированное ядро логического анализатора в состав разрабатываемой системы в соответствии со схемой, изображенной на рис. 11.

Пример описания ядра конфигурируемого логического анализатора, сформированного на основе параметризированного модуля Integrated Logic Analyzer (ILA) версии v1.02a с помощью средств CORE Generator

Примером описания такого конфигурируемого логического анализатора является ядро chipscope_ila_vl_02_a. Сгенерированный логический анализатор предназначен для контроля и регистрации состояния четырех сигналов. В составе ядра chipscope_ila_v1_02_a используется одноуровневая схема формирования условий запуска логического анализатора, которая содержит один компаратор, относящийся к классу Basic. Захват и фиксация значений контролируемых сигналов в этом логическом анализаторе осуществляется по фронту тактового сигнала. В состав интерфейса ядра chipscope_ila_v1_02_a включен выход сигнала, состояние которого переключается при выполнении заданных условий. Сформированный текст описания логического анализатора содержит стандартные разделы исходного модуля проекта на языке VHDL.

ChipScore Pro ICON Core

ChipScore Pro ILA Core

CONTROL

CLK DATA TRIG_OUT TRIGO TRIG1 TRIG2 TRIG3 TRIG4 TRIG5 TRIG6 TRIG7 TRIG8 TRIG9 TRIG10 TRIG11 TRIG12 TRIG 13 TRIG14 TRIG15

Тактовый сигнал Регистрируемые сигналы Выходной сигнал управления

Сигналы отлаживаемого устройства, определяющие условия запуска логического анализатора ILA

Рис. 10. Схема сопряжения ядра конфигурируемого логического анализатора с контроллером ICON и цепями отлаживаемого устройства

ОРВ MDM

CAPTUREJN TDIJN RESETJN SHIFTJN UPDATEJN SELJN DRCKJN TDO OUT

ChipScore Pro ICON Core

ChipScore Pro ILA Core

CAPTUREJN CONTROLO

TDI IN

RESETJN

SHIFTJN

UPDATEJN

SELJN

DRCKJN

TDO_OUT

CONTROL

CLK

DATA

TRIG_OUT

TRIGO

TRIG1

TRIG2

TRIG3

TRIG4

TRIG5

TRIG6

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

TRIG7

TRIG8

TRIG9

TRIG10

TRIG11

TRIG12

TRIG13

TRIG14

TRIG15

Тактовый сигнал Регистрируемые сигналы Выходной сигнал управления

Сигналы отлаживаемого устройства, определяющие условия запуска логического анализатора ILA

Рис. 11. Схема включения ядра конфигурируемого логического анализатора в состав отлаживаемых встраиваемых микропроцессорных систем на базе 32-разрядных ядер семейств PowerPC и MicroBlaze

Его объем значительно превосходит размеры журнальной публикации, поэтому далее основные разделы этого описания приводятся в сокращенном виде, что позволит получить информацию о внутренней структуре логического анализатора, создаваемого на основе параметризированного модуля Integrated Logic Analyzer (ILA) версии v1.02a.

Первая часть сгенерированного описания содержит выражения декларации используемых библиотек и объявление объекта описания:

library IEEE;

use IEEE.STD_LOGIC_1164.ALL; library UNISIM;

use UNISIM.VCOMPONENTS.ALL; use UNISIM.VPKG.ALL;

entity chipscope_ila_v1_02_a is port (

CLK : in STD_LOGIC := 'X';

TRIG_OUT : out STD_LOGIC;

CONTROL : inout STD_LOGIC_VECTOR ( 35 downto 0 ); TRIG0 : in STD_LOGIC_VECTOR ( 1 downto 0 );

DATA : in STD_LOGIC_VECTOR ( 3 downto 0 )

);

end chipscope_ila_v1_02_a;

В следующем разделе представлено определение архитектуры конфигурируемого логического анализатора ск1рзсоре_1\а_у1_02_а, выполненное на структурном уровне. В начале этого раздела приведены выражения декларации внутренних сигналов:

architecture STRUCTURE of chipscope_ila_v1_02_a is signal N0 : STD_LOGIC;

signal NlwRenamedSig_OI_TRIG_OUT : STD_LOGIC; signal U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_CMP_RESET : STD_LOGIC;

signal U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_I_SRLT_NE_1_ U_CDONE_iCFG_DIN : STD_LOGIC;

signal U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_I_SRLT_NE_1_ U_WLCMPCE_iCFG_DIN : STD_LOGIC;

signal U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_SCNT_CE : STD_LOGIC;

signal U0_I_YES_D_UJLA_U_G2_U_CAPCTRL_U_CAP_AD-DRGEN_U_SCNT_CMP_I_SRL16_U_GAND_SRL16_sel_0_Q : STD_LOGIC;

signal U0_I_YES_D_U_ILA_U_RST_HALT : STD_LOGIC; signal U0_I_YES_D_U_ILA_U_RST_U_HALT_XFER_iDOUT_dly_ 2_Q : STD_LOGIC;

signal U0_I_YES_D_U_ILA_U_STAT_ACTRESET_pulse : STD_LOGIC;

signal U0_I_YES_D_U_ILA_U_TRIG_U_TC_I_TSEQ_NEQ2_U_ TC_EQUATION_I_SRLT_NE_1_I_NMU_1_TO_4_U_TCL_I_NMU_E Q1_U_iDOUT_iCFG_DIN : STD_LOGIC;

signal U0_I_YES_D_U_ILA_U_TRIG_U_TC_I_TSEQ_NEQ2_U_ TC_EQUATION_iTRIGGER : STD_LOGIC;

signal U0_I_YES_D_U_ILA_U_TRIG_U_TM_G_NMU_0_U_M_U_ MU_DOUT_tmp : STD_LOGIC;

signal U0_I_YES_D_U_ILA_U_TRIG_U_TM_G_NMU_0_U_M_U_ MU_I_MUT_GAND_U_match_I_SRL16_U_GAND_SRL16_tmpCfgD ata : STD_LOGIC;

signal U0_I_YES_D_U_ILA_U_TRIG_U_TM_G_NMU_0_U_M_ dout_tmp : STD_LOGIC; signal U0_I_YES_D_U_ILA_iARM : STD_LOGIC; signal U0_I_YES_D_U_ILA_iCAP_DONE : STD_LOGIC; signal U0_I_YES_D_U_ILA_iDATA_DOUT : STD_LOGIC;

signal NLW_U0_I_YES_D_U_ILA_U_TRIG_U_TC_I_TSEQ_NEQ2_ U_TC_EQUATION_I_SRLT_NE_1_I_NMU_1_TO_4_U_TCL_I_NM U_EQ1_U_iDOUT_I_NOLUT6_I_SRL_T2_U_SRLC16E_Q15_UN-CONNECTED : STD_LOGIC;

signal NLW_U0_I_YES_D_U_ILA_U_STAT_U_DSR_O_UN-CONNECTED : STD_LOGIC;

signal NLW_U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_U_CAP_ ADDRGEN_U_WCNT_LCMP_I_SRL16_U_GAND_SRL16_I_TWM OD8_NE0_I_NO_RPM_I_SRLT_EQ_2_U_SRLH_Q_UNCON-NECTED : STD_LOGIC;

signal NLW_U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_I_SRLT_ NE_1_U_WHCMPCE_I_NOLUT6_I_SRL_T2_U_SRLC16E_Q15_UN CONNECTED : STD_LOGIC;

signal NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_I_CASE1_I_NO_ TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt1_s1_s32_if_ram_ rt1_s1_s32_i_ADDRB_0_UNCONNECTED : STD_LOGIC; signal NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_I_CASE1_I_NO_ TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt1_s1_s32_if_ram_ rt1_s1_s32_i_DIA_31_UNCONNECTED : STD_LOGIC;

signal NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_I_CASE1_I_NO_ TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt1_s1_s32_if_ram_ rt1_s1_s32_i_DIPA_0_UNCONNECTED : STD_LOGIC;

signal NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_I_CASE1_I_NO_ TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt1_s1_s32_if_ram_ rt1_s1_s32_i_DOA_31_UNCONNECTED : STD_LOGIC;

signal NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_I_CASE1_I_NO_ TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt1_s1_s32_if_ram_ rt1_s1_s32_i_DOB_0_UNCONNECTED : STD_LOGIC;

signal NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_I_CASE1_I_NO_ TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt1_s1_s32_if_ram_ rt1_s1_s32_i_DOPA_0_UNCONNECTED : STD_LOGIC;

signal NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_I_CASE1_I_NO_ TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt1_s1_s32_if_ram_ rt1_s1_s32_i_DOPB_0_UNCONNECTED : STD_LOGIC;

signal U0_I_YES_D_U_ILA_I_DQ_U_DQQ_temp : STD_LOG-IC_VECTOR ( 3 downto 0 );

signal U0_I_YES_D_U_ILA_U_CAPSTOR_I_CASE1_I_NO_TB_I_ RT1_I_RDADDR_U_HC_CI : STD_LOGIC_VECTOR ( 13 downto 1 );

signal U0_I_YES_D_U_ILA_U_CAPSTOR_RD_ADDR : STD_ LOGIC_VECTOR ( 13 downto 0 );

signal U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_I_SRLT_NE_1_ U_CDONE_iCFG_DATA : STD_LOGIC_VECTOR ( 1 downto 1 );

signal U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_I_SRLT_NE_1_ U_SCRST_iO : STD_LOGIC_VECTOR ( 1 downto 0 );

signal U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_U_CAP_AD-DRGEN_CAP_ADDR_next : STD_LOGIC_VECTOR ( 8 downto 0 );

signal U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_U_CAP_AD-DRGEN_U_SCNT_CMP_I_SRL16_U_GAND_SRL16_cfg_data : STD_LOGIC_VECTOR ( 1 downto 1 );

signal U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_U_CAP_AD-DRGEN_cfg_data : STD_LOGIC_VECTOR ( 4 downto 0 );

signal U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_cfg_data : STD_LOGIC_VECTOR ( 9 downto 0 );

signal U0_I_YES_D_U_ILA_U_RST_U_ARM_XFER_iDIN : STD_LOGIC_VECTOR ( 1 downto 0 );

signal U0_I_YES_D_U_ILA_U_RST_iRESET : STD_LOGIC_ VECTOR ( 0 downto 0 );

signal U0_I_YES_D_U_ILA_U_STAT_NS_dstat : STD_LOGIC_ VECTOR ( 8 downto 0 );

signal U0_I_YES_D_U_ILA_U_STAT_U_DMUX5_T2 : STD_LOG-IC_VECTOR ( 1 downto 0 );

signal U0_I_YES_D_U_ILA_U_STAT_U_DSL1_iDIN : STD_LOG-IC_VECTOR ( 1 downto 0 );

ignal U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T5 : STD_LOG-IC_VECTOR ( 1 downto 0 );

signal U0_I_YES_D_U_ILA_U_STAT_iSTAT : STD_LOGIC_VEC-TOR ( 11 downto 0 );

signal U0_I_YES_D_U_ILA_U_STAT_iSTAT_11_wg_cy : STD_LOGIC_VECTOR ( 7 downto 0 );

signal U0_I_YES_D_U_ILA_U_STAT_iSTAT_CNT : STD_LOG-IC_VECTOR ( 9 downto 0 );

signal U0_I_YES_D_U_ILA_U_TRIG_U_TM_G_NMU_0_U_M_U_ MU_I_MUT_GAND_U_match_I_SRL16_U_GAND_SRL16_sel : STD_LOGIC_VECTOR ( 2 downto 1 );

signal U0_I_YES_D_U_ILA_iCAP_NUM_SAMPLES : STD_LOG-IC_VECTOR ( 8 downto 0 );

signal U0_I_YES_D_U_ILA_iCAP_STATE : STD_LOGIC_VECTOR ( 1 downto 0 );

signal U0_I_YES_D_U_ILA_iCAP_WR_ADDR : STD_LOGIC_ VECTOR ( 8 downto 0 );

signal U0_I_YES_D_U_ILA_iDATA : STD_LOGIC_VECTOR ( 3 downto 0 );

signal U0_I_YES_D_U_ILA_iRESET : STD_LOGIC_VECTOR ( 7 downto 0 );

signal U0_iDATA : STD_LOGIC_VECTOR ( 3 downto 0 ); signal U0_iTRIG_IN : STD_LOGIC_VECTOR ( 1 downto 0 );

Завершает этот раздел структурное описание рассматриваемого логического анализатора, основными компонентами которого яв-

ляются триггеры, мультиплексоры, таблицы преобразования LUT (Look-Up Table) и модули блочной памяти ПЛИС Block RAM:

begin

TRIG_OUT <= NlwRenamedSig_OI_TRIG_OUT;

XST_GND : GND

port map (G => N0 );

XST_VCC : VCC

port map ( P => N1);

U0_I_YES_D_U_ILA_U_TRIG_OUT_U_TRIGOUT_FDR : FDR generic map( INIT => '0' )

port map ( C => CLK, D => U0_I_YES_D_U_ILA_iTRIG_OUT, R => U0_I_YES_D_U_ILA_iRESET(7),

Q => NlwRenamedSig_OI_TRIG_OUT );

U0_I_YES_D_U_ILA_U_TRIG_OUT_U_TRIGOUT_FDRE : FDPE generic map( INIT => '1' ) port map ( C => CLK,

CE => U0_I_YES_D_U_ILA_iRESET(7), D => N0,

PRE => U0_I_YES_D_U_ILA_iCAP_EXT_TRIGOUT,

Q => U0_I_YES_D_U_ILA_iTRIG_OUT_SET );

U0_I_YES_D_U_ILA_I_DQ_U_DQQ_DLY_9_DLY_9_GEN_3_I_SRL T_NE_0_FF : FD

generic map( INIT => '0' ) port map ( C => CLK,

D => U0_I_YES_D_U_ILA_I_DQ_U_DQQ_temp(3),

Q => U0_I_YES_D_U_ILA_iDATA(3) );

U0_I_YES_D_U_ILA_U_RST_U_ARM_XFER_U_TFD RE : FDCE generic map( INIT => '0' )

port map ( C => CONTROL(0), CE => CONTROL(12),

CLR => U0J_YES_D_UJLA_U_RST_U_ARM_XFER_iCLR, D => CONTROL(12),

Q => U0_I_YES_D_U_ILA_U_RST_U_ARM_XFER_din_

latched );

U0_I_YES_D_U_ILA_U_RST_U_ARM_XFER_U_GEN_DELAY_ 1_U_FD : FDE

generic map( INIT => '0' ) port map (

C => CLK,

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

CE => N1,

D => U0_I_YES_D_U_ILA_U_RST_U_ARM_XFER_ iDOUT_dly_0_Q,

Q => U0_I_YES_D_U_ILA_U_RST_U_ARM_XFER_ iDOUT_dly_1_Q );

U0_I_YES_D_U_ILA_U_RST_U_POR : FDP generic map( INIT => '1' ) port map ( C => CLK, D => N0, PRE => N0,

Q => U0_I_YES_D_U_ILA_U_RST_POR ); U0_I_YES_D_U_ILA_U_TRIG_U_TM_G_NMU_0_U_M_U_MU_I_ OREG_I_YES_OREG_U_OREG : FDPE generic map( INIT => '1' ) port map ( C => CLK, CE => N1,

D => U0_I_YES_D_U_ILA_U_TRIG_U_TM_G_NMU_0_ U_M_U_MU_DOUT_tmp,

PRE => U0_I_YES_D_U_ILA_iRESET(1),

Q => U0_I_YES_D_U_ILA_U_TRIG_U_TM_G_NMU_0_ U_M_dout_tmp );

U0_I_YES_D_U_ILA_U_DOUT : LUT3 generic map( INIT => X«CA» ) port map ( I0 => U0_I_YES_D_U_ILA_iSTAT_DOUT,

11 => U0_I_YES_D_U_ILA_iDATA_DOUT,

12 => CONTROL(6), O => CONTROL(3) );

U0_I_YES_D_U_ILA_I_DQ_U_DQQ_DLY_9_DLY_9_GEN_3_I_SRL T_NE_0_DLY9 : SRL16

generic map( INIT => X«0000» )

port map ( A0 => N1, A1 => N1, A2 => N1,

A3 => N0, CLK => CLK, D => U0_iDATA(3),

Q => U0_I_YES_D_U_ILA_I_DQ_U_DQQ_temp(3) );

U0_I_YES_D_U_ILA_U_CAPSTOR_I_CASE1_I_NO_TB_I_RT1_I_R DADDR_U_HC_G_0_U_FDRE : FDRE generic map( INIT => '0' )

port map ( C => CONTROL(0), CE => CONTROL(6),

D => U0_I_YES_D_U_ILA_U_CAPSTOR_I_CASE1_I_ NO_TB_I_RT1_I_RDADDR_U_HC_D(0),

R => CONTROL(14), Q => U0_I_YES_D_U_ILA_U_ CAPSTOR_RD_ADDR(0) );

U0_I_YES_D_U_ILA_U_STAT_U_SMUX_NO_LUT6_I6_FJ_0_U_LU T3 : LUT3

generic map( INIT => X«CA» )

port map ( I0 => U0_I_YES_D_U_ILA_U_STAT_iSTAT(0),

11 => U0_I_YES_D_U_ILA_U_STAT_iSTAT(11),

12 => U0_I_YES_D_U_ILA_U_STAT_iSTAT_CNT(9),

O => U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T1(0) );

U0_I_YES_D_U_ILA_U_STAT_U_SMUX_NO_LUT6_I6_FK_0_U_M UXF5 і MUXF5

port map ( Ю => U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T1(0), I1 => U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T1(16), S => U0_I_YES_D_U_ILA_U_STAT_iSTAT_CNT(8),

O => U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T2(0) );

U0_I_YES_D_U_ILA_U_STAT_U_SMUX_NO_LUT6_I6_FL_0_U_M UXF6 : MUXF6

port map ( I0 => U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T2(0), I1 => U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T2(8),

S => U0_I_YES_D_U_ILA_U_STAT_iSTAT_CNT(7),

O => U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T3(0) );

U0_I_YES_D_U_ILA_U_STAT_U_SMUX_NO_LUT6_I6_FM_0_I_PT 1_U_MUXF7 : MUXF7

port map ( I0 => U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T3(0), I1 => U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T3(4),

S => U0_I_YES_D_U_ILA_U_STAT_iSTAT_CNT(6),

O => U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T4(0) );

U0_I_YES_D_U_ILA_U_STAT_U_SMUX_NO_LUT6_I6_FN_0_I_PT 1_U_MUXF8 : MUXF8

port map ( I0 => U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T4(0),

I1 => U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T4(2),

S => U0_I_YES_D_U_ILA_U_STAT_iSTAT_CNT(5),

O => U0_I_YES_D_U_ILA_U_STAT_U_SMUX_T5(0) ); U0_I_YES_D_U_ILA_U_STAT_U_STAT_CNT_G_9_U_XORCY : XORCY

port map (CI => U0_I_YES_D_U_ILA_U_STAT_U_STAT_ CNT_CI(9),

LI => U0_I_YES_D_U_ILA_U_STAT_U_STAT_CNT_S(9), O => U0_I_YES_D_U_ILA_U_STAT_U_STAT_CNT_D(9)); U0_I_YES_D_U_ILA_U_STAT_U_STAT_CNT_G_8_U_LUT : LUT1

generic map( INIT => X«2» )

port map ( I0 => U0_I_YES_D_U_ILA_U_STAT_iSTAT_CNT(8), O => U0_I_YES_D_U_ILA_U_STAT_U_STAT_CNT_S(8)); U0_I_YES_D_U_ILA_U_STAT_U_STAT_CNT_G_8_GnH_U_ MUXCY : MUXCY_L

port map ( CI => U0_I_YES_D_U_ILA_U_STAT_U_STAT_ CNT_CI(8),

DI => N0, S => U0_I_YES_D_U_ILA_U_STAT_U_STAT_

CNT_S(8),

LO => U0_I_YES_D_U_ILA_U_STAT_U_STAT_ CNT_CI(9) );

U0_I_YES_D_U_ILA_U_STAT_U_STATCMD_n : INV

port map ( I => U0_I_YES_D_U_ILA_U_STAT_iSTATCMD_CE, O => U0_I_YES_D_U_ILA_U_STAT_iSTATCMD_CE_n); U0_I_YES_D_U_ILA_U_STAT_U_STATCMD : LUT2 generic map( INIT => X«E» )

port map (I0 => CONTROL(4), I1 => CONTROL(5),

O => U0_I_YES_D_U_ILA_U_STAT_iSTATCMD_CE);

U0_I_YES_D_U_ILA_U_STAT_U_DIRTY : FDCP generic map(INIT => '0' ) port map ( C => CONTROL(0),

CLR => U0_I_YES_D_U_ILA_iARM,

D => U0_I_YES_D_U_ILA_U_STAT_DIRTY_dstat,

PRE => CONTROL(13),

Q => U0_I_YES_D_U_ILA_U_STAT_DIRTY_dstat ); U0_I_YES_D_U_ILA_U_STAT_U_ECE : FDRS generic map( INIT => '0') port map ( C => CLK,

D => U0_I_YES_D_U_ILA_U_STAT_EXTCAP_ENABLE_

dstat,

R => U0_I_YES_D_U_ILA_iARM, S => N0,

Q => U0_I_YES_D_U_ILA_U_STAT_EXTCAP_ENABLE_

dstat );

U0_I_YES_D_U_ILA_U_STAT_U_STATE0 : FDRE generic map( INIT => '0' ) port map ( C => CLK,

CE => U0_I_YES_D_U_ILA_U_STAT_DSTAT_load,

D => U0_I_YES_D_U_ILA_iCAP_STATE(0),

R => U0_I_YES_D_U_ILA_iARM,

Q => U0_I_YES_D_U_ILA_U_STAT_STATE_dstat(0));

U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_U_CAP_ADDRGEN_I_0 _TO_64K_I_SRL_U_SELX : SRL16E generic map( INIT => X«0000» ) port map ( A0 => N1, A1 => N1, A2 => N1,

A3 => N1, CE => CONTROL(9), CLK => CONTROL(0), D => U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_U_CAP_ ADDRGEN_cfg_data_vec(16),

Q => U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_U_CAP_ ADDRGEN_cfg_data(0) );

U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_U_CAP_ADDRGEN_ U_WCNT_LCMP_I_SRL16_U_GAND_SRL16_I_TW_GTE8_F_TW_ 0_I_NO_RPM_I_SRLT_EQ_2_U_SRLH : SRLC16E generic map( INIT => X«0000» )

port map ( A0 => U0_I_YES_D_U_ILA_iCAP_NUM_SAMPLES(4), A1 => U0_I_YES_D_U_ILA_iCAP_NUM_SAMPLES(5), A2 => U0_I_YES_D_U_ILA_iCAP_NUM_SAMPLES(6), A3 => U0_I_YES_D_U_ILA_iCAP_NUM_SAMPLES(7), CE => CONTROL(9), CLK => CONTROL(0),

D => U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_U_CAP_ ADDRGEN_U_WCNT_LCMP_I_SRL16_U_GAND_SRL16_cfg_data(1), Q => U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_U_CAP_ ADDRGEN_U_WCNT_LCMP_I_SRL16_U_GAND_SRL16_sel_1_Q, Q15 => U0_I_YES_D_U_ILA_U_G2_U_CAPCTRL_U_ CAP_ADDRGEN_U_WCNT_LCMP_I_SRL16_U_GAND_SRL16_tm pCfgData );

U0_I_YES_D_U_ILA_U_STAT_iSTAT_11_wg_cy_0_Q : MUXCY port map ( CI => N0, DI => N1,

S => U0_I_YES_D_U_ILA_U_STAT_iSTAT_11_wg_lut(0), O => U0_I_YES_D_U_ILA_U_STAT_iSTAT_11_wg_cy(0));

U0_I_YES_D_U_ILA_U_STAT_iSTAT_11_wg_lut_1_Q : LUT4 generic map( INIT => X«8000» ) port map (I0 => CONTROL(11), I1 => CONTROL(13),

I2 => CONTROL(8), I3 => CONTROL(14),

O => U0J_YES_D_UJLA_U_STAT_iSTAT_11_wg_lut(1));

U0_I_YES_D_U_ILA_U_CAPSTOR_I_CASE1_I_NO_TB_I_RT1_U_ RAM_G_BRAM_0_U_BRAM_ram_rt1_s1_s32_if_ram_rt1_s1_s32_i : RAMB16BWE generic map(

INIT_A => X«000000000»,

INIT_B => X«000000000»,

INITP_00 => X«0000000000000000000000000000000 000000000000000000000000000000000»,

DATA_WIDTH_B => 36,

SRVAL_A => X»000000000»,

INIT_00 => X«0000000000000000000000000000000 000000000000000000000000000000000»,

SIM_COLLISION_CHECK => «ALL»,

INITP_06 => X«0000000000000000000000000000000 000000000000000000000000000000000»,

INITP_07 => X«0000000000000000000000000000000 000000000000000000000000000000000,

WRITE_MODE_A => «WRITE_FIRST», WRITE_MODE_B => «WRITE_FIRST», DATA_WIDTH_A => 1,

SRVAL_B => X»000000000»

)

port map ( CLKA => CONTROL(0), CLKB => CLK,

ENA => CONTROL(6), ENB => N1,

SSRA => N0, SSRB => N0,

ADDRA(13) => U0_I_YES_D_U_ILA_U_CAPSTOR_RD_ ADDR(13),

ADDRA(0) => U0_I_YES_D_U_ILA_U_CAPSTOR_RD_

ADDR(0),

ADDRB(13) => U0_I_YES_D_U_ILA_iCAP_WR_ADDR(8),

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

ADDRB(0) => NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_ I_CASE1_I_NO_TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_ rt1_s1_s32_if_ram_rt1_s1_s32_i_ADDRB_0_UNCONNECTED,

DIA(31) => NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_ I_CASE1_I_NO_TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt 1_s1_s32_if_ram_rt1_s1_s32_i_DIA_31_UNCONNECTED,

DIA(0) => N0, DIB(31) => N0,

DIB(0) => U0_I_YES_D_U_ILA_iCAP_TRIGGER_OUT, DIPA(3) => NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_ I_CASE1_I_NO_TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt 1_s1_s32_if_ram_rt1_s1_s32_i_DIPA_3_UNCONNECTED,

DIPA(0) => NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_ I_CASE1_I_NO_TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt 1_s1_s32_if_ram_rt1_s1_s32_i_DIPA_0_UNCONNECTED,

DIPB(3) => N0,

DIPB(0) => N0,

WEA(3) => N0,

WEB(3) => U0_I_YES_D_U_ILA_iCAP_WR_EN,

WEB(0) => U0_I_YES_D_U_ILA_iCAP_WR_EN, DOA(31) => NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_ I_CASE1_I_NO_TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt 1_s1_s32_if_ram_rt1_s1_s32_i_DOA_31_UNCONNECTED,

DOA(0) => U0_I_YES_D_U_ILA_iDATA_DOUT, DOB(31) => NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_ I_CASE1_I_NO_TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt 1_s1_s32_if_ram_rt1_s1_s32_i_DOB_31_UNCONNECTED,

DOB(0) => NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_ I_CASE1_I_NO_TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt 1_s1_s32_if_ram_rt1_s1_s32_i_DOB_0_UNCONNECTED,

DOPA(3) => NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_ I_CASE1_I_NO_TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt 1_s1_s32_if_ram_rt1_s1_s32_i_DOPA_3_UNCONNECTED,

DOPA(0) => NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_ I_CASE1_I_NO_TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt 1_s1_s32_if_ram_rt1_s1_s32_i_DOPA_0_UNCONNECTED,

DOPB(3) => NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_ I_CASE1_I_NO_TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt 1_s1_s32_if_ram_rt1_s1_s32_i_DOPB_3_UNCONNECTED,

DOPB(0) => NLW_U0_I_YES_D_U_ILA_U_CAPSTOR_ I_CASE1_I_NO_TB_I_RT1_U_RAM_G_BRAM_0_U_BRAM_ram_rt 1_s1_s32_if_ram_rt1_s1_s32_i_DOPB_0_UNCONNECTED ); end STRUCTURE;

Для декларации сформированного ядра конфигурируемого логического анализатора chipscope_ila_v1_02_a в составе VHDL-описания разрабатываемого устройства необходимо включить в соответствующий раздел следующие выражения:

component chipscope_ila_v1_02_a PORT (

CONTROL : INOUT STD_LOGIC_VECTOR(35 DOWNTO 0);

CLK : IN STD_LOGIC;

DATA : IN STD_LOGIC_VECTOR(3 DOWNTO 0);

TRIG0 : IN STD_LOGIC_VECTOR(1 DOWNTO 0);

TRIG_OUT : OUT STD_LOGIC

);

end component;

Создание экземпляров сгенерированного логического анализатора в составе описания отлаживаемого устройства осуществляется с помощью следующего оператора:

<идентификатор_экземпляра_логического_анализатора>:

chipscope_ila_v1_02_a port map (

CONTROL => CONTROL,

CLK => CLK,

DATA => DATA,

TRIG0 => TRIG0,

TRIG_OUT => TRIG_OUT

);

Детализированные сведения о количестве триггеров (Flip Flop), таблиц преобразования (LUT), секций (Slices) и модулей блочной памяти ПЛИС Block RAM, используемых при автономной реализации ядра конфигурируемого логического анализатора chipscope_ila_v1_02_a, отображаются в информационной панели, вид которой приведен на рис. 12. ■

Окончание следует Литература

1. Зотов В. Средства внутрикристальной отладки цифровых устройств и встраиваемых микропроцессорных систем, разрабатываемых на базе ПЛИС с архитектурой FPGA фирмы Xilinx — ChipScope Pro // Компоненты и технологии. 2008. № 10.

Рис. 12. Вид информационной панели, содержащей сведения об объеме различных ресурсов кристалла, используемых для автономной реализации ядра конфигурируемого логического анализатора chipscope_ila_v1_02_a

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

3. Зотов В. Проектирование цифровых устройств, реализуемых на базе ПЛИС FPGA фирмы Xilinx, с использованием средств CORE Generator // Компоненты и технологии. 2006. № 12. 2007. № 1.

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

5. Зотов В. Embedded Development Kit — система проектирования встраиваемых микропроцессорных систем на основе ПЛИС серий FPGA фирмы Xilinx // Компоненты и технологии. 2004. № 4.

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

7. Зотов В. MicroBlaze — семейство 32-разрядных микропроцессорных ядер, реализуемых на основе ПЛИС фирмы Xilinx // Компоненты и технологии. 2003. № 9.

8. Зотов В. Система команд микропроцессорного ядра MicroBlaze // Компоненты и технологии.

2004. № 1-3.

9. Зотов В. Организация памяти микропроцессорного ядра MicroBlaze // Компоненты и технологии. 2004. № 5.

10. Зотов В. Создание проекта микропроцессорной системы на основе ядра MicroBlaze, реализуемой в ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2004. № 6.

11. Зотов В. Формирование спецификации аппаратной платформы микропроцессорной системы на основе ядра MicroBlaze, реализуемой в ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2004. № 7-8.

12. Зотов В. Реализация аппаратной платформы микропроцессорной системы, проектируемой на основе ядра MicroBlaze, в ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2004. № 9.

13. Зотов В. Разработка спецификации программных средств микропроцессорной системы на основе ядра MicroBlaze, реализуемой в ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии. 2005. № 1.

14. Зотов В. Разработка программного обеспечения микропроцессорной системы на основе ядра MicroBlaze, реализуемой в ПЛИС семейств FPGA фирмы Xilinx // Компоненты и технологии.

2005. № 2.

15. Зотов В. Разработка встраиваемых микропроцессорных систем на основе ядра MicroBlaze, реализуемых в ПЛИС семейств FPGA фирмы Xilinx, с помощью «мастера» Base System Builder Wizard // Компоненты и технологии. 2005. № 3-4.

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