Компоненты и технологии, № 3'2005
Продолжение. Начало в№ 1, 2 '2005
Программируемые аналоговые интегральные схемы Anаdigm
Часть 2. Загрузка конфигурации
Мы продолжаем серию статей, посвященных новому продукту на российском рынке электронных компонентов — программируемым аналоговым интегральным схемам (ПАИС). В этой статье рассмотрены вопросы загрузки данных конфигурации в ПАИС.
сброса, который перезагружает конфигурационную память и запускает процесс инициализации ПАИС. Если при этом на входах CS1b и CS2b присутствует низкий логический уровень, микросхема формирует необходимые сигналы для чтения данных из ПЗУ соответствующего типа. После завершения загрузки данных ПАИС автоматически активирует аналоговую структуру.
1.1. Загрузка данных из SPIEPROM
Типовая схема подключения стандартной SPI EPROM 25-й серии (Atmel AT25080, Microchip 25AA160 и т. п.) показана на рис. 1, временные диаграммы работы — на рис. 2, 3.
После включения питания и завершения процесса инициализации ПАИС на выводе CFGFLGb появляется логический ноль (активный уровень), который выдается на вход CS (Chip Select) SPI EPROM. На выводе OUTCLK/SPIMEM появляется последовательный поток данных (16-разрядный стартовый адрес, всегда равен 0х0000), предназначенный для установки SPI EPROM в режим считывания. Через определенный интервал времени ПАИС переходит в режим приема данных конфигурации по входу DIN, которые начинают загружаться в ОЗУ после приема байта синхронизации. Таким образом устройство обеспечивает стандартный протокол считывания данных из SPI EPROM.
В первый момент после подачи питания выводы ACLK, CFGFLGb и OUTCLK/ SPIMEM находятся в не-
Александр Полищук
1. Загрузки данных из внешнего ПЗУ
Наиболее простой способ конфигурирования программируемых аналоговых интегральных схем — загрузка данных конфигурации непосредственно из внешнего ПЗУ. ПАИС напрямую совместимы с 25-й серией SPI EPROM и 17-й серией Serial EPROM (в том числе FPGA EPROM).
После подачи напряжения питания на микросхему автоматически генерируется внутренний импульс
SPI ЕР ROM
AN 1/221Е04
MISO
SCLK
MOSI
CSb
<ібМГц П_П_П_
или
Рис.1. Загрузка данных из SPI EPROM
DIN ACTIVATE ERRb
PORb CFGFLGb
CS2b
EXECUTE
CSlb LCCb
ACLK DOUTCLK
DCLK modeoutclk
чг
і
й
Internal PORb
ACLK
CFGFLGb
OUTCLK
Power is first applied r- Internal Power-On Reset Asserts
r Oscillator starts within 10 mS of inernal PORb assertion r- Internal Power-On Reset Deasserts at 18 mS (typical)
гшлдлллліиу
LTUUUUUUUl
LnnJUinnnnnnnJUUUUl
Lnnnnnniinnnnnjuuir
DIN
- real instruction, OxCO —► (LSB first)
■ 16 bit starting
i, alweys 0x0000 _
----SPI EPROM Dout begins in high-Z state -
Рис. 2. Временная диаграмма инициализации и загрузки данных из SPI EPROM
-CXXXXXXXXXXXXXXXI
И--dammy_byte0-►И- dammybytel-►)
\+-Configuration data streams in here...-►
Компоненты и технологии, № 3'2005
aclk ишшшялляяшшл^
/— JZ
CFGFLGb
OUTCLK One of four internol gnolog clock goes to OUTCLK-»
«ЗСПШШШШ—
\*-- byte_N-l --►H--- dummy_byte -H
Рис. 3. Временная диаграмма завершения процесса загрузки данных
из SPIEPROM
определенном состоянии, пока не сгенерируется внутренний импульс сброса и не переведет их в исходное состояние (типовое время — около 30 мс). Время выхода на режим тактового генератора составляет менее 10 мс. Данные, приходящие на вход DIN, записываются в ОЗУ по заднему фронту синхросигнала ACLK.
После загрузки последнего конфигурационного байта данных (незначащего байта) флаг конфигурации снимается (вывод CFGFLGb переходит в третье состояние). Через один период синхросигнала ACLK выход OUTCLK/SPIMEM будет подключен к одному из четырех внутренних аналоговых генераторов или к выходу одного из компараторов, в зависимости от его программной конфигурации. Если этот вывод программно не используется, он перейдет в состояние низкого логического уровня.
1.2. Загрузка данных из Serial EPROM
Загрузка данных в ПАИС может быть осуществлена из Serial EPROM 17-й серии (Xilinx XC1700E, Atmel AT17xx, Altera ECP1, ECP2 и т. п.), которая обычно используется в качестве конфигурационной памяти ПЛИС. В отличие от SPI EPROM, этот тип памяти не требует передачи стартового адреса, поэтому вывод OUTCLK/SPIMEM к ней не подключается. Типовая схема подключения Serial EPROM показана на рис. 4, временные диаграммы работы — на рис. 5, 6.
Аналогично предыдущему случаю, после генерации внутреннего импульса сброса на выводе ACTIVATE присутствует логический ноль,
Serial
EPROM
55
OE/RESETb
СЕЬ
DATAOLJT
CLKIN
AN1/221E04
<16МГцП_П_П_
или
DIN ACTIVATE
ERRb
PORb CFGFLGb
CS2b
EXECUTE
CSlb
LCCb
ACLK DOUTCLK
DCLK MODEOUTCLK
чг
5
-^Configuring
g
5
““Configuring
Рис. 4. Загрузка данных из Serial EPROM
а ERRb переходит в третье состояние, а затем осуществляется потак-товая загрузка данных конфигурации в ПАИС.
Основное отличие при использовании FPGA EPROM от SPI EPROM заключается в том, что формируемый ПАИС 16-разрядный стартовый адрес в первом случае не используется, а данные из внешней памяти в ПАИС начинают поступать раньше, чем она готова их принять. Поэтому конфигурационные данные должны иметь префикс из четырех незначащих байтов перед байтом синхронизации и значащей информацией. САПР AnadigmDesigner2 автоматически добавляет требуемый префикс к данным конфигурации. Как было указано выше, процесс конфигурирования завершается через несколько тактов синхронизации после загрузки последнего (незначащего) байта, который также добавляется к конфигурационным данным автоматически при верификации проекта.
1.3. Загрузка данных из Serial EPROM при параллельной работе нескольких ПАИС
Загрузка конфигурации в систему из нескольких ПАИС может осуществляться из общей внешней памяти (FPGA или SPI EPROM). На рис. 7 показано типовое включение для цепочки из двух микросхем.
На выводы CS1b и CS2b первой ПАИС в цепочке всегда выдается низкий логический уровень, поэтому после включения питания она сразу же начинает процесс конфигурирования. Остальные микросхемы в этот момент находятся в режиме ожидания, поскольку на их входах CS1b присутствует высокий логический уровень. После того как первая ПАИС закончит загрузку конфигурации, ее выход LCCb перейдет в состояние логического нуля, разрешающего начало конфигурирования следующей за ней микросхеме. Аналогично будут последовательно сконфигурированы все ПАИС в цепи.
Соединение вместе всех двунаправленных выводов ERRb гарантирует, что если хотя бы одна из микросхем в процессе конфигурирования обнаружит ошибку и прервет загрузку, все ПАИС в цепи будут перезагружены в режиме первичной конфигурации и процесс повторится заново.
Все двунаправленные выводы с открытым стоком ACTIVATE также должны быть соединены вместе. Пока процесс конфигурирования каждой из микросхем не завершен, на ACTIVATE присутствует логический ноль. После того как последняя ПАИС завершит загрузку данных, все выводы ACTIVATE окажутся в третьем состоянии, и с приходом очередного такта синхронизации будут одновременно активированы аналоговые структуры всех микросхем.
На рис. 8 показана временная диаграмма процесса конфигурирования цепочки из двух ПАИС. Как видно из рисунка, общий сигнал с объ-
aclk
ACTIVATE
LCCb
din ХХХХХХХХХХХХХ>highz —
\<-------- byteN-1-------
Рис. 6. Временная диаграмма завершения процесса загрузки данных из Serial EPROM
-+Н-
— byteN -(dummy byte
r Power is first applied
Internal Power-On Reset Assert
r Oscillator starts within 10 mS of inernal PORb assertion
Internal Powei^On Reset Deasserts at 18 mS (typical)
Internal PORb
ERRb
ACTIVATE
гіііллшишіїшішішіллліїліїшііілшиїлії
SYNC byte prior to this point will not be recognized.
mjuuinnjijijijijijuinmijw
ACTIVATE goes low at Power-On Reset supplying an asserted low chip enable (CEb) to the Serial EPROM.
ACTIVATE remains low until confguration completes.
D,N eprom Dout is High-z —CXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX3
\< dummy_byteO —— dummy_bytel —►}< dummy_byte2 — dummy_byte3 —►+<- SYNC_byte -
Рис. 5. Временная диаграмма инициализации и загрузки данных из Serial EPROM
Компоненты и технологии, № 3'2005
Рис. 7. Загрузка данных из общей Serial EPROM при параллельной работе двух ПАИС
Serial EPROM
AN 1/221 Е04
<16 МГц
DIN ACTIVATE ERRb
PORb CFGFLGb
CS2B
EXECUTE
CSlb LCCb
ACLK DOUTCLK
DCLK OUTCLK MODE
чг
ANl/221 Е04
DIN ACTIVATE ERRb
PORb CFGFLGb
CS2B
EXECUTE
CSlb LCCb
ACLK DOUTCLK
DCLK OUTCLK MODE
SZ>
Chain
Configured
ACTIVATE
(write-AND)
LCCb
(devicel)
LCCb
(device2)
1
Doaaaaaoaoooo- ^z-
H device2_byteN-1— device2_byteN —И
(dummy postfix)
Рис. 8. Временная диаграмма процесса конфигурирования цепочки из двух ПАИС
din xxDaaaoaoaoooooaa
— devicel _byteN— device2_byte0 —Н
(dummy postfix) (dummy postfix)
Рис. 9. Использование общего конфигурационного синхросигнала в цепочке из двух ПАИС
й
AN1/221E04
<16 МГц П_П_П_
DIN ACTIVATE ERRb
PORb CFGFLGb
CS2B
EXECUTE
CSlb LCCb
ACLK DOUTCLK
DCLK OUTCLK MODE
AN 1/221Е04
Г
DIN ACTIVATE ERRb
PORb CFGFLGb
CS2B
EXECUTE
CSlb LCCb
ACLK DOUTCLK
DCLK OUTCLK MODE
Configured
Рис. 10. Использование внутреннего кварцевого генератора в цепочке из двух ПАИС
Serial
EPROM
OE/RESETb
CEb
DATAOUT
CLKIN
ANl/221 E04
<16 МГц
DIN ACTIVATE
ERRb
PORb CFGFLGb
CS2B
EXECUTE
CSlb
LCCb
ACLK DOUTCLK
DCLK . . OUTCLK
MODE
чг
AN1/221E04
DIN ACTIVATE ERRb
PORb CFGFLGb
CS2B
EXECUTE
CSlb LCCb
ACLK DOUTCLK
nrl „ OUTCLK DLLK MODE
Chain
Configured
единенных по схеме монтажное-И выводов ACTIVATE примет значение логической единицы только после того, как вторая микросхема завершит процесс конфигурирования.
Последовательность инициализации цепочки из нескольких ПАИС аналогична показанной на рис. 5. Отличие состоит в том, что до начала загрузки конфигурации во вторую ПАИС должно пройти несколько тактов синхросигнала, чтобы первая микросхема успела завершить этот процесс. Хотя первая микросхема не нуждается в последнем незначащем байте, он все равно присутствует как часть стандартной конфигурационной последовательности. В то же время вторая микросхема нуждается в таком байте для окончания загрузки конфигурации. Среда разработки AnadigmDesigner2 автоматически обеспечивает добавление требуемых незначащих байтов в начале и в конце последовательности конфигурационных данных.
Как показано на рис. 7, первая микросхема вырабатывает аналоговый синхросигнал (DCLK/16), который используется обеими ПАИС. Для обеспечения такого режима требуются различные установки конфигурации выводов первой и второй ПАИС [1].
Второй вариант синхронизации ПАИС в цепи показан на рис. 9.
Последовательное соединение выводов ACLK и DCLK позволяет конфигурировать обе микросхемы, используя один и тот же конфигурационный синхросигнал (входной синхросигнал, деленный на 16), что позволяет обеим ПАИС использовать более высокую частоту синхронизации. В этом случае бит синхронизации в конфигурационных данных должен иметь уровень логической единицы для второй ПАИС и логического нуля для первой. Дополнительные микросхемы должны подключаться аналогично второй ПАИС и бит синхронизации для них также должен иметь уровень логической единицы. Если в системе необходима высокая частота синхронизации и используется встроенный кварцевый генератор с внешним резонатором, то необходимо использовать подключение, показанное на рис. 10. Ведомые ПАИС должны быть сконфигурированы для использования ACLK в качестве входа аналоговой синхронизации. Первая ПАИС должна быть сконфигурирована для использования выхода DOUTCLK в качестве буферизированной версии DCLK [1].
2. Загрузка данных из микроконтроллеров и микропроцессоров
В приложениях, требующих динамического переконфигурирования аналоговой структуры, необходимо использовать внешний контроллер, позволяющий выполнять вычисления новых значений схемы, собирать эти значения в блок конфигурационных данных и передавать его в FPAA. Гибкий конфигурационный интерфейс устройства разработан так, чтобы принимать данные как от последовательных ПЗУ, так и от любого из трех основных типов интерфейсов микроконтроллеров и микропроцессоров: синхронного последовательного интерфейса (SSI), последовательного
Компоненты и технологии, № 3'2005
External Bus Micro
<40 МГц П_П_П_-
GPIO
DATA(O)
GPIO
Addr
Addr
Addr
Addr
Addr
Addr
CLK
WRb
Й
ANl/221 E04
ТЭ U T) CD
< Q
<40 МГц
DIN ACTIVATE
ERRb
PORb CFGFLGb
CS2b
EXECUTE
CSlb
LCCb
ACLK DOUTCLK
DCLK MODE OUTCLK
Configured
Рис. 13. Загрузка данных с микропроцессорной шины
периферийного интерфейса (SPI) или традиционной внешней периферийной процессорной шины данных.
2.1. Загрузка данных через интерфейсы SPI uSSI
С точки зрения загрузки данных в ПАИС интерфейсы SPI и SSI эквивалентны. Они содержат сигнал, индицирующий поступление данных, непосредственно сами данные и данные синхронизации. Единственное отличие SSI от SPI состоит в названии различных хостов, определяющих эти сигналы, а также частотах, на которых хост может получить доступ к ним. Функционально подключение обоих интерфейсов идентично (рис. 11, 12).
Микроконтроллеры с SPI-портами чуть более распространены, чем с SSI-портами. Слабой стороной SPI-портов является то, что они значительно медленнее, чем SSI, и редко поддерживают возможность прямого доступа к памяти (DMA). С другой стороны, SSI-порты часто работают на скорости шины микроконтроллера, или близкой к ней, и иногда поддерживают DMA-каналы.
В обоих случаях ПАИС выдает сигнал ACTIVATE на универсальный вывод GPIO микроконтроллера для индикации успешного завершения конфигурирования. На рис. 12 показан способ соединения GPIO микроконтроллера с входом EXECUTE ПАИС [1].
2.2. Загрузка данных с микропроцессорной шины
Хотя конфигурационный интерфейс является синхронным, особых требований к непре-
рывности конфигурационного синхросигнала нет. Поэтому возможно синхронизировать конфигурационный интерфейс с помощью стробирующего сигнала микропроцессора — типичного для большинства микропроцессорных шин данных. Типовая схема подключения ПАИС к шине МП показана на рис. 13.
Единственное отличие соединения с микропроцессорной шиной от SSI и SPI в том, что сигнал DCLK имеет вид строба, а не непрерывного синхросигнала.
Есть несколько вариантов управления ПАИС по входу CS2b. Как показано на рис. 13, для дешифрования адреса используется дополнительное устройство, выполняемое обычно на программируемой логике. Другой вариант — использование одиночной адресной строки. Несмотря на то что это, возможно, и не самый эффективный способ использования адресного пространства внешней памяти процессора, этого может быть достаточно для конкретной разработки. Во многих микропроцессорах предусмотрен выход сигнала выбора кристалла (chip select), который также можно использовать для управления ПАИС по входу CS2b.
Как и в случае интерфейсов SPI и SSI, можно использовать сигналы ACTIVATE или ERRb для получения подтверждения о передаче конфигурационных данных.
2.3. Дополнительные возможности при использовании сигнала ACTIVATE
В системах, состоящих из цепочки нескольких ПАИС, бывает необходимо, чтобы микросхемы оставались неактивными до тех пор,
пока все они не завершат процесс конфигурирования. Этого можно достичь с помощью сигналов ACTIVATE.
Рассмотрим рис. 7. После перезагрузки у каждой из ПАИС на выводе ACTIVATE присутствует низкий логический уровень. В этом состоянии он будет находиться до тех пор, пока не завершится процесс конфигурирования, после чего они одновременно перейдут в третье состояние. Только когда уровень на общей шине ACTIVATE станет высоким (что в рассматриваемом нами примере может случиться только после того, как оба устройства получат конфигурационные данные), аналоговая структура будет активирована.
ACTIVATE имеет дополнительный внутренний подтягивающий резистор, который может быть инициализирован посредством установки конфигурационных данных устройства. В цепочке из нескольких ПАИС рекомендуется использовать одиночные внешние резисторы.
2.4. Дополнительные возможности: чтение данных конфигурации из ПАИС (доступно только для AN221E04)
В большинстве приложений вывод LCCb используется для индикации завершения процесса конфигурирования. Для более продвинутых приложений может оказаться полезным обратное чтение данных конфигурации. После загрузки первичной конфигурации LCCb может выполнять функцию последовательного выхода данных.
Если ПАИС сконфигурирована на чтение, с выхода LCCb можно считывать содержимое конфигурационного ОЗУ. В стандартном состоянии на выходе LCCb появляется значение сигнала CS1b с задержкой в 8 тактов. Считываемые данные появляются на LCCb через 16 тактов синхросигнала. Пример включения ПАИС с реализацией функции считывания конфигурации будет показан в следующей статье.
В следующем номере журнала также будет рассмотрена структура конфигурационного протокола. ММ
Продолжение следует
Литература
1. Полищук А. Программируемые аналоговые интегральные схемы Anadigm. Часть 1. Структура и характеристики // Компоненты и технологии. 2005. № 2.