Оптимизированная структура FPGA для продукции массового спроса. Микросхемы Lattice ECP/EC
Программируемые пользователем базовые матричные микросхемы (FPGA) на протяжении последних лет в основном привлекали внимание разработчиков мелкосерийного или опытного оборудования. Это объясняется возможностью быстрого изменения конфигурации устройства путем перепрограммирования FPGA, благодаря чему можно значительно сократить продолжительность его разработки и снизить стоимость. При этом стоимость собственно FPGA при малом объеме производства готового изделия не имеет первостепенного значения.
Однако в секторе производства товаров потребительского спроса (сложной бытовой техники, устройств беспроводной связи или абонентского сетевого оборудования) сложилась совершенно другая ситуация. Здесь основное внимание уделяется как раз издержкам производства, а не срокам разработки изделия, и экономически выгоднее оказалось использовать специализированные заказные микросхемы (ASIC). Но постоянное повышение степени интеграции микросхем и переход к обработке полупроводниковых пластин большего диаметра неуклонно ведут к повышению стоимости разработки ASIC при одновременном увеличении минимальных экономически целесообразных объемов их производства*. А острая конкурентная борьба на рынке изделий массового спроса требует постоянного обновления модельного ряда продукции и, следовательно, постоянной переработки микросхем. Эти тенденции оказались очень благоприятными для производителей ПЛИС, и в первую очередь FPGA. Уменьшение площади кристалла отдельной микросхемы и увеличение размеров полупроводниковых пластин позволили значительно снизить себестоимость их производства. Наряду с непрерывно увеличивающейся стоимостью разработки микросхем ASIC этот фактор сдвигает границу экономической целесообразности выбора того или иного решения в пользу FPGA в область все больших объемов производства (рис.1). В результате микросхемы FPGA стали все больше и больше привлекать производителей массовой продукции.
ОптимизациЯ структуры программируемых логиЧеских микросхем
Логические блоки и коммутационное поле
При оптимизации структуры FPGA основное внимание следует обращать на структуру логических блоков и связанную с ними коммутационную систему. Именно эти блоки занимают большую часть площади кристалла микросхемы. При архитектуре изделия, базирующейся на таблицах соответствия (Look-Up-Table – LUT), наиболее важную роль играет поддержка возможности построения распределенного запоминающего устройства. Это вызвано тем, что при такой поддержке площадь логического блока может увеличиться до 20%. На основе многочисленных опросов инженеров, применяющих FPGA в своих разработках, специалисты фирмы Lattice Semiconductor определили необходимость поддержки распределенного ОЗУ. И хотя многие инженеры в своих разработках активно используют встроенное ОЗУ для эффективной организации регистровой или блокнотной памяти, большинство из них применяют только небольшое число LUT для поддержки этой функции (рис.2).
Чтобы обеспечить максимальное удобство пользователям при сохранении невысокой стоимости микросхемы, разработчики фирмы ограничились поддержкой функций распределенного ОЗУ только в 25% логических блоков, входящих в состав микросхем се- мейств LatticeECP/EC. Такой подход кардинально отличается от принципов построения архитектур других FPGA, предназначенных для применения в продукции массового потребления. Конкурирующие производители предпочитают либо вообще отказаться от распределенного ОЗУ, вынуждая пользователей применять значительное число LUT для организации встроенной памяти, либо, наоборот, используют ~50% распределенного ОЗУ , заставляя потребителей оплачивать дополнительные функции, которые им скорее всего не понадобятся.
Второй немаловажный фактор, влияющий на соотношение стоимость–рабочие характеристики FPGA, – построение коммутационного поля микросхемы. Многие производители FPGA, стремясь минимизировать время распространения сигналов в соединительных проводниках, уже перешли к выпуску изделий с технологическими нормами 90 нм. При этом приходится мириться с такими проблемами, как низкий процент выхода годных изделий, значительно увеличивающий стоимость FPGA, и с возникновением неуправляемых токов утечки, снижающих надежность работы микросхемы. Фирма Lattice Semiconductor пошла по альтернативному пути. Микросхемы семейства ECP/EC изготавливаются по 130-нм технологии фирмы Fujitsu с девятислойной металлизацией. Для изоляции соединительных трасс используется диэлектрик с малой диэлектрической проницаемостью. Это позволяет заметно снизить емкость соединительных трасс и обеспечить такую же задержку распространения сигналов, как и в микросхемах конкурирующих производителей, выполненных по 90-нм технологии. В то же время, благодаря высокому проценту выхода годных изделий стоимость микросхем сравнительно невелика, даже несмотря на большую площадь кристалла. Кроме того, принятая фирмой Lattice многоуровневая система коммутации, которая объединяет отдельными соединительными линиями все соседние, а также каждый второй и каждый шестой логические блоки, позволила значительно увеличить коэффициент использования ресурсов микросхемы при генерации проекта. В результате требуемая логическая схема может быть реализована на FPGA со значительно меньшим числом базовых ячеек, чем при работе с FPGA конкурирующих производителей.
Поддержка стандартов ввода/вывода
Буферы ввода/вывода и связанная с ними интерфейсная логика вносят следующий по значимости (после логических блоков и коммутационной структуры) вклад в использование площади кристалла. И эти составляющие тоже требуют оптимизации при разработке структуры FPGA. Сегодня существует широкий набор различных стандартов ввода/вывода, характеризуемых, с одной стороны, популярностью их использования, а с другой – ресурсоемкостью их реализации (рис.3). Эти показатели и определяли решение разработчиков о поддержке определенных стандартов в микросхемах семейств LatticeECP/EC. В результате в микросхемах ECP/EC в полной мере поддерживаются наиболее популярные стандарты LVCCMOS, PCI, LVTTL и LVDS. Однако стандарты с высокой ресурсоемкостью, такие как PCI и LVDS, реализованы только на половине кристалла микросхемы, поскольку большинству пользователей поддержка этих стандартов необходима только на ограниченном числе входов/выходов. Остальные малопопулярные стандарты (LVPECL, SSTL, PCI-X, HSTL и HT/LDT) реализуются только в том случае, когда для этого не требуется значительных ресурсов (например, SSTL и HSTL). Кроме того, все микросхемы семейства ECP/EC при добавлении внешних резисторов могут работать со стандартом LVPECL.
Поддержка интерфейсов внешнего ЗУ
В большинстве случаев основное требование разработчиков изделий массового спроса к внешнему ЗУ – минимальная стоимость хранения одного байта информации. Это означает применение синхронного динамического ОЗУ (SDRAM). Но в последние годы пальма первенства окончательно перешла к ЗУ типа DDR (SDRAM с удвоенной скоростью обмена), и все большее число разработчиков останавливают свой выбор именно на них.
Однако при использовании памяти DDR-типа интерфейс ОЗУ существенно усложняется. Необходимо не только синхронизировать обмен данными (DQ) с соответствующим стробирующим сигналом (DQS), но и преобразовать поток данных, управляемых по обоим фронтам тактового сигнала, в единый поток, управляемый только по одному фронту. Кроме того, частота тактового сигнала интерфейса запоминающего устройства должна быть согласована с системной тактовой частотой. Ситуация еще более осложняется двунаправленным характером сигнала DQS.
Реализация интерфейса DDR-памяти в традиционных устройствах FPGA представляет значительную сложность и требует большого числа внутренних ресурсов. В микросхемах семейств LatticeECP/EC для организации интерфейса DDR используются специализированные выделенные блоки (рис.4). Они обеспечивают корректное согласование сигналов DQ и DQS, мультиплексирование и демультиплексирование данных, а также необходимое согласование тактовых сигналов. По сравнению с традиционными FPGA такие цепи при организации 64-бит интерфейса DDR позволяют сэкономить от 500 до 1000 внутренних регистров. Это слишком значительная часть из 1500 регистров общего назначения, характерных для микросхем FPGA небольшой логической емкости. Кроме того, использование специализированных интерфейсных цепей позволяет увеличить производительность микросхемы на 25% и использовать для реализации проекта более дешевые микросхемы с меньшим быстродействием.
Стоимость конфигурационной памяти
В большинстве микросхем FPGA данные о рабочей конфигурации хранятся во встроенных ячейках статического ОЗУ. В этом случае конфигурационные параметры должны загружаться в микросхему при каждом включении питания. Для энергонезависимого хранения конфигурационной информации традиционно использовалось специализированное ПЗУ, поставляемое непосредственно самим производителем FPGA. Из-за сравнительно небольших объемов производства стоимость таких ПЗУ в ряде случаев составляла почти половину стоимости FPGA.
Чтобы хоть как-то сэкономить на памяти, многие разработчики пытались конфигурировать FPGA с помощью микропроцессора. При этом конфигурационная информация записывалась в относительно недорогую флэш-память, предназначенную для хранения кодов программ. Но это, в свою очередь, вызывало дополнительные трудности. Во-первых, при таком типе загрузки микросхема FPGA не могла служить для организации цепей обвески микропроцессора. Для этого приходилось использовать традиционные логические микросхемы или дополнительное энергонезависимое устройство программируемой логики.
Во-вторых, при хранении кода программы и конфигурационной информации FPGA в одном запоминающем устройстве программная и аппаратная реализации устройства оказывались тесно связанными и зачастую требовали полной перетрансляции программного обеспечения даже при небольших изменениях в аппаратной реализации.
В последние несколько лет большинство производителей постоянной флэш-памяти освоили выпуск малогабаритных микросхем ЗУ с SPI-интерфейсом. Вследствие острой конкурентной борьбы на рынке микросхем памяти стоимость их сохраняется на разумном уровне, который иногда может быть в несколько раз ниже стоимости специализированных загрузочных ПЗУ, поставляемых производителями FPGA. Чтобы оптимизировать полную стоимость готовой системы, при разработке семейств LatticeECP/EC была предусмотрена поддержка загрузки конфигурации непосредственно из памяти с SPI-интерфейсом. Это, конечно, не исключает других возможностей параллельной или последовательной загрузки, а также возможности конфигурации микросхемы через JTAG-порт. Кроме значительного снижения стоимости загрузка конфигурации FPGA из памяти с SPI-интерфейсом позволила значительно сэкономить площадь печатной платы (рис.5).
Внутренняя архитектура LatticeECP/EC
Приведенная концепция реализации недорогих FPGA, предназначенных для аппаратуры массового производства, была в полной мере использована при разработке FPGA семейств LatticeECP и LatticeEC. Микросхемы семейства LatticeECP объединяют оптимизированную структуру FPGA с высокопроизводительными специализированными блоками, предназначенными для построения систем цифровой обработки сигналов (рис.6). Основу структуры составляет матрица логических блоков, окруженная по периметру кристалла программируемыми устройствами ввода/вывода. Между отдельными строками логических блоков располагается встроенное блочное запоминающее устройство (EBR), по центру кристалла – набор специализированных быстродействующих DSP-блоков, обеспечивающих эффективное выполнение функций цифровой обработки сигналов. Суммарная производительность DSP-блоков составляет 109 операций умножения/накопления в секунду при работе с 18-бит операндами. Каждый DSP-блок может быть сконфигурирован для выполнения одной из следующих функций:
· умножения (MULT),
· умножения, накопления (MAC),
· умножения, сложения/вычитания (MULTADD),
· умножения, сложения/вычитания, накопления (MULTADDSUM).
Максимальное число элементов каждого типа, выполняемых на одном DSP-блоке, зависит от реализуемой функции и ширины операндов (табл.1).
Для снижения стоимости в FPGA семейства LatticeEC были исключены специализированные DSP-блоки при полном сохранении всех остальных функциональных возможностей. В FPGA семейств LatticeECP и LatticeEC используются два типа логических блоков – программируемые функциональные модули (PFU) и программируемые функциональные модули без ОЗУ (PFF). В модули PFU входят функциональные элементы, предназначенные для построения логических цепей, арифметических блоков, ПЗУ, ОЗУ и регистров. А с помощью модулей PFF можно построить только логические цепи, арифметические блоки и ПЗУ. Модули PFU и PFF оптимизированы с точки зрения максимальной гибкости, что при генерации проекта позволяет быстро и эффективно использовать ресурсы микросхемы. Логические блоки расположены на кристалле микросхемы в виде двухмерной матрицы. При этом в каждой строке матрицы находятся логические блоки только одного типа. По краям кристалла располагаются только строки с PFU-блоками. На оставшейся части кристалла блоки PFU и PFF чередуются, причем на каждые три строки PFF-блоков приходится одна строка PFU-блоков.
Каждая ячейка ввода/вывода (PIC) в составе микросхемы состоит из двух элементов ввода/вывода (PIO) с возможностью реализации различных интерфейсов. Все элементы PIO поддерживают по входу и выходу интерфейсы LVTTL, LVCMOS, HSTL и SSTL, а также обеспечивают возможность приема сигналов LVDS, BLVDS и LVPECL. Пары элементов PIO, расположенные по левому и правому краям кристалла, могут использоваться в качестве дифференциальных LVDS-передатчиков, тогда как элементы PIO на верхнем и нижнем краях содержат дополнительные ограничительные диоды для организации PCI-интерфейса. В элементы ввода/вывода интегрированы также специализированные цепи, облегчающие построение интерфейса DDR-памяти.
Входящее в состав микросхемы блочное запоминающее устройство (EBR) может быть сконфигурировано для организации двухпортового, псевдодвухпортового, однопортового ОЗУ или ПЗУ. Каждый EBR-блок содержит 9 Кбит памяти. При добавлении в структуру памяти небольшого числа логических блоков может быть организована работа в режиме FIFO. Ширина памяти программируется от 1 до 36 бит.
Все блоки PFU, PFF, PIC и EBR располагаются на кристалле в виде двухмерной матрицы. Объединяются они с помощью многочисленных вертикальных и горизонтальных соединительных линий. При генерации проекта специализированное программное обеспечение автоматически соединяет необходимые блоки в единую логическую структуру. При этом возможно ручное управление процессом оптимизации межблочных соединений с целью достижения оптимальных временных параметров логической схемы, либо максимальной степени использования внутренних ресурсов.
По краям каждой строки, содержащей блочную память, находятся блоки генерации тактовых сигналов (sysCLOCK). Включение в состав блоков sysCLOCK цепей ФАПЧ обеспечивает умножение и деление частоты, а также управляемый сдвиг фазы тактовых сигналов. В состав микросхем семейств LatticeECP/EC входят от двух до четырех независимых блоков ФАПЧ.
Каждая микросхема семейств LatticeECP/EC имеет JTAG-порт со встроенными возможностями логического анализатора. Встроенный sysCONFIG-порт допускает различные режимы параллельной или последовательной загрузки конфигурации микросхемы, в том числе поддерживает загрузку из стандартного малогабаритного ПЗУ с SPI-интерфейсом. Параметры микросхем семейств LatticeECP/EC приведены в табл. 2.
Заключение
На протяжении многих лет фирма Lattice Semiconductor устойчиво входит в первую тройку крупнейших мировых производителей ПЛИС. Продукция Lattice Semiconductor всегда отличалась использованием уникальных технических решений, значительно облегчающих разработку сложных логических цепей и предлагающих разработчику невиданные ранее возможности. Это могут быть и программируемые логические схемы со сверхнизким потреблением энергии (не более 10 мкА в статическом режиме), программируемые аналоговые микросхемы, предназначенные для усиления и фильтрации сигналов различных датчиков, уникальные программируемые аналого-цифровые схемы, позволяющие реализовать на одном кристалле функции управления и мониторинга работы сложных многовыходных источников питания. Целый набор специализированных высокоскоростных программируемых микросхем обеспечивает формирование, преобразование и коммутацию цифровых потоков со скоростью передачи до 10,7 Гбит/с. Все возможности, предоставляемые разработчикам электронных приборов программируемыми микросхемами Lattice Semiconductor, перечислить трудно.
http://www.latticesemi.com/