Применение перепрограммируемых конфигурационных приборов АТ17(А) фирмы ATMEL для ПЛИС FPGA фирм ALTERA и XILINX
Введение
Известны три основных типа электронных приборов, три кита, на которых сегодня держится практически вся электроника: микроконтроллеры популярной 8-разрядной серии MCS51, применяемые для управления не слишком быстрыми устройствами или для обработки сигналов по сравнительно простым алгоритмам, DSP-процессоры, используемые при сложных и скоростных вычислениях, и приборы программируемой логики PLD, вобравшие в себя всю промежуточную и сопрягающую логику. В последнее время в связи с выходом устройств FPGA высокой плотности, являющимся развитием кристаллов программируемой логики, стало возможным построение сложнейших устройств, получивших название система на кристалле, которые могут содержать внутри себя ядро мощного микропроцессора и типовые устройства связи с внешним миром (UART, параллельные порты ввода-вывода, таймеры, счетчики, ШИМ), память для хранения программ и данных и гибко трансформируемую логику PLD.
На этих устройствах можно создавать практически любые цифровые схемы, любого уровня сложности, что в сочетании со сравнительно невысокой ценой делает их сегодня незаменимыми и весьма популярными. Неудивительно поэтому, что существует группа конкурирующих компаний — производителей FPGA, выпускающих схожие по параметрам микросхемы, — Altera, Xilinx, Lucent, Atmel Corp. и другие. Cфера применения таких цифровых устройств неограниченно широка, однако разработка их — крайне сложный процесс.
Некоторые из производителей FPGA достигли больших успехов в совершенствовании внутренней структуры микросхемы, однако нечаянно или сознательно они упустили из виду другую проблему.
Все схемы, все содержимое FPGA хранится в стоящей рядом крошечной по своим размерам микросхеме последовательной памяти, которая каждый раз по включению питания загружает прообраз схемы внутрь FPGA (или, как принято говорить, конфигурирует FPGA), обмениваясь с ней тактовыми и статусными сигналами. И, хотя мощные программные пакеты, созданные для дизайна, моделирования и отладки схем, выполняемых на FPGA, позволяют упростить процесс разработки, однако всех задач, конечно же, не решают. Порой бывает трудно предусмотреть все возможные варианты взаимодействия разрабатываемого прибора с окружающим миром и тогда приходится пересматривать содержимое FPGA, перепрограммировать память.
Сколько раз делаются изменения кода, прежде чем проект становится товаром, продукцией? Однажды? Дважды? Сотню раз? Некоторые разработчики по незнанию или по привычке все еще используют OTP EPROM (one time programmed — однократно программируемое ПЗУ) для конфигурации FPGA. Это нерационально, расточительно и хлопотно. Каждый раз, делая изменения кода, они должны удалить OTP EPROM из платы, выбросить его и заменить новым. (Эти OTP следовало бы расшифровывать как Одна Трата Ресурсов!)
Оказывается, возможны и другие решения: новая серия перепрограммируемых конфигураторов AT17(А) фирмы Atmel позволяет, используя ISP (in system programming — внутрисистемное программирование) программировать устройство много раз, даже без удаления конфигуратора из платы. Конфигураторы серии AT17(А) фирмы Atmel гарантируют 10 000 циклов записи. Они работают фактически с любым FPGA (включая собственную серию FPGA Atmel) и применимы в системах с напряжением питания 3,3 и 5 В.
Опишем применение перепрограммируемых конфигураторов Atmel вместо конфигураторов ЕРС1064, ЕРС1213, ЕРС1441, ЕРС1 и ЕРС2 фирмы Altera и аналогичных ОТР EPROM фирмы Xilinx.
Конфигураторы фирмы Atmel
Конфигурационная ЕЕРRОМ (конфигуратор) для устройств FPGA является последовательной памятью, которая используется для загрузки образа FPGA.
Серия конфигурационных приборов фирмы Atmel обладает следующими особенностями:
- совместимость с AT6000, ATT3000 (Atmel), EPF6K, EPF8К, FLEX10K, ACEX (Altera), XC2000, XC3000,XC4000, XC5000 (Xilinx), Lucent ORCA FPGA, MPA1000;
- прямая замена для OTP EPROM фирм-производителей FPGA;
- конкурентоспособность с OTP EPROM по стоимости;
- широкий выбор объемов: от 64 К до 1 M;
- программируемая полярность сигнала Reset позволяет адаптироваться к любым FPGA;
- различные виды конструктивного исполнения: DIP, PLCC или SOIC;
- простой интерфейс к FPGA требующий только одной ножки ввода-вывода;
- программируемость «в системе» через 2-проводную шину;
- серия поддерживается стандартными промышленными программматорами;
- высокая скорость конфигурации FPGA (15 МГц);
- время программирования — 2 секунды;
- каскадное соединение для программирования больших FPGA;
- сигнал «Готов» гарантирует достоверность включения питания системы;
- свойство защиты записи позволяет использовать незанятую часть памяти для хранения данных в энергонезависимой памяти;
- малая потребляемая мощность;
- 3,3-вольтовая версия;
- эмуляция последовательных программируемых ПЗУ 24CXX.
В качестве примера в табл. 1 приведено сравнение перепрограммируемых конфигураторов фирмы Atmel с OTP EPROM фирмы Altera.
Atmel AT17A | Altera EPC 1 |
|
ISP (программируемость в системе) | Да | Нет 3 |
Перепрограммируемость | Да | Нет 3 |
Наличие питания 3,3 В | Да | Да |
ISP (программируемость в системе) при питании 3,3 В | Да | Нет 3 |
Корпус 8 ножек DIP | Да 5 |
Да 4 |
Корпус 20 ножек PLCC | Да 2 |
Да |
Каскадируемость | Да | Да |
Прибор 128К х 1 | Да | Нет |
Примечания:
- Источник: Altera 1998 databook (относится только к EPC1064, EPC1213, EPC1441 и ЕРС1)
- Приборы серии Atmel АТ17А в корпусе PLCC.20 прямо совместимы по цоколевке с приборами ЕРС.
- Перепрограммируемость для прибора ЕРС2 ограничена.
- Нет в ЕРС2.
- Серия Atmel АТ17 совпадает с приборами фирмы Altera для корпусов DIP.8.
Как видно из таблицы, конфигураторы фирмы Atmel обладают рядом преимуществ в сравнении с OTP EPROM фирмы Altera.
Примерно такая же картина вырисовывается при сравнении их с OTP EPROM фирмы Xilinx.
Наличие такого качества, как программируемость в системе, позволяет выполнять изменения в проектах без опасения увеличить стоимость устройства на стоимость OTP EPROM, заменяемого после каждой модификации. Это, в свою очередь, отражается на легкости внесения изменений в схему и сокращении времени разработки, что сказывается на снижении стоимости проекта и повышении его конкурентоспособности.
Применение конфигураторов Atmel с FPGA фирмы Altera
Серия АТ17А фирмы Atmel имеет более широкий диапазон плотностей, чем ЕРС фирмы Altera, что позволяет в некоторых случаях использовать микросхемы памяти с меньшим объемом, то есть более рационально. Требования к памяти, применяемой для программирования FPGA фирмы Altera серии FLEX8000, приведены в табл. 2.
Cерия FLEX8000 | Конфигурационных бит | Память ОТР Altera | ISP EEPROM Atmel |
EPF8282 | 40K | EPC1064 | AT17C/LV65(A) |
EPF8452 | 64K | EPC1213 | AT17C/LV65(A) |
EPF8636 | 96K | EPC1213 | AT17C/LV128(A) |
EPF8820 | 128K | EPC1213 | AT17C/LV128(A) |
EPF81188 | 192K | EPC1213 | AT17C/LV256(A) |
EPF81500 | 250K | EPC1213 x 2 | AT17C/LV256(A) |
В табл. 3 приведены сведения по конфигураторам используемым при программировании FPGA Altera серии FLEX10K.
FLEX10K | Число бит | ОТР прибор фирмы Altera | EEPROM прибор фирмы Atmel |
EPF10K10 | 115 K | EPC1441 | AT17C/LV512A |
EPF10K20 | 225 K | EPC1441 | AT17C/LV512A |
EPF10K30 | 368 K | EPC1441 | AT17C/LV512A |
EPF10K40 | 488 K | EPC1 | AT17C/LV512A |
EPF10K50 | 609 K | EPC1 | AT17C/LV010A |
EPF10K70 | 881 K | EPC1 | AT17C/LV010A |
EPF10K100 | 1172 K | EPC2 или EPC1 х 2 | AT17C/LV020A или AT17C/LV010A х 2 |
EPF10K130 | 1563 K | EPC2 или EPC1 х 2 | AT17C/LV020A или AT17C/LV010A х 2 |
EPF10K200 | TBD | EPC2 х 2 или EPC1 х 3 | AT17C/LV020A х 2 или AT17C/LV010A х 3 |
EPF10K500 | TBD | EPC2 х 2 или EPC1х 4 | AT17C/LV020A х 2 или AT17C/LV010A х 4 |
Примечание: ЕРС2 имеет объем 1 695 680 х 1, тогда как объем AT17C/LV020A = 2 097 152 бит, то есть это полные 2-мегабитные приборы.
Табл. 4 содержит требования к памяти для приборов Altera FLEX6K при использовании компонентов фирмы Atmel серии АТ17А.
FLEX6K | Число бит | ОТР EPROM фирмы Altera | EEPROM прибор фирмы Atmel |
EPF6010 | 160 K | EPC1441 | AT17C/LV512A |
EPF6016 | 260 K | EPC1441 | AT17C/LV512A |
EPF6024 | 420 K | EPC1441 | AT17C/LV512A |
Совместимость ножек (DIP-8)
Конфигураторы AT17 и Altera EPC1064/EPC1213 в корпусе DIP-8 совместимы по цоколевке. Конфигураторы Atmel могут использоваться для конфигурирования FPGA путем установки прямо в панельку EPC1064/EPC1213 без какого-либо изменения схемы. Табл. 5 показывает соответствие названия ножки конфигуратора Atmel названию ножки Altera.
Номер ножки | Altera DIP-8 | Atmel DIP-8 | Замечания |
1 | DATA | DATA | Cовместимы |
2 | DCLK | CLK | Cовместимы |
3 | (WP)OE | (WP)RESET/OE | Совместимы, если в приборе Atmel полярность Reset — активный низкий (ОЕ — акт. высокий) |
4 | NCE | CE | Cовместимы |
5 | GND | GND | Cовместимы |
6 | NCASC | CEO(A2) | Cовместимы |
7 | Vpp | SER_N | Ножка OTP EPROM фирмы Altera используется для ISP в АТ17А фирмы Atmel |
8 | Vcc | Vcc | Cовместимы |
Номер ножки | Altera PLCC—20 | Atmel PLCC—20 | Замечания |
1 | TDO | — | Особенность ЕРС2 |
2 | DATA | DATA | Совместимы |
3 | ТСК | — | Особенность ЕРС2 |
4 | DCLK | DCLK | Совместимы |
5 | — | WP1 | Особенность АТ17с512А/010A |
5 | VccSEL | — | Особенность ЕРС2 |
8 | OE | OE | Совместимы, когда полярность Reset — акт. низкий (ОЕ — высокий) в приборах Atmel |
9 | nCS | nCs | Совместимы |
10 | GND | GND | Совместимы |
11 | TDI | — | Особенность ЕРС2 |
12 | NCASC | NCASC(A2) | Совместимы |
13 | NINIT_CONFIG | — | Особенность ЕРС2 |
14 | VppSEL | — | Особенность ЕРС2 |
15 | — | READY | Особенность приборов Atmel |
18 | Vpp(программирующая ножка) | SER_EN | Ножка OTP EPROM фирмы Altera используется для ISP в АТ17А фирмы Atmel |
19 | TMS | — | Особенность ЕРС2 |
20 | Vcc | Vcc | Cовместимы |
Совместимость ножек для корпусов PLCC-20
Приборы AT17020A, AT17C010A, AT17C512A совместимы по ножкам с приборами ЕРС2, ЕРС1, ЕРС1441.
Приборы AT17C65A, AT17C128A, AT17C256A совместимы по ножкам с приборами EPC1064, EPC1213.
Замена однократно программируемых приборов фирмы Altera на перепрограммируемые приборы серии AT17A фирмы Atmel
В выборе устройства и разработке схемы для любого FPGA ключевыми вопросами являются:
- соответствие числа битов программы FPGA объему памяти конфигуратора;
- совместимость цоколевки и применимость конструктивного исполнения;
- конфигуратор ведущий или ведомый ( важно только для 512A/010A/020A/002A);
- существование слабого внутреннего подтягивающего или опускающего резисторов на ножках FPGA или конфигуратора;
- предупреждение столкновений для тактовых сигналов в течение ISP;
- предупреждение столкновений на линиях сигналов RESET/OE и CE (nCS) в течение ISP (только для 65/128/256).
Приборы ЕРС фирмы Altera могут замещаться конфигурационными перепрограммируемыми приборами фирмы Atmel серии АТ17А путем трансляции программных файлов из формата Altera в формат Atmel. Для облегчения этого процесса Atmel предлагает программную утилиту CPS, которую можно свободно получить на сайте Atmel. Она работает под операционными системами Windows’95/98/NT. Эта программа выдает Intel (MCS-86) Нех-файл, который может быть прочитан любыми стандартными программаторами. При работе с программатором ATDH2200E фирмы Atmel и этой программой, данные могут загружаться непосредственно в конфигураторы Atmel (см. рис. 9).
Серия конфигураторов АТ17А может непосредственно применяться в устройствах с FPGA фирмы Altera, предоставляя пользователю возможность перепрограммирования.
Применение конфигураторов показанное на рис. 3–5 аналогично соответствующим рекомендациям по применению ОТР EPROM Altera. Отличие существует лишь на рис. 4 и 5, где рекомендуется использование RC-цепочки на входе nCONFIG для того, чтобы ввести задержку в 100–200 мс, обычно устанавливаемую приборами ОТР EPROM Altera. Эта задержка позволяет источнику питания установить нормальный уровень напряжения на плате до того, как будет выполнен сеанс конфигурированния FPGA.
Примеры применения конфигураторов Atmel с FPGA фирмы Xilinx для приборов с внутрисистемной программируемостью (ISP)
FPGA фирмы Xilinx (например, XC4000, Spartan, Virtex) могут взаимодействовать с конфигураторами AT17 без особых хлопот, однако, конфигураторы большого объема серии AT17 (512 К, 1 M и 2 M) имеют упрощенный 3-проводной интерфейс, очень полезный для ISP. Чтобы обеспечить необходимый объем памяти для каскадного подключения FPGA или для FPGA большого объема, конфигураторы AT17 могут быть расположены каскадом. Рис. 6 показывает пример применения конфигуратора небольшого объема AT17 для одного XC4000 FPGA.
Мультиплексор ИС 74HC (T) 157 подключает сигналы конфигуратора или к FPGA или к разъему ISP. Опускающий резистор на ножке конфигуратора A2 обеспечивает адресование входного потока данных в процессе программирования.
SER_EN служит как управляющий сигнал для выбора ввода мультиплексора и определяет эксплуатационный режим СППЗУ. В конфигураторах малого объема AT17, для программирования информации пользователя и установки полярности сброса необходимо ввести управление для выводов CE и RESET/OE.
В семействе XC4000 FPGA на линиях Program и Done существует внутренний нагрузочный резистор.
Действительно ли мультиплексор обязателен для ISP AT17 65 К, 128 К и СППЗУ 256 К? Не обязательно. Если вы не желаете применять ИС мультиплексора в процессе ISP (Atmel AT40K, приборы Xilinx и Lucent), то вы должны запрограммировать полярность сброса. Для новых устройств низкой плотности с литерой B после кода даты мультиплексор не требуется.
Для AT17 конфигураторов с низкой плотностью управление cигналами CE и RESET/OE необходимо для программирования информации пользователя и установки полярности Reset. Сложность устройства с возможностью внутрисхемного программирования значительно снижается при использовании конфигураторов АТ17 с большим объемом памяти, что и отражено на рис. 7. Диодная связь между выводом Program ХС4000 и SER_EN сигналом позволяет внешнему программатору переводить FPGA в состояние сброса в процессе программирования. Это позволяет уйти от конфликтов на линии SCLK. Вывод конфигуратора READY может быть также присоединен к ножке Program ХС4000 для того, чтобы переводить FPGA в ожидание в процессе сброса, для того, чтобы конфигуратор уверенно завершил свой цикл при включении питания. На линиях Program и Done не требуется устанавливать опускающий резистор, поскольку он существует внутри FPGA ХС4000. Он может быть подключен пользователем при помощи специальной опции в программном пакете Xilinx.
Специализированные выводы WP1 и WP2 для 512/010/002 имеют слабые внутренние опускающие резисторы и если остаются неподключенными, то позволяют таким образом удобно отключать защиту записи этих конфигураторов. Точно так же на вводе A2 для конфигураторов 512/010/002 в течение ISP не требуетсявнешний опускающий резистор, поскольку там есть слабый внутренний опускающий резистор.
В простых каскадных приложениях, применяющих два СППЗУ (рис. 8), ввод A2 может использоваться как адресующий, задавая логический «0» для одного СППЗУ и логический уровень «1» для другого СППЗУ. Утилита программирования может изменять A2 бит с целью выбора одного из этих двух СППЗУ.
Устройства, применяющие больше чем два СППЗУ должны использовать A2 ввод как выбор кристалла. В дополнение к внешней декодирующей схеме, которая должна выборочно управлять каждым низким A2 вводом, на каждом A2 требуются нагрузочные резисторы. Рис. 8 иллюстрирует ISP для двухкаскадного устройства AT17C512/010/002S, использующего FPGA типа XC4000.
Примеры применения конфигураторов Atmel с FPGA фирмы Altera для приборов с внутрисистемной программируемостью (ISP)
Конфигураторы серии АТ17А допускают программирование в системе, то есть тогда, когда они уже установлены на плату. Далее приведены примеры схем, где программатором поддерживаются следующие функциональные возможности:
- считывание кода прибора и кода производителя;
- программирование прибора;
- проверка прибора;
- установка полярности сигнала Reset.
Хотя конфигураторы фирмы Atmel могут быть запрограммированы различными способами, например с помощью микроконтроллера или под управлением PLD-устройства, однако легче всего это можно сделать обладателю фирменной платы программатора ATDH2200.
Для ISP-программирования эта плата используется как программируемый интерфейс между компьютером и программируемым прибором. Передача данных из или в конфигуратор может выполняться через кабель подключенный к плате и к разъему ИС.
Хотя FPGA фирмы Altera серии FLEX (EPF10K, EPF6K, EPF8K) могут конфигурироваться любыми конфигураторами АТ17А, некоторые приборы, такие, например, как приборы высокой плотности 512 К и 1 М, имеют простейший 3-проволочный интерфейс, весьма полезный при ISP. Рис. 10 служит примером применения АТ17А для одиночных микросхем EPF6K. Мультиплексор (например, 74НСТ157) подключает сигналы конфигуратора или к FPGA, или к ISP разъему.
Чтобы обеспечить необходимый объем памяти, для FPGA высокой плотности конфигураторы AT17(A) могут быть расположены каскадом (см. рис. 5 и рис. 11). Резистор на ножке A2 конфигуратора обеспечивает заданное адресование потока данных в процессе программирования. Для того чтобы выделить отдельный конфигуратор на общей последовательной шине, бит A2 от программатора должен соответствовать уровню на ножке A2 предназначенного приемника. Для пользователей утилиты CF (Atmel) бит A2 может изменяться, используя переключатель /J < L | H >.
SER_EN служит как управляющий сигнал для выбора входа мультиплексора и определяет режим работы СППЗУ. Для конфигураторов AT17A с низкой плотностью управление ножками nCS и OE необходимо для программирования информации пользователя и установки полярности сигнала сброса.
В то время как nCONFIG может быть прямо связан с VCC, рекомендуется использовать RC-задержку или подключать его к Reset (активный низкий) на FLEX10K/6K. Это гарантирует, что VCC примет нормальные действующие уровни до начала конфигурации. Так как конфигураторы AT17A с низкой плотностью в процессе конфигурации не могут вырабатывать необходимый синхросигнал (то есть действовать как ведущий в системе), тактовые сигналы должны быть получены из-вне — от программатора, микропроцессора или от FPGA.
Как видно из рис. 10–12, сложность схемы ISP значительно снижается при работе с конфигураторами AT17A высокой плотности. Диодное подключение между ножкой nCONFIG EPF8K и сигналом SER_EN позволяет внешнему программатору перевести FPGA в состояние сброса в течение ISP. Это устраняет потенциальную возможность конфликта на линии DCLK.
Вывод READY (необязательная особенность) конфигуратора может также быть связан с ножкой nCONFIG FPGA, чтобы вынудить FPGA оставаться в состоянии сброса, пока конфигуратор завершает свои действия на цикле сброса.
Для приборов Altera FLEX8K (рис. 12) внутренний генератор AT17A конфигуратора высокой плотности должен быть заблокирован. Это должно быть выполнено только однажды перед включением устройства или в течение ISP. Подключением nCS к разъему ISP (не показано). Еще один способ запретить формирование тактовых сигналов в АТ17512A/010A/020A/002A — это программное запрещение, которое описывается в документации [2].
Если специализированный вывод WP1 остается неподключенным, то слабый внутренний опускающий резистор в AT17C512A/010A безопасно отключает защиту записи этих конфигураторов. Точно так же в течение ISP внешний опускающий резистор на A2 входе не требуется, так как на этом выводе имеется слабый внутренний опускающий резистор.
В простых каскадных схемах включения конфигуратора, состоящих из двух EEPROM (рис. 11), вход A2 может использоваться как адресная линия, позволяющая устанавливать логический 0 для одного СППЗУ и логическую 1 — для другого. Программирующая утилита может изменять бит A2, вставляя в поток данных сообщения для того, чтобы адресовать любое из этих двух СППЗУ. Устройства, применяющие больше чем два СППЗУ, должны использовать ножку A2 как выбор кристалла. В дополнение к внешней схеме декодера, который должен выборочно управлять низким для каждого A2 входа требуются нагрузочные резисторы на каждом A2.
Следует все же отметить, что все это справедливо для печатных плат с корректно выполненной разводкой линий земли и питания. В устройствах, где уровни помех на сигналах довольно велики, нужно иметь в виду следующее:
В микросхему ЕРС1 встроена схема контроля ошибок, и она имеет регистр, загружаемый длиной конфигурирующего файла. Если ЕРС1 посылает целостную программу и не обнаруживает, что сигнал CONF_DONEстал высоким, то будет решено, что FLEX10K получил неправильные данные и, как следствие, прибор ЕРС1 вызовет повторную процедуру конфигурации, установив низкий импульсный уровень на ножке ОЕ. ПосколькуОЕ соединяется с nSTATUS в FLEX10K, то произойдет рестарт процесса конфигурации (если включена опция Auto-Restart on Frame Error).
Конфигурационные приборы фирмы Atmel предполагают существование такой схемы в конфигурируемом приборе, то есть во FLEX10K, однако поскольку она находится именно в ЕРС1, то они могут некорректно обрабатывать ошибку. Если сбой в процессе конфигурации существует, то FLEX 10K будет обнаруживать его с помощью процедуры циклического контроля (СRC) и устанавливать линию nSTATUS в низкое состояние независимо от того, прибор какой именно фирмы (Altera или Atmel) был применен. Однако если из-за наличия помех сигнал CONF_DONE не перешел в высокое состояние, а nSTATUS не стал низким, то прибор ЕРС1 захватил бы эту ошибку и вызвал реконфигурацию, но приборы фирмы Atmel этого не сделают. При достаточно квалифицированно выполненной разводке печатной платы проблем быть не должно.
В статье Д. Тимонина «Еще раз о конфигурировании ПЛИС Altera» [8], которую можно найти по адресу
http://www.dian.ru/pdf/st50-52.pdf в рубрике «Цифровая техника», описана разработанная автором схема, позволяющая выполнять программирование конфигуратора АТ17С/LV512/010 фирмы Atmel через слегка переделанный байт-бластер фирмы Altera. Там же описана схема переделаного бластера. В любом случае, знакомство с этой статьей представляется весьма полезным для всех, кто работает с устройствами FPGA.
Установка полярности RESET
Все конфигураторы в ряде AT17 и AT17A имеют способность изменять полярность RESET/OE. Это требуется, чтобы позволить устройствам должным образом конфигурировать различные семейства FPGA. Заданное по умолчанию состояние — активный низкий OE и активный высокий RESET.
Конфигураторы 65/128/256 используют различные алгоритмы с конфигураторами 512/010/020/002.
Программирование полярности RESET/OE конфигураторов 65/128/256
Установка полярности активный высокий OE (активный низкий RESET): Запишите байт данных FF по адресу 3FFFH. С двумя дополнительными ножками, используемыми при программировании поступите следующим образом:
Установка полярности активный низкий OE (активный высокий RESET): Запишите байт FF по адресу 3FFFH. С двумя дополнительными ножками, используемыми при программировании, поступите следующим образом:
Подтверждение (проверка) полярности RESET:
Включите устройство, должно наблюдаться следующее:
Если при этом ножка ДАННЫЕ находится в третьем состоянии, то RESET/OE запрограммирован как активный высокий OE (активный низкий RESET); если вывод ДАННЫЕ читает «0» или «1», то RESET/OE — активный низкий OE (активный высокий RESET).
Программирование полярности RESET/OE для конфигураторов 512/010/020
Установка полярности активный высокий OE (активный низкий RESET): Запишите четыре байта FF FF FF FF по адресам 20000–20003.
Установка полярности активный низкий OE (активный высокий RESET): Запишите четыре байта 00 00 00 00 по адресам 20000-20003.
Подтверждение полярности RESET/OE 512/010/020 конфигураторов: выполните чтение четырех байтов данных по адресам 20000–20003. Если данные — 00 00 00 00, тогда RESET запрограммирован для активный низкий OE (активный высокий — RESET); если данные — FF FF FF FF, тогда RESET запрограммирован как активный высокий OE (активный низкий — RESET).
Программирование полярности RESET/OE для конфигуратора 002
Установка полярности активный высокий OE (активный низкий RESET): Запишите четыре байта FF FF FF FF по адресам 400000–400003.
Установка полярности активный низкий OE (активный высокий RESET): Запишите четыре байта 00 00 00 00 по адресам 400000–400003.
Проверка полярности RESET/OE конфигуратора 002: выполните чтение четырех байтов данных по адресам 400000–400003. Если читаются данные 00 00 00 00, тогда запрограммировано активный низкий OE (активный высокий — RESET); если данные — FF FF FF FF, тогда запрограммирован активный низкий RESET.
Замечания: при программировании полярности RESET на конфигураторах AT17 и AT17A
- Состояния упомянутых выше ножек должно поддерживаться в течение полного цикла записи.
- После того как полярность RESET изменена, питание конфигуратора должно быть выключено.
В заключение несколько чаще всего встречающихся типовых вопросов и ответов по этой теме
Вопрос: Смогу ли я запрограммировать два pof-файла (*.pof и *_1.pof) в Atmel AT17LV002A или AT17LV020A СППЗУ. В инструментальном пакете Altera Quartus имеются два параметра выбора. Первая опция позволяет выбрать режим конфигурации, и я выбрал (правильно) PS (пассивный последовательный) режим. Это позволяет мне конфигурировать устройство Altera программируемым ПЗУ, микропроцессором или кабелем загрузки. Вторая установка должна выбрать устройство конфигурации. Так как имя устройства Atmel (AT17LV020A или AT17LV002A), очевидно, не предусматривается в программном обеспечении Altera, то я выбрал EPC2 устройство, полагая, что AT17LV020A способно подменить семейство EPC. Однако программное обеспечение Quartus решило, что изображение 20K200E размером почти 2 Мб слишком велико, чтобы вписаться в единственную EPC2 объемом 1,6 Мб, и поэтому оно разбило изображение на *.pof, и *_1.pof.
Ответ: В будущей версии CPS будет включена опция, позволяющая объединить два pof-файла и затем конвертировать этот файл в один bst-файл или один hex-файл.
Пока же мы рекомендовали бы проделать следующее: вы можете использовать опцию /B в программе Atmel CPS, чтобы преобразовать файлы *.pof и *_1.pof в два bst-файла. (Один файл преобразуется за один раз.) Теперь вы сможете открыть оба bst-файла текстовым редактором. Вставьте содержимое второго bst-файла в конец первого и сохраните в одном-единственном bst-файле. Пожалуйста обратите внимание, что порядок для копирования содержания файла очень важен. Наконец, вы можете программировать объединенный bst-файл в AT17LVXXXA СППЗУ, используя процедуру /P с установкой параметра «Семейство FPGA» в «Другие AT6K».
Если вы используете программатор иного вида, чем программатор Atmel ATDH2200, вы можете послать два pof-файла в группу Atmel «Приложения конфигураторов» по адресу Они будут использовать программное обеспечение CPS с вышеупомянутой процедурой, чтобы запрограммировать преобразованный и объединенный bst файл в Atmel AT17 ряд СППЗУ. Затем они будут использовать какой-либо иной программатор, чтобы прочитать данные от устройства и сохранят результат в hex (шестнадцатеричный объектный файл Intel MSC), который является популярным форматом и который будет принят любыми программаторами.
Замечание: CPS — бесплатное программное обеспечение, которое может быть загружено с сайта Atmel по адресу:
http://www.atmel.com/atmel/products/prod185.htm или с российского сайта:
http://www.atmel.ru/Binary/spcinstall.exe.
Вопрос: Если я конфигурирую только одно устройство FLEX 10K, APEX, ACEX или Mercury, что я должен делать с конфигурационным выводом nCEO?
Ответ: В схеме конфигурации только с одним устройством FLEX 10K, APEX, ACEX или Mercury вывод nCEO не используется, поскольку он работает так, как работал бы в цепочке конфигурационных устройств. Поэтому оставьте вывод nCEO свободным и работайте с ним как с зарезервированным выводом.
Как заявлено в файле отчета, ножка nCEO — специализированный конфигурационный вывод, который не может использоваться после конфигурации как ножка ввода-вывода. Ножка nCEO устанавливается на высоком уровне перед конфигурированием устройства и переходит в низкое состояние после того, как устройство успешно конфигурировано. Вы можете использовать ножку nCEO, чтобы воздействовать на вывод nCE другого FLEX 10K, APEX, ACEX или Mercury в цепочке устройств.
Вопрос: Какое напряжение я должен подключить к ножкам Vcc устройств конфигурации EPC1, EPC2 или EPC1441 при конфигурировании устройства FLEX с различными напряжениями VCCIO и VCCINT?
Ответ: В устройствах конфигурации EPC1, EPC2, или EPC1441 ножка VCC может быть связана с напряжением питания 3,3 или 5 В, поскольку все устройства FLEX 10K и АРЕХ имеют вводы с допуском 5 В.
Когда ножки VCC у EPC1 или EPC1441 связаны с 3,3 В, вы должны включить опцию «Использование низковольтовой конфигурации EPROM» в диалоговом окне Global Project Device Options (меню Назначения) перед генерацией файла программирования для конфигурирующего ПЗУ.
Напряжение питания EPC2 устанавливается подключениями VCCSEL и VPPSEL, а не через программное обеспечение.
Литература
- Configuring SRAM-Based LUT Devices. Altera Application Note 116.
- Programming Specification for Atmel’s AT17 and AT17A Series FPGA Configuration EEPROMs. Atmel. FPGA Configuration EEPROM Programming Specification. Application Note Rev. 0437H-03/01.
- AT17A Series Conversions from Altera FPGA Serial Configuration Memories. Atmel AT17A Series FPGA Configuration EEPROM Memory. Application Note FPGAs Rev. 0910B-10/99.
- FPGA Configuration EEPROM 65K, 128K and 256K AT17C65 AT17C128 AT17C256. Atmel Rev. Doc. 0391E-05/97.
- In-System Programming Cable ATDH2225 FPGA Configuration EEPROM Memory. Atmel. Rev. Doc. 2288A-05/01.
- In-system Programming of Cascaded AT17C/LV020 and Lower-density Devices in FPGA. Atmel. Applications Rev. 2292A-04/01.
- 2-megabit FPGA Configuration EEPROM Memory AT17C/LV020(A) AT17C/LV002(A). Atmel. Application Note Rev. 2317A-07/01.
- Д. Тимонин. Еще раз о конфигурировании ПЛИС Altera // Схемотехника. 2001. No 9.