Микросхемы программируемой логики (Programmable Logic Devices, PLD) были изобретены в конце 1970-х, и с тех пор стали очень популярны. Они стали одним из самых быстро растущих секторов индустрии промышленной электроники. Почему PLD так широко используются? Предоставляя разработчикам беспрецедентную гибкость, PLD также предоставляют преимущества быстрого выхода на рынок и интеграцию разработок. Дополнительно PLD упрощают проектирование, и могут быть перепрограммированы множество раз – даже на месте их прямого использования – позволяя тем самым обновлять функционал системы (здесь приведен перевод руководства UG500 [1]). Все непонятные термины и сокращения см. в статье [6].
[История появления PLD]
До появления PLD стандартные микросхемы логики были основным неудобством, потому что требовали разработки больших и очень сложных печатных плат. Тогда кто-то задал резонный вопрос: почему бы не дать возможность разработчикам реализовать различные логические соединения в одной большой микросхеме? Это позволило бы разработчикам интегрировать в одном чипе множество стандартных логических микросхем.
Чтобы предоставить беспрецедентную гибкость в разработке, Ron Cline из Signetics (которая была позже приобретена компанией Philips и в конечном итоге компанией Xilinx) придумал создавать логику из двух программируемых плоскостей (массивов программируемой логики Programmable Logic Array, PLA). Эти две плоскости предоставляют любую комбинацию вентилей "И" (AND) и "ИЛИ" (OR) вместе с совместным использованием выражений AND (так называемые term-ы) между несколькими операциями OR.
Эта архитектура была очень гибкая, но в то время технология кремния 10 мкм давала большие задержки между входом и выходом (Propagation Delay, tPD: задержка распространения сигнала), что делало устройства относительно медленными. В PLA были реализованы следующие функции:
• Две программируемых плоскости. • Любая комбинация функций AND/OR. • Совместное использование термов AND между несколькими операциями OR. • Пользователю предоставляется самая высокая гибкость при реализации логики. • Большое количество конфигурационных ячеек; из-за этого логика работает медленнее, чем PAL.
Рис. 1-1. Простой PLA.
Компания MMI (позже приобретенная AMD) предоставила другую технологию. После проблем в производстве технология PLA была модифицирована и стала архитектурой массива программируемой логики (Programmable Array Logic, PAL) путем изменения одной из программируемых плоскостей.
Новая архитектура отличалась от PLA тем, что одна из программируемых плоскостей была фиксированной - массив OR. Архитектура PAL также уменьшила tPD, и позволила упростить программное обеспечение синтеза, но при этом терялась гибкость структуры PLA.
Затем появились другие архитектуры, такие как PLD. Эта категория устройств часто называется "упрощенное PLD" (Simple PLD, SPLD).
• Одна программируемая плоскость логики: AND при фиксированной OR. • Конечная комбинация функций AND/OR. • Пользователю предоставляется средняя плотность логики. • Малое количество конфигурационных ячеек; из-за этого логика работает быстрее, чем PLAs (при тогдашней технологии кремния 10 мкм).
Рис. 1-2. Архитектура SPLD (PAL).
У архитектуры PAL имелась решетка вертикальных и горизонтальных сигнальных линий. В каждом её пересечении имелся конфигурационный элемент, программирующий соединение для сигнала. С помощью программных инструментов разработчики могли "прожигать" перемычки в точках пересечения, что снимало ненужные соединения (прожиг осуществлялся специальным программатором).
Ножки входов были подключены к вертикальным линиям решетки, горизонтальные к вентилям AND-OR, которые также называются "результатами логических выражений" (product terms, или сокращенно p-terms). Они в свою очередь подключались к выделенным триггерам, выходы которых подключались к ножкам выходов.
Микросхемы PLD предоставляли в одном корпусе в 50 раз большее количество вентилей, чем дискретные логические микросхемы! Это было большим улучшением не только в плане уменьшения количества применяемых микросхем в устройстве, но и в плане повышения надежности по сравнению с системами на стандартной логике.
Микросхемы PLD впоследствии были перенесены на мало-потребляющую технологию CMOS с применением памяти Flash такими компаниями, как Xilinx и Altera. Микросхемы Flash PLD предоставили возможность стирать и заново программировать устройства множество раз. Прошло время, когда было нужно стирать чипы ультрафиолетом в течение почти 20 минут.
[Микросхемы CPLD]
Так называемые микросхемы сложной программируемой логики (Complex Programmable Logic Devices, CPLD) имеют расширенную плотность логики по сравнению с SPLD. Концепция CPLD в том, что в одной микросхеме содержится несколько блоков PLD (эти блоки PLD также называют макроячейками, macrocells), и между ними можно организовывать (программировать) внутренние связи. Простую логику можно реализовать в одной макроячейке традиционным способом, как в SPLD. Более сложная логика требует для реализации нескольких макроячеек, и будет использовать связи между этими ячейками и внешними выводами корпуса чипа. Микросхемы CPLD имеют следующие функции:
• Центральную систему глобальных внутренних связей. • Простой, детерминистский тайминг. • Позволяют упростить разводку печатной платы. • К инструмент синтеза PLD добавлена только реализация внутренних связей между макроячейками. • Позволяют синтезировать разнообразную, довольно сложную и быструю логику.
Рис. 1-3. Архитектура CPLD.
CPLD вместе с возможностью реализации логических схем средней сложности дают хорошее быстродействие - время прохождения сигнала может быть tPD = 5 наносекунд, что эквивалентно рабочей частоте 200 МГц (время прохождения сигнала зависит от типа микросхемы и от синтезированной логики). Модель времени CPLD проста для вычисления, так что время задержки можно оценить уже на ранних стадиях разработки.
Почему используют CPLD? Они упрощают разработку систем, и соответственно снижают стоимость разработки, что дает больше дохода на за те же деньги, и дают возможность быстрее вывести продукт на рынок. Ниже перечислены основные преимущества микросхем CPLD (многие из них тесно взаимосвязаны).
• Упрощается разработка. CPLD предоставляет самый простой путь реализации проекта. Как только проект четко описан (либо принципиальной схемой, либо на языке HDL), Вы просто можете использовать инструментарий синтеза CPLD, чтобы оптимизировать проект, разместить его на выбранном кристалле и провести симуляцию работы проекта. ПО разработки создает файл (его можно назвать программой), который используется для прошивки в стандартную микросхему CPLD, чтобы получить нужный логический функционал. Это дает возможность непосредственного аппаратного прототипирования, и позволяет начать процесс отладки поведения схемы. Если требуется внести изменения, то Вы можете их внести в проект CPLD, заново провести синтез новой программы и сразу проверить результаты изменений на готовом устройстве.
• Снижается стоимость разработки. Из-за того, что микросхемы CPLD перепрограммируемые, Вы можете очень просто, без лишних затрат вносить изменения в дизайн. Это не только позволяет улучшать и оптимизировать готовый продукт, но и добавлять в него новые функции. ПО разработки CPLD относительно недорогое (в случае устройств CPLD компании Xilinx оно вообще бесплатное - ISE WebPack 14.7 [2]). Традиционно разработчики при отладке и изменении логических схем сталкивались с большими проблемами и тратили много рабочего времени. С микросхемами CPLD Вы получаете гибкие решения, позволяющие избегать трудностей традиционной разработки схем логики.
• Ускорение выхода продукта на рынок. Микросхемы CPLD предоставляют очень короткие циклы разработки. Это означает, что Ваша продукция попадет на рынок быстрее, и быстрее начнет давать прибыль. Из-за того, что CPLD перепрограммируемые, готовая продукция может быть легко изменена с помощью ISP. В результате это дает возможность просто вводить дополнительные функции и быстро генерировать новую прибыль (это также расширяет время получения доходов). Тысячи разработчиков уже используют CPLD для ускорения выхода на рынок, и для продолжения расширения возможностей своей продукции даже после того, как эта продукция была предоставлена потребителю. CPLD уменьшает TTM и расширяет TIM.
• Уменьшение размеров печатной платы (PCB). Поскольку CPLD предоставляют высокую степень интеграции (большое количество системных вентилей в перерасчете на площадь PCB) и доступны в широком ассортименте корпусов микросхем. Это дает разработчикам отличное решение, когда в малом корпусе нужно разместить печатную плату схемы логики с ограниченными возможностями по трассировке. Семейство CoolRunner® CPLD компании Xilinx предоставляет чипы в широком ассортименте современных миниатюрных корпусов. Например, CP56 CPLD имеет шаг выводов 0.5 мм и размер корпуса 6x6 мм, что идеально походит для миниатюрных переносных устройств с низким энергопотреблением. Семейство CoolRunner-II также доступно в корпусах QF (quad flat no-lead), предоставляя самый малый форм-фактор микросхем в индустрии. Корпус QF32 имеет размер всего лишь 5x5 мм.
QFG32 5x5 мм 25 мм2
CP56 6x6 мм 36 мм2
QFG48 7x7 мм 49 мм2
CP132 8x8 мм 64 мм2
Рис. 1-4. Миниатюрные корпуса микросхем CPLD.
• Снижение стоимости владения (Cost of Ownership). Уменьшаются затраты на поддержку, исправление ошибок, или на обеспечение гарантии готового изделия. Например, если изменения в дизайне требуют повторного создания прототипов, то затраты с CPLD могут быть относительно низкие. Из-за того, что CPLD можно перепрограммировать, потребуются минимальные аппаратные изменения в изделии (либо они вообще не потребуются).
Не забывайте, что простота или сложность внесения конструктивных изменений могут также влиять на альтернативные издержки. Инженеры, которые тратят время на исправление старых проектов, могли бы работать над внедрением новых продуктов и функций, что повышает конкурентоспособность разработок.
Сюда также нужно отнести затраты, связанные с элементной базой и надежностью. PLD могут снизить цену используемой элементной базы путем замены стандартных микросхем логики (микросхем с жестко фиксированными функциями). В обычном дизайне большой ассортимент используемых компонентов усложняет закупки и складирование. Если дизайн поменялся, то на складе образуются залежи неликвида. Эта проблема может быть смягчена при широком использовании PLD. Для устройства нужно хранить на складе только одну микросхему; если дизайн поменялся, то эта микросхема просто перепрограммируется. Путем использования одной микросхемы вместо множества, упрощается монтаж и надежность сборки PCB.
• Надежность. Очень эффективные по энергопотреблению CoolRunner CPLD снижают нагрев устройства и повышают надежность работы.
[Микросхемы FPGA]
В 1985 году Xilinx представила полностью новую идею: объединить управляемость и скорость выхода на рынок микросхем PLD с большими плотностями и ценовой эффективностью массивов вентилей (gate arrays). Потребителям это пришлось по душе, и родились FPGA. Сегодня Xilinx мировой поставщик номер 1 микросхем FPGA.
FPGA это регулярная структура логических ячеек (или модулей) и соединений между ними, и все это находится под Вашим полным контролем. Т. е. Вы можете разрабатывать, программировать и вносить изменения в схему, как захотите. Функции FPGA:
• Маршрутизация логики, основанная на каналах. • Анализ времени задержки после разводки. • Инструментарий синтеза сложнее, чем для CPLD. • Дизайн, основанный на модулях. • Быстрая конвейерная обработка регистров.
Рис. 1-5. Архитектура FPGA.
С появлением серий Spartan® FPGA компания Xilinx может конкурировать в производстве массивов программируемой логики по всем аспектам - цена, количество вентилей, количество ножек I/O, скорость работы.
Существует 2 базовых типа FPGA: на основе загрузки конфигурации в SRAM, и на основе памяти OTP (One Time Programmable, однократно программируемая память). Эти два типа FPGA отличаются реализацией логических ячеек и механизма, используемого для осуществления соединений в устройстве.
Самый распространенный тип FPGA основан на SRAM, его можно перепрограммировать не ограниченное количество раз. Фактически SRAM FPGA перепрограммируется каждый раз при включении питания путем загрузки из внешнего устройства памяти. Поэтому каждая SRAM FPGA требует подключения к ней микросхемы постоянной памяти PROM (Serial PROM, или SPROM; часто это последовательная FLASH-память, например AT45DB041D). Иногда для загрузки конфигурации FPGA может использоваться внешний микроконтроллер [3].
Рис. 1-6. Логическая ячейка SRAM.
В логической ячейке SRAM вместо обычных вентилей имеется LUT (Look-Up Table, таблица преобразования), в которой записаны все возможные комбинации выходных переменных в зависимости от входных. В примере на рис. 1-6 показано, как из 4 входных переменных формируется функция одной выходной переменной. Биты SRAM также используются и для создания внутренних соединений.
OTP FPGA используют анти-перемычки (в отличие от перемычек здесь соединения при программировании создаются, а не устраняются, как это было при "прожигании"), чтобы создать постоянные соединения внутри чипа. Таким образом, микросхемы OTP FPGA не требуют дополнительного подключения микросхемы SPROM или другого способа для загрузки программы в FPGA. Однако каждый раз, когда Вы меняете дизайн, потребуется выбросить старый чип! Логическая ячейка OTP очень похожа на PLD, с выделенными вентилями и триггерами.
Рис. 1-7. Логическая ячейка OTP.
Консолидация логики. Миграция со стандартной логики серии 74 на недорогие CPLD - очень привлекательная идея. Не только экономится место на поверхностях PCB и внутренних слоях - что снижает стоимость системы - и Вы покупаете и складируете только одну микросхему вместо 20 или большего количества логических микросхем определенного типа. В производстве автомат для монтажа настраивается для установки только одного компонента, что ускоряет и опять-таки удешевляет производство. Меньше деталей - следовательно выше качество и выше надежность (FIT-фактор).
Путем использования устройств Xilinx CoolRunner можно снизить энергопотребление и уменьшить нагрев. Это в результате устранит необходимость применение радиаторов (еще снижение стоимости) и повысит надежность изделия.
[Какие решения предлагает Xilinx]
Продукция Xilinx помогает производителям электроники минимизировать риски путем снижения времени на разработку и выход готовых изделий на рынок. Вы можете разработать и проверить уникальные схемы в программируемых логических микросхемах Xilinx намного быстрее, чем если были бы выбраны методы разработки на основе микросхем с программированием маской или на основе традиционных микросхем с фиксированной логикой. Кроме того, поскольку устройства Xilinx это стандартные компоненты, которые всего лишь требуют программирования, Вам не нужно ждать прототипов или переплачивать за повторные разработки при исправлении ошибок (снижаются и во многом устраняются так называемые невосполнимые затраты на разработку, non-recurring engineering, NRE).
Производители встраивают программируемую логику Xilinx в широкий ассортимент техники, выходящей на рынок. Это включает обработку данных, телекоммуникации, поддержка сетей передачи данных, промышленное управление, измерительные приборы, потребительская электроника, автомобилестроение, военная техника, авиация. Передовые кремниевые продукты, современные программные продукты и техническая поддержка мирового класса составляют комплексное решение, которое обеспечивает Xilinx. Программный компонент этого решения является критическим для достижения успеха в реализации любого проекта. ПО разработки от Xilinx предоставляет мощные инструменты, упрощающие разработку программируемой логики. Доступны обучающие проекты примеров, видеоролики, система онлайн-помощи, форум пользователей - все это помогает за короткое время достигать оптимальных результатов.
Xilinx также активно разрабатывает продвинутые технологии, которые позволят на расстоянии обновлять аппаратуру систем на основе микросхем Xilinx через сетевое соединение, включая такую среду коммуникации, как Интернет - даже после того, как готовый продукт попадет к потребителю (привет восстанию машин!). Разрабатываемая технология Xilinx "Online Upgradeable Systems" позволила бы производителям оборудования удаленно добавлять новые функции в уже установленные системы, или устранять проблемы без физической замены электроники.
Рис. 2-1. Общий взгляд на микросхемы Xilinx.
Xilinx CPLD. В настоящее время Xilinx предоставляет микросхемы CPLD двух категорий: XC9500 и CoolRunner. В этом руководстве описание сфокусировано на двух наиболее популярных семействах XC9500XL и CoolRunner-II. При выборе CPLD просмотрите ниже список функций, чтобы идентифицировать семейство, которое подойдет для Вашего приложения. Также следует просмотреть параметры выбранной микросхемы, чтобы она лучше всего удовлетворяла критерию разработки.
XC9500XL это семейство ISP CPLD, позволяющее реализовывать быстродействующие схемы логики. XC9500XL обеспечивает ведущие показатели по скорости, с обширной поддержкой технологии периферийного сканирования IEEE Std.1149.1 JTAG. Оно идеально подходит для высокоскоростных и недорогих разработок.
CoolRunner-II дает возможность создавать устройства с экстремально низким потреблением энергии, что хорошо подходит для портативной переносной электроники с батарейным питанием. Ток потребления в режиме приостановки составляет несколько микроампер, потребление энергии зависит от частоты переключения. CoolRunner-II CPLD расширяет возможности использования внедрением поддержки LVTTL и SSTL, дополнительных режимов тактирования, подключением гистерезиса на входах.
Критерии выбора CPLD. Чтобы принять решение, какая микросхема лучше всего подойдет критерию дизайна, уделите немного времени изучению соответствия спецификации разработки параметрам из документации на микросхему (используя список ниже как справочник по критериям выбора).
Density (плотность логики на кристалле) - каждая микросхема имеет определенный параметр как некий эквивалент "количеству логических элементов" (gate count). По нему можно оценить возможности микросхемы по реализации логики. Это может быть количество макроячеек (macrocell) и количество функциональных блоков (Function Block, FB).
Number of Registers (количество регистров) - параметр позволяет определить, насколько микросхема способна реализовывать счетчики, машины состояний и защелки. Количество макроячеек в устройстве должно как минимум определять емкость устройства по регистрам.
Number of I/O Pins (количество ножек ввода/вывода) - сколько входов и выходов потребуется для реализации Вашей логической схемы?
Speed Requirements (требования по скорости) - какой самый скоростной путь комбинаторной логики в проекте? Ответ на этот вопрос определит время tPD (Propagation Delay, время распространения сигнала в наносекундах) устройства. Какая должна быть самая быстрая последовательная схема в проекте? Это скажет Вам, какая потребуется максимальная частота (fMax).
Package (корпус микросхемы) - какие имеются электромеханические ограничения? Нужно ли применять самый маленький корпус с шариковыми выводами (ball grid array package), или есть возможность поставить более простой корпус QFP? Нужно ли в целях прототипирования применять сокет для микросхемы, такой как для корпуса PLCC?
Low Power (низкое потребление энергии) - питается ли конечное изделие от батарей или от солнечных элементов? Потребуется ли разработке достигать минимального потребления мощности? Каковы требования по рассеиванию тепла?
System-Level Functions (системные функции) - имеется ли на плате микросхемы с разными уровнями логических сигналов? Нужно ли организовывать преобразование уровней сигналов для разных частей схемы? Какие требования к крутизне перепадов тактовых сигналов? Нужно ли организовывать интерфейс с микросхемами памяти и/или микропроцессорами?
Микросхемы CPLD CoolRunner-II комбинируют в одном устройстве очень низкое энергопотребление вместе с довольно высокой скоростью, высокую плотность вентилей логики и большое количество ножек I/O. В семействе CoolRunner-II представлены микросхемы с количеством макроячеек от 32 до 512. Применяется технология RealDigital (по сути это просто вентили на основе CMOS), позволяя устройствам почти не потреблять энергию в режиме приостановки (standby mode). Это делает для них идеальной сферу использования на растущем рынке переносных, питающихся от батарей устройств:
CPLD CoolRunner-II также в динамическом режиме работы потребляют значительно меньше энергии по сравнению с обычными CPLD. Это важная особенность для реализации высокопроизводительных, чувствительных к перегреву телекоммуникационных коммутаторах трафика, системах видеоконференции, симуляторах, эмуляторах и high-end тестерах.
Sense amplifier, по 0.25 mA на каждый - Standby больше ICC на Fmax
RealDigital: везде CMOS - нулевое статическое потребление мощности
Рис. 2-2. Усилитель обычной логики (Sense Amplifier) в сравнении с CMOS CPLD.
Технология RealDigital, применяемая в семействе CPLD CoolRunner-II, может дать задержку распространения сигнала от вывода до вывода до 5.0 нс, при этом общая потребляемая мощность может быть меньше 16 мкА (режим standby) без необходимости специальных бит отключения (power down bits), которые негативно влияют на производительность устройства. Путем замены методов традиционных усилителей для реализации логики p-term на основе биполярных транзисторов на каскадированные цепочки реальных вентилей CMOS, динамическое потребление мощности также снизилось в сравнении с любыми конкурирующими CPLD.
Рис. 2-3. Тенденции приложений CPLD.
Xilinx CoolRunner-II CPLD дают высокую скорость и простоту в использовании, связанную с семейством XC9500/XL/XV CPLD, и экстремально низкое потребление энергии и универсальность XPLA3. Это означает, что точно такие же типы микросхем можно использовать в высокоскоростных коммуникациях, компьютерных системах, передовом переносном оборудовании, и все это вместе с преимуществом технологии ISP. Малое потребление энергии и высокая скорость работы скомбинированы в одном семействе, простом в использовании и эффективном по цене. Патентованная Xilinx архитектура Fast Zero Power по сути предоставляет экстремально низкое энергопотребление без необходимости применения в проекте специальных мер.
Техники тактирования и другие функции экономии питания расширяют бюджет электропитания переносных устройств. Эти конструктивные особенности поддерживаются начиная с ПО разработки Xilinx ISE 4.1i (последняя версия 14.7). Рис. 2-4 показывает предоставляемые продвинутые корпуса CoolRunner-II CPLD вместе с размерами. Все корпуса предназначены для поверхностного монтажа (SMD), и более половины из них используют технологии шариковых выводов. Экстремально малые корпуса позволяют использовать максимальный функционал при минимальной занимаемой площади на печатной плате.
Рис. 2-4. Корпуса CPLD.
Технология CMOS, используемая в микросхемах CoolRunner-II CPLD, генерирует минимум тепла, благодаря чему можно использовать мелкие корпуса на самых высоких скоростях работы. Для каждого варианта корпуса имеется как минимум 2 опции плотности макроячеек, при этом для корпусов VQ100 (100-pin, 1.0 мм QFP), TQ144 (144-pin, 1.4 мм QFP) и FT256 (256-ball, 1.0 мм толщины FLBGA) имеется 3 опции плотности. FT256 в частности подходит для тонких переносных изделий с требованиями к плотности логики от средних до высоких.
Таблица 2-1 также подробно показывает распределение продвинутых функций по семейству CoolRunner-II CPLD. Семейство имеет универсальный базовый набор функций, где продвинутые функции имеются только у определенных плотностей кристалла, где они были бы наиболее полезными. К примеру, скорее всего не понадобятся 4 банка I/O в микросхемах плотности 32 и 64 макроячейки, но скорее всего 4 банка I/O будут нужны в микросхемах на 384 и 512 макроячеек.
Таблица 2-1. Обзор семейства CoolRunner-II.
Устройство
XC2C32A
XC2C64A
XC2C128
XC2C256
XC2C384
XC2C512
FSYSTEM (МГц)
323
263
244
256
217
179
Максимальное количество ножек I/O
33
64
100
184
240
270
Количество банков I/O
2
2
2
2
4
4
LVCMOS, LVTTL (1.5V, 1.8V, 2.5V, 3.3V)
Да
Да
Да
Да
Да
Да
Технология DualEDGE
Да
Да
Да
Да
Да
Да
DataGATE, CoolCLOCK
-
-
Да
Да
Да
Да
Потребление в режиме приостановки, микроватт
28.8
30.6
34.2
37.8
41.4
45.0
Продвинутая защита
Да
Да
Да
Да
Да
Да
Корпуса (размер)
Количество ножек портов I/O
QFG32 (5x5 мм)
21
VQ44 (12x12 мм)
33
33
PC44 (17.5x17.5 мм)
33
33
QF48 (7x7 мм)
37
CP56 (6x6 мм)
33
45
VQ100 (16x16 мм)
64
80
80
CP132 (8x8 мм)
100
106
TQ144 (22x22 мм)
100
118
118
PQ208 (30.6x30.6 мм)
173
173
173
FT256 (17x17 мм)
184
212
212
FG324 (23x23 мм)
240
240
Банки ввода/вывода (I/O banks) группируют ножки I/O кристалла в подмножество совместимых по стандарту уровней логики, т. е. все выводы в банке могут использовать определенный (выбранный опциями) уровень напряжения, и также определяемый соответствующим напряжением на выводе питания банка VCCIO. Возможности деления тактовой частоты менее эффективны для малых по плотности кристаллов, однако это скорее всего будет полезно для больших. Технология DataGATE™ дает возможность блокировки и защелкивания входов для экономии потребляемой мощности, что более важно для больших чипов, но дает минимальную выгоду для маленьких.
Подробное описание архитектуры CoolRunner-II см. в [4, 5]. Там описываются такие понятия, как функциональный блок (FB), макроячейка, продвинутая матрица соединений (AIM), DataGATE, продвинутые опции управления тактированием (Division, DualEDGE и CoolCLOCK), защита интеллектуальной собственности.
[Блоки I/O]
Блоки ввода/вывода (I/O blocks) это в сущности трансиверы (приемопередатчики логических сигналов для обмена с внешним миром). Однако каждая ножка I/O либо автоматически совместима со стандартным диапазоном напряжений, либо может быть запрограммирована для достижения совместимости. В дополнение к уровням напряжений, каждый вход может по выбору пропускать сигнал через триггер Шмитта. Это добавляет маленькую задержку, но непосредственно снижает шум и паразитные выбросы, проходящие с входного порта микросхемы. Гистерезис также позволяет просто генерировать тактирование от внешних схем. Путь распространения сигнала через триггер Шмитта лучше показан на рис. 2-8. Выходы могут управляться непосредственно, переключаться в третье состояние, или работать как выход с открытым стоком. Также доступна опция выбора медленного или быстрого переключения выходного сигнала.
Рис. 2-8. Блок I/O CoolRunner-II.
[Банки I/O]
CPLD широко используются как преобразователи интерфейсов с трансляцией напряжений логических уровней; для этой цели ножки портов ввода/вывода (I/O pins) сгруппированы в большие банке, их может быть 2 или 4, в зависимости от плотности кристалла. 4 маленьких микросхемы имеют 2 банка. С двумя доступными банками, выходы будут переключаться на разных банках на 2 разных уровня выходных напряжений логики - на одном банке будет поддерживаться одно напряжение уровней, на другом банке другое (если, конечно, на обоих банках не используются одинаковые уровни). Большие микросхемы (на 384 и 512 макроячеек) поддерживают 4 банка. Они соответственно могут поддерживать группирование одного, двух, трех и четырех отдельных уровней напряжения логики. Такая гибкость упрощает передачу данных для соединения друг с другом уровней 3.3V, 2.5V, 1.8V и 1.5V с помощью одного корпуса CPLD.
Высокопроизводительное, недорогое семейство XC9500XL Xilinx CPLD предназначено для передовых систем, требующих быструю разработку, большое время жизни системы, и надежную функцию обновления прошивки в готовых изделиях. 3.3V семейство XC9500XL имеет диапазоны плотностей от 36 до 288 макроячеек.
Эти устройства обладают возможностью программирования в системе (ISP), что позволяет производителям выполнять (практически) бесконечное количество итераций разработки на стадии прототипирования, при отлаживать программу логики непосредственно на печатной плате реализованной системы, программировать и тестировать платы в процессе производства и выполнять обновление прошивки непосредственно у заказчика.
Основанные на современных технологиях обработки, XC9500XL CPLD дают быстрый, гарантированный тайминг, продвинутую настройку выводов (Pin-Locking) и полную совместимость с интерфейсом JTAG. Все устройства XC9500XL имеют отличные характеристики качества и надежности, количество циклов программирование/стирание 10000 раз и гарантированное время хранения данных прошивки 20 лет.
Гибкая архитектура Pin-Locking. Устройства XC9500XL совместно с ПО размещения логики на кристалле (fitter) дают Вам максимум возможностей по разводке сигналов и гибкость при сохранении производительности. Архитектура богата полезными возможностями, включающими индивидуальное разрешение выходов p-term, 3 глобальных шины тактов и большее количество p-term-ов в пересчете на выход, чем у других CPLD. Доказанная возможность архитектуры адаптироваться к конструктивным изменениям при поддержании назначений контактов демонстрировалась в бесчисленных реальных потребительских проектах.
Полная поддержка IEEE 1149.1 JTAG при разработке и отладке. Интерфейс JTAG устройств XC9500XL CPLD самый функциональный в сравнении с любыми CPLD, имеющимися на рынке. Предоставляется стандартная поддержка JTAG-команд BYPASS, SAMPLE/PRELOAD и EXTEST. Дополнительные инструкции пограничного тестирования (Boundary Scan), которых нет у других CPLD, включают INTEST (для функциональной проверки устройства), HIGHZ (для отключения от цепей, bypass) и USERCODE (для трекинга программы), что дает максимальные возможности в отладке.
Семейство XC9500XL поддерживается широким ассортиментом ПО разработки и отладки, в том числе от сторонних разработчиков, включая такие компании, как Corelis, JTAG Technologies и Asset Intertech. Эти инструментальные средства позволяют Вам разрабатывать вектора тестирования Boundary Scan для анализа, проверки схемы печатной платы и отладки функций системы. Семейство также поддерживается основными платформами ATE, включая Teradyne, Hewlett Packard и Genrad.
Таблица 2-2. Обзор XC9500XL.
XC9536XL
XC9572XL
XC95144XL
XC95288XL
Макроячеек
36
72
144
288
Регистров
36
72
144
288
Используемых логических элементов
800
1600
3200
6400
TPD (нс)
5
5
5
6
TSU (нс)
3.7
3.7
3.7
4.0
TCO (нс)
3.5
3.5
3.5
3.8
FSYSTEM (МГц)
178
178
178
208
XC9500XL CPLD также сочетаются с микросхемами Xilinx FPGA высокой плотности, что дает полное решение для реализации любой логики в унифицированной среде разработки. Семейство XC9500XL полностью поддерживается бесплатной средой разработки WebPACK ISE [2].
Ключевые возможности XC9500XL:
• Самая низкая цена в пересчете на макроячейку. • Современная архитектура по управлению выводами. • Высокая надежность программирования, снижающая риск выхода системы из строя. • Комплементарность с семействами Xilinx 3.3V FPGA. • Высокая производительность. - Скорость распространения сигнала между выводами 5 нс. - Системная частота 222 МГц. • Мощная внутренняя архитектура. - FB имеют ширину 54 на входа. - Целых 90 p-term на макроячейку. - Быстрая матрица ключей Fast CONNECT™ II, обладающая большими возможностями разводки логики. - Три глобальных цепи тактов, с возможностью локальной инверсии. - Индивидуальный сигнал разрешения для каждого выхода (OE), с возможностью локальной инверсии. - Сохранность данных прошивки 20 лет. - Иммунитет от режима отказа "ISP Lock-Out". - Допускается произвольная последовательность и форма подачи питания на разные шины питания. • Продвинутая технология. - Третья генерация проверенной технологии CPLD. - Высоконадежная, масштабируемая обработка. - Короткое время программирования и стирания ISP. - Превосходит по характеристикам все другие 3.3V CPLD. - Расширенный срок сохранности данных увеличивает время жизни системы. - Фактически устраняются отказы ISP. - Превосходные возможности управления выводами (pin-locking) для снижения рисков при разработке. - Выводы I/O, не генерирующие паразитных выбросов при включении. • Полная совместимость Full IEEE 1149.1 (JTAG) для ISP и тестирования Boundary Scan. • Поддержка со стороны бесплатного ПО от Xilinx (WebPack [2]).
Рис. 2-12. Разводка сигналов блока XC9500XL.
Рис. 2-13. Система маркировки XC9500XL.
[Платформа микросхем FPGA]
Spartan-3/3E/3A/3AN. Микросхемы Xilinx Spartan-3 FPGA идеально подходят для недорогих, сложных приложений, и нацелены на замену массивов вентилей фиксированной логики и продукции ASSP, таких как наборы чипов формирования шины интерфейса. Spartan-3 (1.2V, 90 нм) FPGA не только доступны с очень низкой ценой, но также интегрируют множество архитектурных функций, связанных с программируемой логикой категории high-end. Такая комбинация низкой цены и продвинутых возможностей делает Spartan-3 FPGA идеальной заменой для микросхем ASIC (массивы логических вентилей) и множества микросхем ASSP. Например, Spartan-3 FPGA в мультимедийной системе авто может поддерживать многие системные функции, включая встроенные процессорные ядра (IP core), пользовательские интерфейсы, цифровую обработку сигнала (DSP) и любую логику. Рис. 2-14 показывает пример такой системы.
Рис. 2-14. Мультимедийная система автомобиля.
В мультимедийной системе автомобиля, показанной на рис. 2-14, блок PCI отвечает за формирование стандартного подключения к ядру процессора. Функции тактирования на уровне устройства и платы реализованы на DCM-ах, встроенных в чип Spartan-3. CAN core IP позволяет подключать с системе электронные модули автомобиля. Эти ядра (IP core) предоставляются партнерами Xilinx AllianceCORE™, такими как Bosch, Memec Design, CAST Inc., Xylon и Intelliga. Встроенные в кристалл умножители 18x18 могут использоваться для DSP-обработок, таких как фильтрация и кодирование/декодирование форматов. Другие пользовательские интерфейсы могут быть реализованы для подключения к внешним процессорам, находящимся вне кристалла FPGA. Например интерфейс IDE может быть реализован для управления плеером DVD, другие интерфейсы могут быть реализованы для подключения к внешней памяти, или для управления LCD. Дополнительно Spartan-3 XCITE имеют встроенную технологию управления импедансом, что может снизить помехи (EMI) и уменьшить количество компонентов, предназначенных для согласования импедансов с линиями связи или для организации фильтров - уменьшается количество внешних резисторов.
Рис. 2-15. Устройство внутренней архитектуры Spartan-3 (IOB это блоки ввода/вывода).
Семейство Spartan-3 основано на продвинутой 90 нм, 8-слойной технологии металлизации. Xilinx использует 90 нм технологию для для снижения цен ниже $20 за один миллион вентилей FPGA (примерно 17000 логических ячеек), что дает как минимум 80% выигрыша по стоимости в сравнении с другими конкурентными предложениями. Меньший размер кристалла и 300 мм пластины увеличивают плотности кристалла и следовательно уменьшают общую стоимость производства. Это в свою очередь повышает уровень интеграции, удешевляет разработку, уменьшает занимаемое место на печатной плате, когда разработанное изделие воплощается в конечный продукт.
Рис. 2-16. Функции Spartan-3.
Архитектура памяти Spartan-3 FPGA предоставляет оптимальную степень детализации и эффективное использование площади кристалла.
• Блоки регистра сдвига (Shift Register SRL16 Blocks). - Каждый CLB LUT работает как быстрый, компактный 16-битный регистр сдвига. - Каскадирование LUT для построения более длинных регистров сдвига. - Реализация конвейерных регистров (pipeline register) и буферов для видеоданных или беспроводной связи. • Целых 520 килобайт распределенной памяти (Distributed SelectRAM™ Memory). - Каждый блок LUT работает как однопортовая или двухпортовая память RAM/ROM. - Каскадирование LUT для построения устройств памяти повышенного размера. - Приложения включают гибкие по размеру устройства памяти, FIFO и буферы. • Целых 1.872 мегабайт встроенной блочной памяти (Embedded Block RAM). - 104 блока синхронной, каскадируемой памяти, каждый блок RAM по 18 килобайт. - Каждый блок 18 килобайт конфигурируется как одинопортовая или двухпортовая память RAM. - Поддерживается несколько форматов ячеек (aspect ratio) преобразования ширины данных (data-width conversion) и четности. - Приложения включают кэши данных, глубокие стеки FIFO и буферы. • Интерфейсы памяти. - Позволяют организовать такие электрические интерфейсы, как HSTL и SSTL, чтобы подключать популярные внешние модули памяти. • Умножители. - Позволяют реализовать простые арифметические и математические операции, а также продвинутые функции DSP. Это позволит Вам выполнять больше 330 миллиарда операций MAC в секунду, конкурируя со специализированными процессорами DSP. - Целых 104 умножителя 18x18, поддерживающие операции умножения 18-битных чисел со знаком или 17-чисел без знака, которые можно каскадировать для увеличения разрядности. - Умножители на постоянный коэффициент: встроенные узлы памяти и логические ячейки работают совместно для построения компактных умножителей на постоянный операнд. - Умножители Logic Cell: реализация алгоритмов по выбору пользователя, таких как Baugh-Wooley, Booth, Wallace tree и других. • Блоки DCM дают изощренное управление тактированием, не пропускающее в систему джиттер, влияние температуры, влияние изменения напряжения и устраняют другие проблемы, которые обычно наблюдаются в блоках PLL, интегрируемых в FPGA. - Гибкая генерация частот от 25 МГц до 325 МГц. - Величина джиттера 100 пикосекунд. - Параметры целочисленного умножения и деления частоты. - Управление квадратурой и точностью сдвига фазы. - 0, 90, 180, 270 градусов. - Точное управление импульсами (Fine grain control, 1/256 тактов на период) для синхронизации тактов данных. - Точная генерация скважности 50/50. - Компенсация температурного ухода. • Технология XCITE для цифрового управления импедансом (Digitally Controlled Impedance) - инновация Xilinx. - Терминирование ввода/вывода (I/O termination), необходимое для поддержания целостности сигналов (минимизация выборов и отражений). С сотнями выводов I/O и продвинутыми технологиями корпусов микросхем внешние согласующие резисторы больше не нужны. - I/O termination динамически устраняет изменения нагрузочной способности из-за влияния обработки, изменения температуры и флуктуации напряжения питания. • Основные функции технологии Spartan-3 XCITE DCI. - Последовательное и параллельное терминирование стандартов одиночных и дифференциальных логических сигналов. - Максимум гибкости при поддержки последовательного и параллельного терминирования на всех банках I/O. - Поддержка входов, выходов, двунаправленного порта, дифференциального ввода/вывода. - Широкий диапазон последовательного импеданса. - Поддержка популярных стандартов логических сигналов, включая LVDS, LVDSEXT, LVCMOS, LVTTL, SSTL, HSTL, GTL и GTLP. - Входные буферы с полным и половинным импедансом.
Рис. 2-17. Конфигурируемый блок логики (Configurable Logic Block, CLB) Spartan-3.
Таблица 2-3. Достоинства технологии XCITE DCI.
Достоинство
Описание
• Второе поколение технологии FPGA
Проверено в работе многими пользователями.
• Снижение стоимости
Меньше резисторов, упрощается трассировка PCB, меньше площадь PCB, в результате чего снижается стоимость производства.
• Абсолютная гибкость I/O
Любое терминирование на любом банке I/O. Альтернативы без технологии XCITE предоставляют меньший функционал.
• Максимум полосы пропускания I/O
Меньше "звона" и отражений на максимальных частотах переключений.
• Иммунитет к изменениям температуры и напряжения
Изменения температуры и напряжения приводят к значительным рассогласованиям по импедансу. Технология XCITE динамически подстраивает внутренний импеданс чипа, так что уменьшается влияние таких вариаций и повышается надежность.
• Устраняются отражения на концах линий связи
Улучшаются техники дискретного терминирования путем уменьшения расстояния между выводом корпуса и резистором.
• Повышается надежность системы
Меньше компонентов на плате, что повышает надежность.
Максимальное количество не дифференциальных ножек I/O
124
173
264
391
487
565
712
784
Таблица 2-5. Функции и выгоды Spartan-3.
Устройство
Выгода
Фабрика и разводка FPGA с количество системных элементов до 5000000
Позволяет реализовывать сложные системные блоки с большим количеством внутренних связей и высокими внутренними скоростями соединений.
Блочная RAM - 18k блоков.
Позволяет реализовывать большие буферы пакетов и FIFO, линейные буферы.
Распределенная RAM
Предназначена для реализации буферов, FIFO меньшего размера, коэффициентов DSP.
Режим регистра сдвига (SRL16)
16-битный сдвиговый регистр идеально подходит для захвата данных в режиме высокой скорости или пакетном режиме, и для сохранения данных в DSP, а также для приложений шифрования с быстрой конвейеризацией.
Выделенные блоки умножителей 18x18
Позволяют осуществлять высокоскоростные операции DSP. Использование умножителей вместе с фабрикой дает возможность осуществлять чрезвычайно быстрые, параллельные обработки DSP.
Работа с не дифференциальными сигналами (на скоростях до 622 Mbps) - LVTTL, LVCMOS, GTL, GTL+, PCI, HSTL-I, II, III, SSTL-I, SSTL-II
Позволяет реализовывать соединения с повсеместно используемыми чипами, устройствами памяти (SRAM, SDRAM). Устраняется необходимость в использовании специальных микросхем для преобразования стандартов и уровней логики.
Работа с дифференциальными сигналами (на скоростях до 622 Nbps) - LVDS, BLVDS, Ultra LVD, SRSDS и LDT
Реализация передачи сигналов по дифференциальным линиям с невысокой стоимостью, с поддержкой управления полосой пропускания. Это экономит количество выводов, уменьшает помехи (EMI), повышает иммунитет к шуму.
Цифровое управление тактированием (Digital Clock Management, DCM)
Устраняет задержки тактов как внутри чипа, так и на уровне печатной платы. Осуществляется одновременное умножение и деление частоты, уменьшается частота тактов на уровне платы с уменьшением количества тактовых частот на плате. Позволяет подстраивать фазу тактов с гарантией когерентности.
Глобальные ресурсы разводки
Распространение тактов и других сигналов через чип с самой высокой пропускной способностью.
Программируемая нагрузочная способность выхода
Улучшает целостность сигнала с достижением правильного компромисса между TCO и пульсациями на шине земли.
Таблица 2-6. Обзор семейства Spartan-3E FPGA.
Устройство
XC3S100E
XC3S250E
XC3S500E
XC3S1200E
XC3S1600E
Количество системных элементов
100K
250K
500K
1200K
1600K
Количество логических ячеек
2160
5508
10476
19512
33192
Количество выделенных умножителей
4
12
20
28
36
Количество блоков RAM
4
12
20
28
36
Бит блока RAM
72K
216K
360K
504K
648K
Бит распределенной RAM
15K
38K
73K
136K
231K
Количество DCM
2
4
4
8
8
Максимальное количество дифференциальных ножек I/O
40
68
92
124
156
Максимальное количество не дифференциальных ножек I/O
108
172
232
304
376
VQ100
66
66
CP132
92
92
TQ144
108
108
PQ208
158
158
FT256
172
190
190
FG320
232
250
250
FG400
304
304
FG484
376
[Системная интеграция Spartan-3/3E]
Spartan-3/3E может создать непосредственные экономии на системе путем замены других стандартных системных функций.
Рис. 2-18. Системная интеграция Spartan-3/3E.
[Spartan-3A/3AN]
Семейства Spartan-3A и Spartan-3AN по ножкам совместимы с дешевыми семействами FPGA. Spartan-3AN обладает энергонезависимой памятью. Ассортимент показан в таблице 2-7.
Таблица 2-7. Семейство Spartan-3AN.
Устройство
XC3S50AN
XC3S200AN
XC3S400AN
XC3S700AN
XC3S1400AN
Количество системных элементов
50K
200K
400K
700K
1400K
Количество логических ячеек
1584
4032
8064
13248
25344
Количество выделенных умножителей
3
16
20
20
32
Количество блоков RAM
3
16
20
20
32
Бит блока RAM
54K
288K
360K
360K
576K
Бит распределенной RAM
11K
28K
56K
92K
176K
Количество бит FLASH
1M
4M
4M
8M
16M
Количество бит FLASH пользователя
627K
2M
2M
5M
11M
Количество DCM
2
4
4
8
8
Количество стандартов I/O
26
26
26
26
26
Максимальное количество дифференциальных ножек I/O
50
90
142
165
227
Максимальное количество не дифференциальных ножек I/O
108
195
311
372
502
TQ144, 20x20 мм
108
FT256, 17x17 мм
195
FG400, 21x21 мм
311
FG484, 23x23 мм
372
FG676, 27x27 мм
502
Примечание: платформа Spartan-3AN совместима по выводам с платформой Spartan-3A для поддержки миграции.
Очень похожее семейство Spartan-3A показано в таблице 2-8.
Таблица 2-8. Семейство Spartan-3A.
Устройство
XC3S50A
XC3S200A
XC3S400A
XC3S700A
XC3S1400A
Количество системных элементов
50K
200K
400K
700K
1400K
Количество логических ячеек
1584
4032
8064
13248
25344
Количество выделенных умножителей
3
16
20
20
32
Количество блоков RAM
3
16
20
20
32
Бит блока RAM
54K
288K
360K
360K
576K
Бит распределенной RAM
11K
28K
56K
92K
176K
Количество DCM
2
4
4
8
8
Количество стандартов I/O
26
26
26
26
26
Максимальное количество дифференциальных ножек I/O
64
112
142
165
227
Максимальное количество не дифференциальных ножек I/O
144
248
311
372
502
TQ144, 20x20 мм
108
FT256, 17x17 мм
144
195
195
FG320, 19x19 мм
248
251
FG400, 21x21 мм
311
311
FG484, 23x23 мм
372
375
FG676, 27x27 мм
502
[Virtex-4 FPGA]
С более чем 100 инновациями семейство Virtex-4 представляет новый шаг в эволюции технологии FPGA. Идея появления семейства - предоставить еще большую производительность, большую плотность, снизить потребление, снизить цену и дать при этом еще больше продвинутых возможностей по сравнению с предыдущими семействами. Одно или два преимущества из этого перечня предоставить относительно несложно - было трудно предоставить все это одновременно. Компания Xilinx решила эту задачу комбинацией инновационной обработки и дизайна схемы, совершенствованием процесса разработки, применением архитектуры ASMBL и использованием продвинутых встроенных функций.
Архитектура ASMBL. Одной из наиболее заметных встроенных нововведений в семействе Virtex-4 FPGA - колоночная архитектура Advanced Silicon Modular Block (ASMBL), которая представляет фундаментально новый способ конструирования кристалла (FPGA floor plan) и построения на нем внутренних соединений. Во-первых, ASMBL позволяет выводам IO, выводам тактирования и выводам земли быть размещенными в любом месте кристалла чипа, не только по периферии, как это было в предыдущих архитектурах FPGA. Это в свою очередь позволяет подвести выводы питания и земли непосредственно в центр кремниевой матрицы, так что значительно уменьшает падения напряжения (IR-drop), которые могут возникать в больших FPGA, когда они работают на высоких частотах.
Внутреннее устройство Virtex-4. Сердцем Virtex-4 FPGA является следующая генерация технологи 90 нм Xilinx (triple oxide 10-layer copper CMOS). На предыдущей технологии (dual oxide 90 нм), разработчики преодолевали компромисс между производительностью и потребляемой мощностью. С технологией triple oxide стало возможным перейти по скорости и потреблению энергии на новый уровень качества.
Колоночный способ построения архитектуры ASMBL позволило Xilinx разработать несколько эффективных по цене платформ FPGA, каждая со своей комбинацией функций. Таким образом, каждая определенная платформа была оптимизирована для какого-то домена приложений - таких как логика, связь, DSP и встраиваемая обработка - чтобы удовлетворить требованиям, которые ранее реализовывались с помощью только устройств ASIC, ASSP и подобных устройств.
Рис. 2-19. Архитектура Xilinx ASMBL.
[Варианты Virtex-4]
Virtex-4 поставляется в 3 вариантах: Virtex-4 LX, оптимизированная для высокопроизводительных логических функций; Virtex-4 SX, оптимизированная для высокопроизводительной обработки сигналов; Virtex-4 FX, оптимизированная для встроенной обработки и высокоскоростных последовательных соединений.
Рис. 2-20. Платформы Virtex-4.
Virtex-4 LX. Это семейство больше всего подходит для логики общего назначения. Оно по функциям подобно ранним устройствам Virtex-II без встроенного процессора PowerPC или высокоскоростного последовательного ввода/вывода, которые есть на новых устройствах Virtex-II ProTM. На платформе LX могут быть реализованы все ядра, защищенные сторонней лицензией (Intellectual Property, IP), включая различные блоки DSP и программные процессорные ядра, такие как MicroBlaze или PicoBlaze. Главное достоинство - использование высокоинтегрированных логических элементов общего назначения, что делает LX эффективной по цене платформой для построения логики.
У платформы Virtex-4 LX есть несколько разных по размеру членов семейства, что делает их подходящими для множества применений. У этого семейства в 2 раза выше плотность логики, чем у большинства устройств на рынке. Выгода по стоимости получается при использовании 90 нм техпроцесса на кремниевых пластинах 300 мм, вместе с эффективными по цене корпусами микросхем, обеспечивает этим устройствам большую популярность. Высокие тактовые частоты в сравнении с предыдущими платформами FPGA расширяют возможности платформы LX по замене микросхем ASIC.
• Самая высокая плотность логики (до 200k LC). • Широкий диапазон доступных емкостей (8 устройств LX в диапазоне количества LC от 14k до 200k).
Рис. 2-21. Virtex-4 LX.
Virtex-4 FX. Добавление ядра PowerPC и высокоскоростных последовательных трансиверов представляет полновесную платформу Virtex-4 FX. Комбинация функций, архитектуры и процесса производства дает работу процессора в FPGA на частотах до 450 МГц. Комбинирование этой возможности вместе с последовательными трасиверами дают скорости передачи от 600 Mbps до 11.1 Gbps, что делает эту платформу подходящей для встраиваемой обработки и удовлетворяет требования по применению в продвинутом, высокоскоростном сетевом оборудовании.
В платформе FX реализованы продвинутые системные функции, которые полезны для широкого диапазона применений, таких как телекоммуникации, устройства хранения, сложное сетевое оборудование и другие системные приложения, требующие высокопроизводительной обработки и высокой полосы пропускания ввода/вывода. Эти приложения на основе поведения системы могут быть сегментированы в 2 основных домена приложений. Домен встроенной обработки доминирует в нише операций управления потоком сложных типов данных. Домен коммуникаций нацелен на быструю обработку сообщений, и доминирует в операциях с асинхронными потоками данных. Оба домена лучше всего реализуются на полноразмерной платформе Virtex-4 FX.
• Дополнительные продвинутые функции. - 10 Gbps RocketIO. - Ядра PowerPC. - Ядра 10/100/1000 Ethernet MAC. • Богатые возможности по реализации смеси памяти BRAM/FIFO. - Размеры до около 10 мегабит. • 6 устройств FX с диапазоном LC от 12k до 140k.
Рис. 2-22. Virtex-4 FX.
Virtex-4 SX. Увеличение блоков DSP и памяти по отношению к количеству логических элементов создает семейство SX, или платформу устройств сигнальной обработки (DSP). Это измененное соотношение функций создает относительно меньшее по размеру платформу для цифровой обработки сигналов в сравнении с другими платформами. Такой компромисс вместе с новыми пакетами функций DSP дает возможность реализации высокопроизводительных ядер DSP на эффективной по стоимости платформе Virtex-4 SX. Значительно увеличена полоса пропускания DSP вместе с уменьшением потребляемой мощности в сравнении предыдущими устройствами Virtex-II Pro, так что платформа Virtex-4 SX позволяет создавать наиболее эффективные устройства по соотношению производительность/цена. Каждое ядро (DSP Slice) реализует MAC-операцию 18x18 бит на частоте тактов 500 МГц. Расширения Virtex-4, специфичные для DSP, включают новые режимы и возможности, что совместно с другими частями оптимизированной архитектуры SX позволяют реализовать самый высокий уровень DSP IP.
Рис. 2-23. Virtex-4 SX.
[Virtex-5]
Семейство Virtex-5 FPGA представляет 5-е поколение FPGA серии Virtex. Применена технология 65 нм triple-oxide process, проверенная многоплатформенная архитектура ASMBL, и новая технология ExpressFabric, что предоставляет пользователям Virtex-5 самую высокую производительность, наибольшую гибкость в коммуникациях, оптимизированное энергопотребление, снижение стоимости системы и максимальная продуктивность. Первое появившееся семейство это Virtex-5 LX, показанное в таблице 2-9. Полный набор платформ Virtex-5 следующий:
• Virtex-5 LX Platform - оптимизировано для высокопроизводительной логики. • Virtex-5 LXT Platform - оптимизировано для высокопроизводительной логики с маломощными последовательными соединениями. • Virtex-5 SXT Platform - оптимизировано для DSP и требовательных к памяти приложений, с маломощными последовательными соединениями. • Virtex-5 FXT Platform - оптимизировано для встраиваемых приложений с интенсивной работой с памятью и высокоскоростными последовательными соединениями.
Таблица 2-9. Семейство Virtex-5.
Платформы Virtex™-5
LX
LXT
SXT
FXT
Полную таблицу продукта Virtex-5 Platform FPGA см. в документе Virtex-5: The Ultimate System Integration Platform site site:xilinx.com.
[Военная и авиационная техника]
Компания Xilinx является лидером в поставке высоконадежных PLD для рынков авиации и военной техники. Эти устройства используются в широком диапазоне приложений, таких как радиоэлектронная борьба, наведение ракет и целеуказание, коммуникации RADAR, SONAR, обработка сигналов, авиационное оборудование, спутниковая техника. Семейство Xilinx QPro в керамических или пластиковых корпусах QML предоставляет решения программируемой логики для современных разработок. Семейство QPro также включает в себя компоненты с повышенной радиационной стойкостью, предназначенных для применений в спутниках и космической технике. Система управления качеством полностью совместима со всеми требованиями ISO9001. В 1997 году Xilinx стала полностью квалифицированным поставщиком QML, так как она удовлетворила все требования MIL Standard 38535.
[Автомобилестроение, индустриальные применения]
Xilinx XA. Количество встраиваемой в автомобиле электронике растет с феноменальной скоростью. Это включает системы навигации, системы развлечений, инструментальные кластеры, сложные информационные системы для водителя, устройства коммуникации и безопасности. Чтобы подстроиться под требования разработчиков автомобильной промышленности, Xilinx создала новое семейство устройств с опцией расширенного температурного диапазона. Новое семейство XA состоит из существующих индустриальных (квалификация I) FPGA и CPLD, с добавление нового расширенного температурного диапазона (квалификация Q) для выбранных устройств. Новая квалификация продукта Q (рабочий диапазон окружения от -40°C до +125°C для CPLD и температуры кристалла для FPGA) идеально подходит для автомобильных и индустриальных приложений. Широкий диапазон комбинаций плотностей и корпусов позволяет разрабатывать высокопроизводительные, эффективные по цене, гибкие решения, удовлетворяющие Вашим требованиям.
С устройствами Xilinx XA Вы можете выполнить дизайн так, что он быстрее выйдет на рынок. Поскольку используется множество новых стандартов, и они продолжают развиваться (такие как стандарты LIN, MOST и FlexRay внутренних шин автомобиля), то Вам понадобится гибкость дизайна для быстрой модификации прошивки в любой нужный момент. Xilinx разработала для этой цели уникальную технологию Internet Reconfigurable Logic (IRL), благодаря которой Вы можете дистанционно и автоматически модифицировать свою разработку, прямо у заказчика - после того как изделие покинет завод. Для дополнительной информации посетите страничку Automotive Solutions site:xilinx.com.
Таблица 2-10. Температурные диапазоны Xilinx XA.
Группа продукции
Температурный класс (°C)
C
I
Q
FPGA
Tj = 0 .. +85
Tj = -40 .. +100
Tj = -40 .. +125
CPLD
Ta = 0 .. +70
Ta = -40 .. +85
Ta = -40 .. +125
Примечание: Tj это температура кристалла, Ta это температура окружающей среды.
Таблица 2-11. Доступность устройств XA для расширенного диапазона температур.
Семейство устройств XA
Плотности
Spartan-3 (3.3V)
50k .. 1500k логических элементов
Spartan-3E (3.3V)
100k .. 1600k логических элементов
XC9500XL (3.3V)
36 .. 144 макроячеек
CoolRunner-II (1.8V)
32 .. 384 макроячеек
Spartan-IIE (1.8V)
50k .. 300k логических элементов
[ПО разработки Xilinx]
Дизайн программируемой логики вошел в эру, когда плотности микросхем достигают миллионов вентилей, и производительность измеряется в сотнях мегагерц. Учитывая все эти сложности, критическим фактором успеха в создании проекта становится Ваша производительность как разработчика.
Компания Xilinx предоставляет полный набор инструментов для дизайна электроники, позволяющий реализацию разработок на основе Xilinx PLD. Эти решения разработки комбинируют мощную технологию синтеза вместе с простым в использовании графическим интерфейсом, помогающим Вам достичь самых лучших результатов в разумные сроки - независимо от Вашего уровня квалификации.
Доступность таких продуктов разработки, как WebPACK ISE [2] еще больше упрощает разработку программируемой логики. Разработки могут быть просто и быстро описаны на языках описания аппаратуры ABEL, VHDL, Verilog™ (последние два наиболее популярны), или логика может быть синтезирована на основе схематического представления (пакет графического редактора schematic capture).
Процесс создания схемы (Schematic Capture). Редактор Schematic Capture - традиционный метод, с помощью которых разработчики могут создавать логику PGA и PLD. Это графический инструмент, позволяющий Вам точно задать необходимые функциональные узлы логики и взаимосвязи между ними. При рисовании схемы выполняют 4 основных шага:
1. После того, как был выбран редактор schematic capture и библиотека устройств (в ISE WebPack входит и то, и другое), начинают создавать схему путем загрузки нужных элементов логики из библиотеки. Вы можете использовать любую комбинацию вентилей, какая необходима. В это время Вы должны выбрать определенного вендора и библиотеку компонентов устройства, но пока что Вам не нужно знать, какая конкретно микросхема программируемой логики будет использоваться (в контексте выбора корпуса и скорости работы).
2. Соедините в редакторе друг с другом логические элементы с помощью цепей или проводов. У Вас полный контроль над соединениями элементов в любой необходимой для приложения конфигурации.
3. Добавьте входные и выходные буферы и снабдите входы и выходы метками. Это определит выводы I/O корпуса микросхемы.
4. Сгенерируйте список цепей (netlist).
Примечание: Schematic Capture простой, но наименее эффективный способ создания логики по сравнению с языками VHDL и Verilog.
Рис. 3-1. Процесс разработки PLD на основе схемы.
Список цепей это текстовый эквивалент схемы. Он генерируется инструментами разработки, такими как программа schematic capture. Список цепей это компактный способ для других программ понять, какие логические элементы входят в схему, как они соединены, и имена ножек ввода/вывода (I/O pins).
EDIF это широко используемый в индустрии стандарт для списков цепей; есть и множество других, включая специфичные для вендора, как например Xilinx Netlist Format (XNF). Как только появился netlist дизайна, у Вас есть все что нужно, чтобы определить, что делает схема.
Рис. 3-2. Спецификация дизайна - список цепей (Netlist).
Приведенный ранее пример очевидно очень упрощен. Давайте опишем более реалистичный дизайн из 10000 эквивалентных элементов. Обычная страница схемы содержит около 200 элементов, содержащих программные макросы. Таким образом, потребуется 50 страниц схемы, чтобы создать дизайн из 10000 элементов! На каждой странице нужно выполнить все 4 ранее упомянутых шага: добавление компонентов, взаимосвязи между элементами, добавление портов I/O и генерация списка цепей. Это довольно долго, особенно если дизайн состоит из 20000, 50000 элементов, или даже больше.
Другая характерная проблема при использовании редактора схем - сложность миграции между вендорами и технологиями. Если Вы изначально создали дизайн из 10000 элементов на FPGA вендора X, и затем хотите мигрировать на массив элементов (PGA), то понадобится изменить все 50 страниц, заменив на них элементы из библиотеки нового вендора.
Процесс создания дизайна на основе HDL. Конечно, должен быть способ разработки проекта получше, чем рисование схемы в редакторе, и он действительно есть. Такой способ называется высокоуровневый дизайн (high-level design, HLD), язык описания поведения схемы (behavioral), или язык описания аппаратуры (hardware description language, HDL). Для наших целей эти три понятия по сути одно и то же. Идея состоит в использовании языка высокого уровня для описания схемы в текстовом файле, вместо того, чтобы создавать описание схемы в графическом виде. Термин "поведенческий" (behavioral) используется потому, что в этом мощном языке Вы словами описываете функцию, или поведение схемы, вместо того, чтобы выяснить, какие нужно логические элементы применить, чтобы создать нужное поведение схемы. Есть 2 главные разновидности HDL: VHDL и Verilog.
В качестве примера предположим, что рабочий дизайн должен создать 16x16 умножитель в редакторе схемы или в файле HDL. Умножитель это обычная, но довольно сложная комбинация сумматоров и регистров, требующая довольно много логических элементов. Наш пример имеет два 16-битных входа (A и B), и 32-битный выход результата (Y = A x B) – всего получается 64 портов I/O. Эта схема потребует приблизительно 6000 эквивалентных логических элементов. При реализации в виде схемы требуемые элементы должны быть загружены из библиотеки, размещены на странице, их нужно соединить друг с другом и добавить к ним буферы I/O (кстати, буферы в ПО Xilinx добавлять не обязательно, если оставлена настройка по умолчанию, добавляющая буферы I/O на порты ввода/вывода автоматически). Это займет наверняка около 3 дней, и еще нужно не допустить при вводе схемы ошибок.
Рис. 3-3. Спецификация дизайна для реализации умножителя.
В реализации HDL, которая также будет использовать 6000 логических элементов, требуется ввести 8 строк текста, и на это потребуется 3 минуты. Этот файл содержит всю информацию, нужную для определения умножителя 16x16. Итак, в качестве разработчика, какой из методов Вы выберете? Дополнительно к огромной экономии времени, метод HDL полностью не зависит от вендора. Это открывает для инженеров большие возможности.
Примечание: опытным путем я определил (см. врезки в конце статьи [7]), что HDL-метод разработки намного эффективнее расходует ресурсы CPLD, чем метод на основе схемы. Так что это еще один большой плюс в пользу использования VHDL или Verilog.
Чтобы создавать умножитель 32x32 потребуется точно такой же объем работы, как была проделана для умножителя 16x16. Если бы мы использовали схематический способ, то сделали бы три копии по 30 страниц, а потом разбирались бы, где нужно внести правки, чтобы адресовать шину увеличенной ширины. Это потребовало бы несколько часов графического редактирования. Для спецификации HDL всего лишь потребовалось бы поменять ссылки на описание шины, чтобы изменить её ширину с 15 на 31 в строке 2, и 31 поменять на 63 в строке 3. Это скорее всего заняло бы несколько секунд (см. врезку).
Таким образом HDL идеален для повторного использования старых разработок и переносе разработки с платформы на платформу. Вы можете обмениваться своей "библиотекой" компонентов с другими разработчиками Вашей компании, тем самым сохраняя рабочее время (это позволяет избегать дублирования работы).
HDL-синтез. Когда мы задали дизайн в поведенческом описании, то можем преобразовать его в вентили микросхемы CPLD или FPGA с помощью процесса синтеза. Инструмент синтеза делает большой объем вычислений, чтобы определить, какие элементы использовать, основываясь на предоставленном Вами файле описания (при использовании редактора схемы schematic capture Вы делали ту же самую работу вручную). Из-за того, что полученный в результате процесса синтеза список цепей зависит от вендора (производителя CPLD или FPGA) и выбранного семейства устройства, при схематической разработке дизайна Вы должны обязательно использовать библиотеку вендора. Большинство инструментов синтеза поддерживают широкий диапазон вариантов устройств PGA, FPGA и CPLD разных вендоров (инструментарий от Xilinx в составе пакета WebPack поддерживает только свои CPLD и FPGA).
Дополнительно для синтеза Вы можете задать критерий оптимизации, который инструмент синтеза будет учитывать в принятии решений выбора на уровне элементов, что также называется "отображением", или "привязкой" (mapping). Некоторые из этих опций: оптимизация дизайна в целом по количеству используемых элементов, оптимизация определенной секции дизайна по скорости, оптимизация по использованию самой лучшей конфигурации элементов для минимизации энергопотребления, и использование дружественной для FPGA, богатой регистрами конфигурации для реализации машин состояний.
Также Вы можете просто экспериментировать с устройствами разных вендоров, разными семействами устройств и оптимизационными ограничениями, так что можно рассмотреть множество разных решений вместо только одного при схематическом способе создания дизайна.
Еще раз напомним, что способ создания дизайна на высоком уровне (с помощью языка HDL) и последующего синтеза обладает многими преимуществами. Это намного проще и быстрее, и впоследствии намного проще вносить изменения в дизайн из-за самодокументированной природы HDL-языка. Вы освобождены от скуки выбора и создания соединений на уровне логических элементов. Вы просто выбираете библиотеку и критерий оптимизации (например скорость, область оптимизации), инструмент синтеза определит результат. Вы можете также попробовать разные альтернативы дизайна, и выбрать лучший для своего приложения. Фактически нет никакой реальной практической альтернативы HDL для разработок, превышающих по размеру 10000 логических элементов.
ISE Software. Продвинутая система синтеза HDL из пакета ISE компании Xilinx генерирует оптимизированные результаты для синтеза PLD, что является одним из основных шагов в Вашей методологии разработки. Инструментарий берет Вашу концепцию дизайна в описании HDL, и генерирует его логическое или физическое представление для целевого кремниевого устройства. На этом шаге требуется современный механизм синтеза, чтобы качественно оптимизированный результат был получен с быстрой компиляцией и малым сроком выполнения работы. Чтобы удовлетворять этому требованию, система синтеза (synthesis engine) должна быть тесно интегрирована с инструментом физической реализации логики на кристалле (physical implementation tool), и должна заранее удовлетворять требованиям дизайна по интервалам времени при размещении логики в физическом устройстве. Кроме того, перекрестное зондирование между физическим отчетом проекта и проектом на коде HDL, дополнительно сокращает срок выполнения работы.
ПО Xilinx ISE предоставляет возможность прозрачной интеграции с лидирующими системами синтеза других производителей: Mentor Graphics, Synopsys и Synplicity. ISE также включает в себя проприетарную технологию синтеза Xilinx (XST). Одним кликом на кнопке Вы можете запустить в ISE любую из систем синтеза. Вы даже можете иметь несколько систем синтеза, чтобы получить наиболее оптимальный результат для дизайна программируемой логики.
Проверка дизайна. Разработанный проект программируемой логики проверяется в симуляторе, где оценивается функциональность или полученные интервалы времени схемы. Используются стандартные индустриальные форматы, чтобы разработки могли быть повторно использованы. Если вендоры поменяли свои библиотеки, то потребуется только перекомпиляция синтеза. Даже если Вы решили перейти на другого вендора и/или технологию, просто заново скомпилируйте проект после выбора новой библиотеки. Этот принцип даже не зависит от инструментария разработки, так что Вы можете попробовать использовать инструменты синтеза от разных вендоров, и выбрать самый лучший полученный результат. IP-ядра обычно доступны в формате HDL, поскольку это упрощает их модификацию использование на микросхемах программируемой логики разных вендоров.
После завершения спецификации дизайна Вам нужно узнать, работает ли схема так, как предполагалось. Для этой цели служит верификация дизайна. Симулятор симулирует схему. Вы должны будете предоставить информацию о проекте (через netlist после рисования схемы в schematic capture или после синтеза) и специальные входные сигналы или так называемые векторы тестирования (input pattern, test vectors), которые хотите проверить (в ISE WebPack такие сигналы генерируются в отдельном модуле на языке Verilog). Симулятор берет эту информацию и определяет соответствующие сигналы на выходе схемы, после чего отображает их в виде осциллограмм.
Рис. 3-4. Диаграмма процесса разработки PLD.
Функциональная симуляция. На этом шаге разработки функциональная симуляция только лишь проверяет, действительно ли схема выдает правильные комбинации единичек и нулей на выходе при подаче необходимого сигнала на вход. Переход к проверке симуляции правильности формирования интервалов времени будет проведен позже. Если в функциональной симуляции обнаружены какие-либо проблемы, то Вы возвращаетесь обратно к схеме или к файлу HDL, делаете изменения, заново генерируете список цепей (netlist), и заново запускаете симуляцию. Разработчики тратят примерно 50% своего рабочего времени на выполнение этих итераций, пока дизайн не заработает так, как необходимо.
Использование HDL дает дополнительное преимущество при верификации дизайна: Вы можете выполнять симуляцию непосредственно из исходного файла HDL. Это пропускает затратный по времени процесс синтеза, который обычно требуется для каждой итерации изменений дизайна. Как только схема заработает корректно, запускается инструмент синтеза для создания списка цепей следующего шага разработки - реализация устройства в кристалле (device implementation).
Device Implementation. Список цепей дизайна (netlist) полностью описывает разработку с использованием логических элементов определенного вендора и семейства устройства. Как только Ваш дизайн полностью проверен, то наступило время разместить его на кристалле чипа, и этот процесс называется "реализацией устройства" (device implementation).
Трансляция включает разные программы, используемые для импорта списка цепей дизайна и подготовки его для разводки кристалла. Эти программы разные для каждого вендора. Некоторые или более общие программы трансляции включают в себя следующее: оптимизация, трансляция в элементы физического устройства и проверку правил дизайна, специфических для устройства (например, превышает ли дизайн количество буферов тактов, доступное для этого устройства?). Во время этой стадии разработки у Вас запросят установить целевое устройство, его корпус, класс быстродействия (speed grade) и любые другие зависящие от устройства опции (в Xilinx ISE эти параметры устанавливаются в настройках проекта и в так называемом файле ограничений пользователя *.UCF). Шаг трансляции обычно заканчивается подробным отчетом о полученных результатах, после того как выполнятся все нужные программы. В дополнение к предупреждающим сообщениям и сообщениям об ошибках обычно выводится список израсходованных ресурсов устройства и количество использованных ножек I/O, что поможет Вам определить, насколько хорошо выбрано целевое устройство.
Fitting. Для микросхем CPLD этот шаг также называется фиттингом, от слова "fit" (подгонка). Смысл понятен - нужно чтобы дизайн "уместился" (fit) на целевом устройстве. Этот шаг показан на рис. 3-4, для CPLD он называется "Fitting". У CPLD фиксированная архитектура, так что программе нужно взять логические элементы и организовать пути внутренних соединений, чтобы полученная логика удовлетворяла схеме. Обычно это быстрый процесс.
Большая потенциальная проблема может возникнуть в том случае, если Вы ранее назначили точное размещение сигналов на ножках I/O (обычно это называется pin locking, в Xilinx ISE это называется настройками файла ограничений пользователя *.UCF). Чаще всего это происходит, когда обычная итерация дизайна подтверждена для уже существующей печатной платы устройства. Архитектуры, которые поддерживают I/O pin locking (такие как Xilinx XC9500 и CoolRunner CPLD) имеют здесь большое преимущество, так как могут довольно свободно тасовать любые сигналы по любым ножкам корпуса. Это позволяет сохранить оригинальное положение сигналов на ножках корпуса независимо от изменений дизайна, утилизации ресурсов или требуемой производительности. Pin locking очень важная функция, когда используется ISP. Если разводка Вашей печатной платы (PCB) рассчитана на определенную цоколевку выводов, и затем дизайн поменяется, Вы сможете перепрограммировать кристалл, будучи уверенным, что разводка сигналов останется той же, как была.
Place and Route (размещение и разводка). Для FPGA программы "place and route" запускаются после компиляции. "Place" это процесс выбора специфических модулей, или логических блоков в FPGA, где будут размещаться логические элементы дизайна. "Route", как указывает имя, это физическая разводка внутренних соединений между логическими блоками. Большинство вендоров предоставляют автоматически инструменты операций place и route, так что Вам (почти) не нужно беспокоиться о деталях архитектуры устройства. Некоторые вендоры предоставляют инструменты, которые предоставляют квалифицированным пользователям вручную осуществлять операции place и/или route для наиболее критичных частей своего дизайна, чтобы достичь лучшей производительности по сравнению с автоматическими инструментами. Floorplanner относится к типу ручных инструментов.
Программы операций place и route требуют самое большое время для полного завершения процесса, потому что решается комплексная задача определения мест на кристалле, чтобы все логические узлы были корректно соединены и выполнялись требуемые условия производительности. Однако эти программы могут работать только на той целевой архитектуре, для которой они предназначены, чтобы успешно осуществить разводку логики дизайна. Никакое изощренное кодирование не сможет компенсировать не продуманную архитектуру, особенно если не хватает соединений для разводки (routing tracks). Если Вы столкнулись с этой проблемой, то самое общее решение состоит в использовании увеличенного по емкости устройства. И вероятно при выборе поставщика и типа микросхем Вы будете опираться на предыдущий опыт.
К программам операций размещения и разводки относится программа, учитывающая интервалы времени прохождения сигнала (timing-driven place and route, TDPR). Это позволяет Вам задать критерий времени, который будет использоваться во время разводки устройства. Статический анализатор интервалов времени прохождения сигнала (static timing analyzer) обычно входит в состав implementation software вендора. Оно предоставляет информацию о времени по путям распространения сигнала в дизайне. Эта информация очень точна, и её можно просмотреть несколькими разными способами, такими как отображение всех путей в дизайне и ранжирование их по самой длинной или самой короткой задержке.
Дополнительно на шаге операций place и route Вы можете использовать подробную информацию по разводке после переформатирования, и вернуться обратно в выбранный симулятор с подробной информацией о тайминге. Этот процесс называется обратной аннотацией (back-annotation) и у него достоинство в том, что дает точную информацию о появлении в дизайне как нулей, так и единиц. В обоих случаях тайминг отражает задержки как на логических блоках, так и внутренних соединениях. Конечный шаг реализации - загрузка (download) или программирование кристалла (иногда этот процесс называют прошивкой).
Загрузка/программирование. Загрузка (Download) в основном относится к энергозависимым устройствам, не имеющим на борту постоянной памяти, таким как FPGA с конфигурационными ячейками на основе SRAM (SRAM FPGA). Как подсказывает термин "загрузка", Вы загружаете информацию о конфигурации логики в память устройства. Передаваемый при загрузке поток данных (bitstream) содержит всю информацию для определения логики и взаимосвязей в дизайне, и этот поток бит отличается для каждого дизайна (мало того, если взять голые данные, то они будут уникальны даже для каждой отдельной микросхемы одного и того же дизайна, потому что поток бит зашифрован ключом, сгенерированным по серийному номеру устройства). Из-за того, что устройства SRAM потеряют свою конфигурацию при выключении питания, bitstream должен быть сохранен где-то еще. Обычно "где-то еще" это отдельная микросхема последовательной памяти (serial PROM).
Программирование используется для всех программируемых логических устройств, обладающих энергонезависимой памятью, включая микросхемы памяти serial PROM. Программирование выполняет ту же функцию, что и загрузка, за исключением того, что информация в программируемом устройстве сохраняется после того, как питание было отключено с этого устройства. Для antifuse-устройств программирование может быть произведено только один раз на устройство, поскольку term программируется только однократно (onetime programmable, OTP). Программирование Xilinx CPLD может быть осуществлено в системе через JTAG или другим обычным программатором, таким как Data IO. Технология пограничного тестирования JTAG Boundary Scan (формально известная как стандарт IEEE/ANSI 1149.1_1190) это набор правил дизайна для упрощения тестирования, программирования устройства и отладки на уровне кристалла, печатной платы, системном уровне.
Внутрисистемное программирование (In-system programming, ISP) имеет то достоинство, что устройства (такие как монтируемые на поверхность корпуса TQFP) в процессе производства можно сразу напаивать на печатную плату. После этого они могут быть доступны для программирования через ISP (обычно это JTAG). Даже если впоследствии дизайн поменяется, устройства не нужно выпаивать с платы, их можно просто перепрограммировать прямо в системе.
Рис. 3-5. Загрузка и программирование устройств CPLD и FPGA.
Отладка системы. Теперь запрограммированное устройство работает, но все еще нужно проверить, насколько правильно оно ведет себя на печатной плате. Это называется отладкой системы. Если наблюдаются значительные проблемы, то можно сделать предположение, что спецификация устройства не корректна, или не был учтен некоторый аспект сигнала, требуемый поддержки в программируемом логическом устройстве. Если этот так, то вы можете собрать данные о проблеме, и вернуться обратно к схематическому (или поведенческому) описанию дизайна. Веб-страницы "Design Tools Center" содержат информацию как по набору инструментария Xilinx ISE, так и наборам инструментария разработки от других партнеров Xilinx. Вопросы отладки кратко рассмотрены в следующих темах: Dynamic Verification (динамическая проверка), Debug Verification (отладочная проверка), Board-Level Verification (проверка на уровне платы).
Dynamic Verification. Вы можете экономить свое время, используя динамическую верификацию для перехвата логических ошибок или ошибок уровня HDL на ранних стадиях цикла разработки. Путем помещения дизайна в реалистичную среду с экстенсивно симулируемыми сигналами, Вы можете найти много функциональных проблем. Поддерживается следующие инструменты динамической верификации:
Debug Verification. Инструменты отладочной верификации ускоряют процесс просмотра, идентификации и корректирования проблем дизайна на разных стадиях цикла разработки. Отладочная верификация включает возможность просмотра всех "живых" (live) внутренних сигналов и узлов FPGA. Эти инструменты могут также помочь в разработках на основе HDL путем проверки стиля кодирования на оптимальную производительность. Поддерживаются следующие инструменты отладочной проверки:
• FPGA Editor Probe • ChipScope ILA • ChipScope Pro
Board-Level Verification. Использование инструментария проверки на уровне печатной платы гарантирует, что Ваш дизайн работает при интеграции в остальную часть системы именно так, как было задумано. Рабочее окружение разработки Xilinx ISE поддерживает следующие инструменты отладки на уровне платы:
По мере роста требований к FPGA проблемы Вашего дизайна могут поменяться. Рабочее окружение дизайна высокой плотности может означать совместную работу нескольких команд через распространяемые узлы одного и того же проекта, причем команды могут находится в разных частях земного шара. Опции продвинутого дизайна ISE нацелены на то, чтобы упростить разработки высокой плотности до уровня понимания простой реализации самой маленькой логики.
Floorplanner - инструмент высокоуровневой разработки Xilinx, дающий графическое представление о том, как логика отображается на кристалл целевого чипа. Этот способ представления разработки может эффективно помочь в разработке сложных устройств.
Modular Design (модульный дизайн) - этот принцип подразумевает разделение большого дизайна на отдельные модули. Каждый модуль может быть по отдельности подвергнут обработке через Floorplanner, разработан, реализован и локализован, пока параллельно разрабатываются остальные модули.
Partial Reconfigurability (конфигурирование кристалла по частям) - полезно для приложений, требующих загрузки разных дизайнов в одну и ту же область устройства. Это позволяет изменить часть конфигурации, чтобы можно было гибко менять порции дизайна без сброса или полного переконфигурирования всего устройства целиком.
Internet Team Design (командная разработка через Интернет) - позволяет менеджерам управлять каждой командой и их разрабатываемый модуль через стандартный Интернет-браузер, используя корпоративную внутреннюю сетевую структуру компании (corporate intranet).
High-Level Languages (языки высокого уровня) - с ростом плотности дизайна может стать более важным переход на языки высокого уровня абстракции. Xilinx использует и поддерживает индустриальные стандарты в своих соответствующих инструментах разработки.
[Embedded SW Design Tools Center]
Этот инструментарий предназначен для FPGA-платформ Virtex®-II Pro и Virtex-4. Термин "embedded software tools" чаще всего означает инструментарий для создания, редактирования, компиляции, линковки, загрузки и отладки кода на языке высокого уровня (обычно C или C++), предназначенного для выполнении на процессорной системе. С платформами Virtex-4 и Virtex-II Pro Вы сможете направить модули дизайна либо для аппаратуры кремния (логические элементы FPGA), либо реализовывать их как программные приложения, запуская их на обработку через процессорные системы наподобие встроенного аппаратного ядра PowerPC™.
Когда дело доходит до разработки встроенного программного обеспечения, Xilinx предлагает несколько уровней поддержки. Xilinx поддерживает встроенные процессоры в пакете Embedded Development Kit (EDK) для недорогих по цене и высокопроизводительных рынков. Более подробно про EDK можно узнать на сайте Xilinx, см. раздел "Design Tools Centre".
Для инженеров, которые ранее специализировались на разработке аппаратуры, но хотели бы перейти на программное обеспечение, работающее на ядре PowerPC, компания Xilinx предлагает простое и недорогое решение. И альтернативно, если инженеры, специализирующиеся на программной обработке, хотели бы воспользоваться богатым функциями рабочим окружением, в котором можно разрабатывать более сложные приложения, Xilinx предоставляет доступ к специализированным, лучшим в своем классе инструментам от лидера индустрии встраиваемой электроники. Это позволит проще перенести старые разработки на новые технологии, реализованные на микросхемах Xilinx Platform FPGA.
[ISE WebPACK Software]
Пакет ПО разработки ISE WebPACK это бесплатный набор инструментария с ограниченным функционалом по сравнению с полнофункциональным платным пакетом ISE tool suite. Полная версия ISE software, известная как ISE Foundation, содержит в себе весь необходимый инструментарий для нацеливания разработки на любую архитектуру компании Xilinx. Набор инструментов ISE WebPACK содержит в себе все необходимое для поддержки всех микросхем Xilinx CPLD и некоторых Xilinx FPGA.
Подробнее про то, как загрузить и установить ISE WebPACK, см. статью [2].
Таблица 3-1. Поддержка операционных систем и программируемых устройств со стороны ISE WebPACK.
Функция
ISE WebPACK
Операционная система хоста разработки
Microsoft Windows XP/Vista Redhat Enterprise Linux 3 (32-bit)
Spartan-II/IIE: все чипы Spartan-3: XC3S50 - XC3S1500 Spartan-3E: все чипы Spartan-3A/AN: все чипы AllSpartan-3A DSP: XC3SD1800A XA (Xilinx Automotive) Spartan-3: все чипы
CoolRunner-II/A CoolRunner XPLA3
все чипы
XC9500/XL/XV
все чипы
Описания модулей. Обычно процесс разработки для FPGA и CPLD происходит одинаковым образом. Начинать разработку можно либо на основе схемы или на HDL (это может быть язык VHDL, Verilog или поддерживаемый только для CPLD язык ABEL). Дизайн также может состоять из смеси схем и встроенных символов, реализованных на HDL. Есть также средство для создания машин состояний в форме диаграммы, чтобы позволить программным инструментам генерировать оптимизированный код из диаграммы состояний. Все эти шаги рассмотрены в Главе 4 "ISE WebPACK Design Entry" [8].
Симулятор. Пакет WebPACK ISE содержит также инструмент ISE Simulator Lite. Он будет использоваться в обучающей секции документа [8]. Полная версия симулятора ISE Simulator доступна в полнофункциональном пакете разработки ISE Foundation. Есть также опция загрузки программного обеспечения ModelSim Xilinx Edition (MXE). Это версия симулятора ModelSim компании Mentor Graphics, содержащая предварительно скомпилированные библиотеки Xilinx. Для дополнительной информации по MXE обратитесь к сайту www.xilinx.com, см. Products and Services -> Design Tools -> Verification.
Диаграмма рис. 3-6 показывает в общем виде различия разработки между CPLD и FPGA.
Рис. 3-6. Процесс разработки в ПО ISE WebPACK.
Когда дизайн завершен, и Вы удовлетворены результатами симуляции, то можно загрузить разработку в требуемое устройство.