Новиков А.А., Амелина М.А. Математическое моделирование в электронике. Курс лекций - файл n1.doc

Новиков А.А., Амелина М.А. Математическое моделирование в электронике. Курс лекций
скачать (870.5 kb.)
Доступные файлы (1):
n1.doc871kb.06.07.2012 23:21скачать

n1.doc

Современные и перспективные БИС/СБИС со сложными программируемыми и репрограммируемыми структурами (FPGA, CPLD, FLEX, SOC и др.)

§ 8.1. Общие сведения

Микросхемы ПЛМ, ПМЛ и БМК, рассмотренные в гл. 7, положили начало двум основным ветвям дальнейшего развития логических схем с программируемой и репрограммируемой структурами. Продолжением линии ПМЛ стали БИС/СБИС CPLD (Complex Programmable Logic Devices), а линии БМК - FPGA (Field Programmable Gate Arrays). Стремление объединить достоинства обеих линий привело к созданию БИС/СБИС смешанной (комбинированной) архитектуры, для которых еще не выработано общепринятое название (фирма Altera пользуется названием FLEX (Flexible Logic Element MatriX) - гибкие). Рост уровня интеграции дал возможность размещать на кристалле схемы, сложность которых соответствует целым системам. Эти схемы именуются SOC (Systems On Chip).

Сказанное иллюстрируется рис. 8.1, где под MPGA понимаются Mask Programmable GAs (вентильные матрицы с масочным программированием или БМК), а остальные термины уже объяснены.

Новизна темы, которой посвящена эта глава, сопровождается отсутствием установившейся терминологии, особенно в русскоязычной литературе, где иногда одни и те же термины обозначают разные вещи. Для некоторых терминов русские аналоги еще не определились. Ввиду сказанного ниже используются преимущественно английские термины и аббревиатуры, что, кстати говоря, характерно также для справочной литературы и документации САПР.

Общее название, объединяющее совокупность ИС, рассматриваемых в этой главе, т. е. "БИС/СБИС с программируемой (либо репрограммируемой) структурой" слишком громоздко, поэтому для краткости будем пользоваться обозначением "СБИС ШГ (СБИС программируемой логики), в котором не

391

разделяются понятия БИС и СБИС (для нас это разделение несущественно) и не отражается однократность или многократность программируемости микросхемы.


Рис. 8.1. Взаимосвязь поколений СБИС программируемой логики

В разработке СБИС ПЛ участвуют уже десятки фирм, ведущими среди них являются Xilinx, Altera, Actel, Atmel, AMD (Vantis), Lattice (все США) и некоторые другие. Перечисленные фирмы достаточно полно представляют спектр продукции в области СБИС ПЛ, хотя и не исчерпывают ее. Последующее изложение темы ориентировано в основном на разработки фирм Xilinx, Altera и Actel.

Сфера применения СБИС ПЛ чрезвычайно широка, на них могут строиться не только крупные блоки систем, но и системы в целом, включая память и процессоры. Области применения СБИС ПЛ уточняются в дальнейшем, предварительно отметим важность таких применений, как отработка прототипов систем при их проектировании, даже если конечная реализация систем рассчитана на другие средства, и создание малотиражных изделий быстрыми и эффективными способами.

СБИС ПЛ классифицируются по нескольким признакам.

392

391 :: 392 :: Содержание
392 :: 393 :: 394 :: 395 :: 396 :: 397 :: Содержание

Классификация по конструктивно-технологическому типу программируемых элементов

Классификация СБИС ПЛ по конструктивно-технологическому типу показана на рис. 8.2. Программируемости, т. е. реализуемость конкретного проекта на стандартной СБИС, обеспечивается наличием в ней множества двухполюсников, проводимость которых может быть задана пользователем

392

либо очень малой (это соответствует разомкнутому ключу), либо достаточно большой (это соответствует замкнутому ключу). Состояния ключей задают ту или иную конфигурацию схеме, формируемой на кристалле. Число программируемых двухполюсников (программируемых точек связи ПТС) в СБИС ПЛ зависит от ее сложности и может доходить до нескольких миллионов. Для современных СБИС ПЛ характерны следующие виды программируемых ключей:


Рис. 8.2. Классификация СБИС ПЛ по типу программируемых элементов

Программирование с помощью перемычек типа antifuse является однократным. Высококачественные перемычки фирмы Actel (рис. 8.3) компактны, имеют очень малые токи в первоначальном (непроводящем) состоянии (около одного фемтоампера, 1 фА = 10-15 А).

Программирующий импульс напряжения пробивает перемычку и создает проводящий канал из поликремния между электродами (один электрод поликремниевый, другой - диффузионная область n+). Параметры обоих состояний перемычки должны сохраняться около 40 лет.


Рис. 8.3. Программируемые перемычки типа ONO до (а) и после (б) программирования

Элементы EPROM u EEPROM (Flash) на ЛИЗМОП транзисторах с плавающим затвором используются в схемах программируемой памяти и рассмотрены в гл. 4. Точно так же используются они и в СБИС ПЛ. Из элементов с УФ-стиранием выделился вариант вообще без возможности стирания данных - вариант EPROM-OTP (OTP, One Time Programmable). Если в обычных EPROM стирание данных производится облучением кристалла через прозрачное окошко в корпусе, то в схемах ОТР дорогостоящий корпус с окошком заменен на дешевый без окошка, т. е. возможность стирания исключается.

Не повторяя подробностей, напомним основные свойства элементов EPROM и EEPROM.

Репрограммируемые СБИС ПЛ на основе схемотехники EPROM требуют длительного (около часа) стирания старой конфигурации под воздействием ультрафиолетового излучения с извлечением СБИС из устройства и ограничением числа программировании из-за деградации свойств материалов под действием УФ-излучения.

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

394

Транзисторный ключ, управляемый триггером памяти конфигурации, показан на рис. 8.4. Ключевой транзистор Т2 замыкает или размыкает участок ab в зависимости от состояния триггера, выход которого подключен к затвору транзистора Т2. При программировании на линию выборки подается высокий потенциал, и транзистор Т1 включается. С линии записи-чтения подается сигнал, устанавливающий триггер в состояние логической "1" или "О". В рабочем режиме транзистор Т1 заперт, триггер сохраняет неизменное состояние. Так как от триггера памяти конфигурации не требуется высокое быстродействие, он проектируется с оптимизацией по параметрам компактности и максимальной устойчивости стабильных состояний. Помехи в несколько вольт для такого триггера не влияют на его состояние. Схемы с триггерной памятью конфигурации (SRAM-based) впервые разработаны фирмой Xilinx.


Рис. 8.4. Схема ключевого транзистора, управляемого триггером памяти конфигурации

Загрузка соответствующих данных в память конфигурации программирует СБИС ПЛ. Быстрый процесс оперативного программирования может производиться неограниченное число раз. В СБИС ПЛ с триггерной памятью конфигурация разрушается при каждом выключении питания. При включении питания необходим процесс программирования (инициализации, конфигурирования) схемы - загрузка данных конфигурации из какой-либо энергонезависимой памяти, что требует времени порядка десятков и даже сотен миллисекунд, если речь не идет о специальных СБИС ПЛ с так называемым динамическим оперативным репрограммированием.

Триггеры памяти конфигурации распределены по всему кристаллу СБИС вперемешку с элементами схемы, которые они конфигурируют.

Репрограммирование СБИС ПЛ с триггерной памятью конфигурации производится в том же режиме, что и рабочий режим, путем записи кодовой последовательности в цепочку триггеров. Стирание информации как специфический процесс воздействия на запоминающие элементы, требующий относительно длительных операций, вообще устранено. Несмотря на

395

повышенную сложность запоминающего элемента и его энергозависимость в силу указанных и других (рассматриваемых ниже) достоинств, СБИС ПЛ с триггерной памятью конфигурации занимают важнейшее место в новых вариантах FPGA и CPLD.

. Параметры и популярные семейства СБИС программируемой логики

СБИС ПЛ характеризуются многими параметрами и их подробная классификация по разнообразным признакам сложна и громоздка. К важнейшим параметрам относятся:

Кроме перечисленных параметров, важную роль играет и ряд других: тип базового логического элемента, постоянство или непостоянство задержек сигналов в путях их передачи, наличие или отсутствие интерфейса JTAG и программирования в системе ISP, совместимости со стандартными интерфейсами (в частности, шиной PCI), уровни питающих напряжений и режимы пониженной мощности, наличие средств засекречивания реализованного проекта и др.

Способы оценки таких параметров, как уровень интеграции (Density) и быстродействие (Performance) требуют пояснений.

Уровень интеграции (сложность)

Уровень интеграции СБИС ПЛ оценивается числом эквивалентных вентилей (обычно это вентили 2И-НЕ), размещенных на кристалле. Объективная

431

оценка сложности не так проста, как может показаться на первый взгляд. Нельзя просто подсчитать число эквивалентных вентилей в СБИС ПЛ, поскольку их в ней может даже и не быть, а имеющиеся блоки могут не разбиваться на такие вентили.

Быстродействие СБИС

Быстродействие СБИС характеризуется либо задержкой распространения сигнала по указанным путям (pin-to-pin, corner-to-corner, clock-to-output), либо максимально возможной частотой работы схемы в целом (системная частота) или счетного триггера (частота счетчика fCNT)- Обычно системная частота приблизительно вдвое ниже, чем частота переключений счетного триггера. При наличии встроенного ОЗУ указывается и цикл доступа к памяти.

Программирование в системе

Реконфигурация (программирование) в системе - одно из важнейших достоинств СБИС ПЛ, позволяющее легко производить изменения в логике их работы. Потребности в изменениях возникают как для устранения не выявленных при первоначальном тестировании ошибок, так и при модернизации системы (Upgrade). Свойство программируемости непосредственно в системе обозначается аббревиатурой ISP (In System Programmable). Следует иметь в виду, что при реконфигурации в системе должно сохраняться назначение внешних выводов, поскольку иначе потребуется изменить монтаж печатных плат.

Требования к числу допустимых для микросхемы циклов репрограммирования

Эти требования зависят от решаемых задач. Для отработки прототипа, работа которого в дальнейшем будет неизменной, достаточным может быть число циклов репрограммирования порядка нескольких десятков, что обеспечивается даже схемами с УФ-стиранием данных. Для многих других применений число допустимых циклов репрограммирования должно быть существенно большим или даже практически неограниченным.

Настройка микросхем программируемой логики

Настройка на требуемый алгоритм функционирования производится с помощью программаторов (например, для PLD) либо непосредственно в системе, что рассмотрено выше. Последнее характерно для СБИС ПЛ с триггерной памятью конфигурации.

Средства конфигурирования СБИС ПЛ с триггерной "теневой" памятью позволяют загружать ее от внешней памяти различными способами. Данные для конфигурирования могут поступать от разных источников (компьютера, ПЗУ, других СБИС ПЛ), форма их представления может быть последовательной или параллельной, роль конфигурируемой СБИС может быть активной или пассивной. В результате возникают несколько возможных режимов конфигурирования.

СБИС ПЛ, имеющие интерфейс JTAG, могут конфигурироваться с его использованием (расширенный интерфейс JTAG).

§ 8.2. Программируемые пользователем вентильные матрицы (FPGA)

Программируемые пользователем вентильные матрицы (ППВМ или FPGA) топологически сходны с канальными БМК. В их внутренней области размещается множество регулярно расположенных идентичных конфигурируемых логических блоков (КЛБ), между которыми проходят трассировочные каналы, а на периферии кристалла расположены блоки ввода/вывода (БВВ или ЮВ, Input/Output Blocks). Таким образом, архитектуру ППВМ можно представить рисунком, подобным рис. 7.21, а, д, если вместо наименования "базовая ячейка" иметь в виду наименование КЛБ, а вместо "периферийной ячейки" - БВВ.

397

К наиболее известным FPGA относятся БИС/СБИС семейств ХС2000, ХСЗООО, ХС4000, ХС5000 и Spartan фирмы Хilinх, которая в 1985 г. впервые выпустила FPGA с триггерной памятью конфигурации. Среди FPGA с перемычками типа antifuse следует отметить семейства АСТ1, 1200XL, ACTS, 3200DX фирмы Actel, используемые, в частности, в космической аппаратуре США.

Свойства и возможности FPGA зависят в первую очередь от характера их КЛБ и системы межсоединений.

Логические блоки FPGA

В качестве КЛБ (далее для краткости просто ЛБ - логические блоки) используются:

Важной характеристикой Л Б является их "зернистость" (Granularity). Другой важной характеристикой считается "функциональность" (Functionality).

Первое свойство связано с тем, насколько "мелкими" будут те части, из которых можно "собирать" нужные схемы, второе - с тем, насколько велики логические возможности Л Б.

Мелкозернистость ЛБ ведет к большей гибкости их использования, возможностям реализовать воспроизводимые функции разными способами, получая разные варианты в координатах "площадь кристалла - быстродействие". В то же время мелкозернистость ЛБ усложняет систему межсоединений FPGA в связи с большим числом программируемых точек связи.

Крупнозернистый блок семейства ХС4000Е (рис. 8.7) в качестве основы имеет три табличных функциональных логических преобразователя G, F и Н, а также ряд программируемых мультиплексоров (отмечены номерами 1...12 или надписями у выходов) и два триггера.

В FPGA с триггерной памятью реконфигурации, как правило, применяют крупнозернистые блоки. В таких блоках реализуются более сложные функции, что ведет к упрощению программируемой части межсоединений. В то же время труднее полностью использовать логические элементы блоков, что ведет к потерям площади кристалла и быстродействия. Иными словами, меняя зернистость, можно выиграть в одном и проиграть в другом.

400


Ркс. 8.7. Схема логического блока FPGA XC4000E

401

Табличные преобразователи представляют собой ППЗУ, для которых аргументы логической функции служат адресом (см. §4.5). Воспроизводятся любые функции числа аргументов п при организации памяти 2n Ч 1. Число воспроизводимых функций, т. е. число возможных вариантов программирования ЗУ, составляет 22 n . Логические преобразователи G и F (блоки памяти с организацией 16 Ч 1) воспроизводят функции 4-х аргументов. Их выходные сигналы могут непосредственно передаваться на выходы Y и X при соответствующем программировании мультиплексоров 4 и 6, либо использоваться иным образом. Через мультиплексоры 1 и 2 выходы преобразователей G и F могут быть поданы на входы преобразователя Н, если мультиплексоры запрограммированы на передачу сигналов от нижних входов. Кроме того, преобразователь Н может использоваться как третий независимый генератор функций со входами Н0, H1 и Н2, если мультиплексоры 1 и 2 запрограммированы иначе. Входной сигнал H1 может добавляться как дополнительный аргумент и при подаче на преобразователь Н выходов преобразователей G и F.

При подаче выходных сигналов преобразователей G и F на вход преобразователя Н он воспроизводит функции большего, чем 4 числа аргументов (от 5 до 9, причем для 5 аргументов воспроизводятся любые функции, а для 6...9 лишь некоторые).

В зависимости от программирования мультиплексоров 3 и 5, триггеры принимают данные от логических преобразователей или внешнего входа DIN. Сигналы К тактирования триггеров поступают от общего входа через мультиплексоры 7 и 8, программирование которых позволяет индивидуально изменять полярность фронта, тактирующего триггеры. Сигнал разрешения тактирования ЕС также поступает от общего входа, но, благодаря мультиплексорам 9 и 10, можно либо использовать сигнал разрешения, либо постоянно разрешить тактирование. Триггеры имеют асинхронные входы установки и сброса (SD - Set Direct и RD - Reset Direct), один из которых через программируемый селектор S/R может быть подключен к выходу коммутатора SR, который, в свою очередь, может программироваться для подключения к любому из внешних выводов ЛБ С1...С4. Это же возможно и для других выходов коммутаторов верхней строки рис. 8.7.

В специальных режимах блоки G и F функционируют как обычные ОЗУ, способные хранить 32 бита данных. Возможна реализация двухпортовых ОЗУ, буферов FIFO и т. д. Память распределена по всему кристаллу.

Блоки ввода/вывода FPGA

Характерные черты блока ввода/вывода рассмотрим на примере семейств ХС4000, ХС4000Е (рис. 8.8). Блок имеет два канала - для ввода сигналов и для вывода. В каждом канале сигналы могут передаваться прямым путем

402

или фиксироваться в триггерах в зависимости от программирования мультиплексоров 7 и 4. При переводе буфера 1 в третье состояние выходной контакт не должен оставаться разомкнутым, т. к. на "плавающем" высокоомном входе элементов типа КМОП может накапливаться любой заряд, что может имитировать ввод в схему непредусмотренных сигналов.


Рис. 8.8. Схема блока ввода/вывода FPGA семейства ХС4000Е

Благодаря резисторам R потенциал разомкнутой контактной площадки КП либо "подтягивается" к высокому уровню, либо привязывается к нулевой точке. Выбор между этими вариантами программируется элементами памяти конфигурации, имеющимися в схеме U/D (Up/Down). Выходной буфер 1 имеет регулировку крутизны фронта (линия SLR, Slew Rate). Скорости нарастания выходного сигнала можно придать одно из двух значений (быстрая и медленная), для чего имеется программируемый элемент памяти в схеме SLR. Пологие фронты снижают уровень помех, возникающих при работе схемы, и желательны везде, где это приемлемо по соображениям быстродействия. При включении питания во всех буферах устанавливается режим пологих фронтов.

403

Если внешний вывод работает в режиме входа (буфер 1 в третьем состоянии, буфер 2 активен), то внешний сигнал может подаваться в микросхему либо напрямую, либо через триггер, либо в обоих вариантах одновременно. В последнем случае блок ввода/вывода может демультиплексировать внешние сигналы (например, для шин адресов/данных сохранять адрес в триггере и передавать данные по прямому входу). Синхросигналы триггеров различны для входного (CLKI) и выходного (CLKO) триггера. Их полярности, как и полярность выходного сигнала О (Output), могут программироваться соответствующими мультиплексорами.

Сигнал на входе триггера 2 можно специально задерживать на несколько наносекунд программированием мультиплексора 8. Это сделано для такого подбора временного положения сигнала относительно тактирующего импульса, при котором обеспечивается совместимость с шиной PCI.

Сложные программируемые логические схемы (CPLD) и СБИС программируемой логики смешанной архитектуры (FLEX и др.)

Сложные программируемые логические ИС (СПЛИС) архитектурно произошли от структур PLD (PAL, GAL) и называются CPLD (Complex Programmable Logic Deivices).

Для русского эквивалента этого названия примем СПЛИС, хотя в ряде работ встречается наименование ПЛИС. Следовать этому нежелательно, т. к. многие авторы трактуют термин ПЛИС как наименование всех ИС программируемой логики вообще. Приемлемым вариантом названия для CPLD является и СПЛУ - сложные программируемые логические устройства, что соответствует переводу термина CPLD на русский язык.

Архитектурно CPLD состоят из центральной коммутационной матрицы, множества функциональных блоков ФБ (именуемых также макроячейками, макроэлементами и др.) и блоков ввода/вывода на периферии кристалла. Архитектура CPLD показана на рис. 8.12, где через ПМС обозначена программируемая матрица соединений (PIA, Programmable Interconect Array).

412


Рис. 8.12. Архитектура CPLD

МИКРОСХЕМЫ ТИПА CPLD (НА ПРИМЕРЕ AlteraMAX 7000 )

На рис. 8.14 показан фрагмент CPLD MAX 7000S, дающий достаточно полное представление о ней, т. к. структура CPLD в целом составляется повторением изображенного на фрагменте яруса из логических блоков ЛБ и блоков ввода/вывода БВВ то или иное число раз (на рис. 8.14 повторяющиеся ярусы должны располагаться сверху вниз) в зависимости от числа ЛБ у данной CPLD, т. е. от ее сложности. На рисунке выделены логические блоки Л Б, содержащие по 16 макроячеек МЯ, получающих термы от локальных программируемых матриц И (ЛПМИ), программируемая матрица соединений ПМС и блоки ввода/вывода БВВ.

Микросхемы семейства МАХ 7000 имеют маркировку ЕРМ7ХХХ (усовершенствованные варианты отмечаются дополнительной буквой в конце), где в трех последних позициях размещается число МЯ у данной микросхемы (от 032 у младшего представителя до 256 у старшего).

Как и во всех СБИС ПЛ, логические операции производятся в ЛБ, которые соединяются в единую схему с помощью ПМС. Каждый Л Б содержит 16 макроячеек, так что у младшего представителя семейства 2 логических блока, у старшего - 16.

ПМС обеспечивает возможность подачи на любой вход ЛБ сигнала от любого источника (выходов ЛБ или контактов ввода/вывода), причем она организована так, что на пути сигнала нет программируемых ключей, и задержки сигналов малы. Подача сигнала из ПМС в ЛБ (рис. 8.15) происходит через конъюнктор, открытый по второму входу единичным логическим сигналом с помощью программируемого транзистора, который не находится в цепи передачи сигнала. На вход ЛБ можно передать сигнал с любой вертикальной линии ПМС. Вертикальные линии непрерывны и идут по всей длине между двумя столбцами из Л Б.

415


Рис. 8.14. Фрагмент структуры CPLD MAX 7000S

Каждый ЛБ непосредственно связан со своим блоком ввода/вывода, имеющим от 6 до 12 контактов (КП - контактная площадка). Как видно, не все макроячейки могут иметь внешний вывод. Часть из них может быть использована только для подачи сигнала обратной связи в ПМС, что является естественным при построении ряда узлов (счетчиков и др.).

ПМС получает следующие сигналы: 16 сигналов обратной связи от каждого ЛБ, от 6 до 12 сигналов от БВВ, четыре сигнала (вверху на рис. 8.14)

416

от специализированных входов. Разное число контактов у БВВ позволяет выбирать более экономичный вариант там, где требования интерфейса это допускают.


Рис. 8.15. Схема передачи сигналов из программируемой матрицы соединений в логические блоки

К специализированным сигналам относятся так называемые глобальные сигналы тактирования GCLK1 и GCLK2 и сброса GCLR, а также сигналы разрешения выходов ОЕ. Здесь и в других случаях термин "глобальный" означает "единый для всех одноименных блоков СБИС". При необходимости перечисленные линии могут быть использованы как простые входы ПМС.

Из ПМС поступает по 36 сигналов для каждого Л Б и еще 6 сигналов, которые передаются в прямом или инверсном виде через мультиплексор MUX3 для глобальной шины разрешения выходов блока ввода/вывода.

Логический блок обеспечивает построение как комбинационных цепей, так и схем с элементами памяти. Одна из макроячеек ЛБ показана на рис. 8.16. Из матрицы элементов И в матрицу распределения термов МРТ поступает 5 основных термов (на рисунке слева). МРТ дает возможность использовать эти термы для сборки по ИЛИ с последующей подачей результата на элемент сложения по модулю 2 для образования комбинационной функции, а также для управления триггером по входам сброса (CLRn), установки (PRn). Терм t может быть использован для тактирования триггера или разрешения тактирования в зависимости от программирования мультиплексора MUX2.

Триггер может тактироваться от глобального сигнала GCLK с минимальной задержкой поступления сигнала синхронизации от общего входа микросхемы, что типично при реализации синхронных автоматов. Тактирование от глобального сигнала может сопровождаться индивидуальным управлением от сигнала разрешения тактирования ENA, что характерно для построения апериодических автоматов, и, наконец, возможно тактирование локальным сигналом от терма t, что соответствует асинхронным схемам.

417


Рис. 8.16. Схема макроячеек CPLD MAX 7000S

418

Имеются асинхронные сигналы установки и сброса PRn и CLRn, кроме того, сброс возможен и от глобального сигнала GCLR при соответствующем программировании мультиплексора MUX3.

Имеется возможность быстрой загрузки триггера от внешнего вывода по прямой цепи (программируется мультиплексором MUX1). В другом состоянии MUX1 передает на вход триггера значение функции, выработанное комбинационной частью макроячейки. Мультиплексор MUX4 позволяет подавать на выход макроячейки (к БВВ) либо непосредственно комбинационную функцию, либо хранящуюся в триггере (регистровый выход).

Блок ввода/вывода (рис. 8.18) дает возможность гибкого управления разрешением выходного буфера. ПМС формирует шесть глобальных сигналов разрешения выхода ОЕ. Для некоторых представителей семейства МАХ 7000 имеется возможность программирования выхода как выхода с открытым коллектором (ОК), кроме того, может программироваться и скорость изменения выходных сигналов с целью, указанной ранее (эта скорость связана с уровнем создаваемых помех).


Рис. 8.18. Схема блока ввода/вывода CPLD MAX 7000S

После семейства МАХ 7000, принадлежащего ко второму поколению CPLD, фирма Altera выпустила семейство третьего поколения МАХ 9000. Между обоими семействами много общего, но третьему поколению присущи и

420

новые свойства: интерфейс JTAG, программирование в системе ISP без применения повышенных напряжений и др.

Развитие архитектур СБИС ПЛ идет по пути создания комбинированных структур, сочетающих достоинства FPGA и CPLD. Так, например, фирма Altera выпустила семейство FLEX 8000 (Flexible Logic Element MatriX) и позднее FLEX 10K с триггерной памятью конфигурации.


Интерфейс JTAG и периферийное сканирование

Термином JTAG обозначают совокупность средств и операций, позволяющих проводить тестирование БИС/СБИС без физического доступа к каждому ее выводу. Аббревиатура JTAG возникла по наименованию разработчика - объединенной группы по тестам Joint Test Action Group. Термином "периферийное сканирование" (ПС) или по-английски Boundary Scan Testing (BST) называют тестирование по JTAG стандарту (IEEE Std 1149.1). Такое тестирование возможно только для микросхем, внутри которых

439

имеется набор специальных элементов - ячеек периферийного сканирования (ячеек ПС), в английской терминологии BSC (Boundary Scan Cells) и схем управления их работой.

Ячейки BSC размещены между каждым внешним выводом микросхемы и схемами кристалла, образующими само проверяемое устройство. Все большее число современных микросхем снабжается интерфейсом JTAG, т. е. возможностями периферийного сканирования.

Основная концепция периферийного сканирования иллюстрируется рис. 8.24, a. Ячейки сканирования BSC могут работать в разных режимах. В рабочем режиме они просто пропускают сигналы через себя слева направо и не изменяют функционирования устройства. При этом для выходов обычного логического типа нужна одна BSC, для выходов с третьим состоянием - две (вторая для выработки сигнала управления буфером), для двунаправленных выводов - три, что видно из рис. 8.24, а. Входные сигналы проходят через ячейки BSC прямо к соответствующим точкам основных схем кристалла.

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

Периферийное сканирование позволяет проверять работу самих микросхем, монтажные межсоединения микросхем между собой на печатной плате, считывать сигналы на выводах микросхемы во время ее работы или управлять этими сигналами.

440


Рис. 8.24. Структура аппаратных средств интерфейса JTAG (а) и схема ячейки периферийного сканирования (б)

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

441

переписывается во входные ячейки другой. При исправности всех межсоединений принятая информация идентична введенной.

С помощью расширения возможностей интерфейса JTAG можно производить также реконфигурацию микросхем непосредственно в системе, без извлечения микросхем из устройства.

СБИС программируемой логики типа "система на кристалле"

Уменьшение топологических норм проектирования и ряд технологических усовершенствований довели уровень интеграции современных микросхем СБИС ПЛ до величин в несколько миллионов эквивалентных вентилей, а быстродействие до тактовых частот в 500...600 и более МГц. На таких кристаллах можно разместить целую систему (процессорную часть, память, интерфейсные схемы и др.).

Определение СБИС как "система на кристалле" возникло вследствие двух факторов. Во-первых, из-за высокого уровня интеграции, позволяющего разместить на кристалле схему высокой сложности (систему). При этом разные по функционированию блоки реализуются одними и теми же аппаратными средствами благодаря их программируемости. Такие СБИС обозначаются в англоязычной литературе термином generic. Во-вторых, из-за того, что СБИС приобретает специализированные области, выделенные на кристалле для определенных функций - аппаратные ядра (Hardcores). Системы разного назначения разделяются, тем не менее, на типовые части, что и ставит вопрос о целесообразности введения в СБИС ПЛ наряду с программируемой логикой специализированных областей с заранее определенными функциями.

Введение специализированных аппаратных ядер, имея ряд позитивных следствий, сужает в то же время круг потребителей СБИС, поскольку в

425

сравнении с полностью программируемыми схемами (типа generic) уменьшается их универсальность.

Реализация сложных функций специализированными аппаратными ядрами значительно уменьшает площадь кристалла в сравнении с их реализациями на конфигурируемых логических блоках. Для некоторых аппаратных ядер площадь снижается на порядок, для других меньше. Например, умножитель 8Ч8, построенный по модифицированному алгоритму Бута и реализованный методами заказного проектирования, разместился на площади в 5 раз меньшей, чем такой же, реализованный на реконфигурируемых логических блоках, обычных для взятой FPGA.

Таким образом, введение специализированных аппаратных ядер в FPGA и CPLD - процесс противоречивый по результатам. Он сокращает площадь кристалла при реализации сложных функций и ведет к достижению максимального быстродействия, но и таит в себе нежелательные последствия для изготовителя СБИС, т. к. может ощутимо сузить рынок их сбыта, а это ведет к росту цен и потере в какой-то мере конкурентоспособности продукции.

Что же будет преобладать? Здесь ключевой вопрос - какие именно специализированные аппаратные ядра будут выбраны для реализации.

Самый очевидный выбор - блоки ОЗУ. Эти блоки в той или иной мере нужны почти для всех систем, причем некоторые из них требуют очень больших объемов памяти. Выяснились уже и условия эффективного использования ядер памяти - не слишком крупные блоки, возможность изменять организацию памяти, возможность иметь асинхронный и синхронный режимы работы, организовывать буферы FIFO и двухпортовую память. Многие FPGA уже давно основываются на SRAM-ячейках (обычно на каждый конфигурируемый ЛБ тратится 16...32 бит ОЗУ), и эти ячейки могут быть применены не только для конфигурирования ЛБ, но и организуются в простые ОЗУ, которые могут далее объединяться в более емкие регистровые файлы. Однако такой вариант не дает максимального быстродействия и существенно снижает количество доступной пользователю логики кристалла, т. к. каждые 16...32 бита памяти "выводят из строя" целый ЛБ, т. е. по эквивалентной сложности 10...20 логических вентилей.

В среднем блок ОЗУ с заказным проектированием емкостью 256...512 бит может быть реализован на площади в приблизительно 1/10 от той, которая затрачивается на подобный блок, составленный из распределенных на кристалле ячеек памяти конфигурации. Времена доступа также уменьшаются в 1,5...4 раза.

Области ОЗУ- первые и, безусловно, главные специализированные аппаратные ядра. Других не так уж много. Это умножители, используемые в некоторых СБИС ПЛ, а также схемы интерфейса JTAG. Ядра интерфейса JTAG успешно внедрились во многие СБИС ПЛ, поскольку они выполняют важные функции, нужные очень многим, занимают очень небольшую площадь на кристалле и позволяют достичь высокого быстродействия.

426

Самыми сложными из практически известных ядер являются контроллеры шины PCI, также необходимые в очень многих приложениях и требующие максимального быстродействия.

Средства описания проекта

Применение САПР требует эффективных, наглядных, управляемых и контролируемых средств описания проекта. Описать проектируемое устройство можно разными способами, причем обычно применяют способ, пригодный для описания проекта в целом. Методы описания, применимые исключительно для отдельных фрагментов устройства, относятся к числу редких.

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

Графическое представление проекта создается в базисе допустимых для выбранной САПР библиотечных элементов, например, в базисе элементов стандартной серии ТТЛ(Ш). Главное достоинство графического способа - его традиционность и наглядность, связанные с привычностью разработчиков к восприятию изображений схем. Конечно, это преимущество проявляется только при правильном иерархическом и структурном разбиении проекта.

Современные языки описания аппаратуры (HDL, Hardware Description Languages) допускают описание проектируемого устройства, как с точки зрения его поведения, так и с точки зрения его структуры. Эти возможности делают все более распространенным представление проекта в форме текстового описания алгоритмов функционирования его фрагментов в сочетании с текстовым же описанием межблочных соединений для сложных проектов. Достоинства текстового способа описания проекта заключаются в его компактности и относительной простоте автоматизации любых преобразований, включая начальную генерацию описания проекта. Очень важна возможность использования стандартных универсальных языков типа HDL, обеспечивающая простоту переноса проекта с одной аппаратной платформы на другую и переход от одной САПР к другой.

В отличие от текстовых, графические способы представления проекта обычно узко специализированы и требуют особых средств для переноса информации о проекте в другую среду, для чего могут быть применены специальные универсальные языки передачи информации о проекте (типа языка EDIF, Electronic Design Interchange Format).

Языковое описание аппаратуры получает все большее распространение. Текстовые описания имеют две основные разновидности - языки низкого уровня (аналоги языков программирования типа ассемблера) и высокого уровня.

459

459 :: Содержание

460 :: Содержание

Языки низкого уровня

Языки низкого уровня ближе к аппаратным средствам, вследствие чего представляют для компиляторов потенциальные возможности создания проектов с более выигрышными параметрами. Платой за это является обычно жесткая ориентация на определенную аппаратуру и производящую ее фирму. Примерами таких языков могут служить язык AHDL (Altera HDL) и ABEL (фирмы Xilinx). С помощью языков низкого уровня легче создавать проекты с наилучшими временными параметрами, т. к. в проектах будут учтены специфические особенности архитектуры той или иной CPLD или FPGA.

460

460 :: Содержание

460 :: Содержание

Языки высокого уровня

Языки высокого уровня менее связаны с аппаратными платформами и поэтому более универсальны. Среди них наиболее распространены языки VHDL и Verilog. Эти языки, как и другие алгоритмические языки высокого уровня, в принципе позволяют описать любой алгоритм в последовательной форме, т. е. через последовательность операторов присвоения и принятия решений. Основное их отличие в способности отражать также и параллельно исполняемые в аппаратуре действия, представляемые отдельными параллельно выполняемыми процессами с общим инициализирующим воздействием.


СИСТЕМА ПРОЕКТИРОВАНИЯ MAX PLUS
Название системы MAX+PLUS II является аббревиатурой от Multiple Array MatriX Programmable Logic User System (Пользовательская система программирования логики упорядоченных структур). Система MAX+PLUS II разработана фирмой Altera и обеспечивает многоплатформенную архитектурно независимую среду создания дизайна, легко приспосабливаемую для конкретных требований пользователя. Система MAX+PLUS II имеет средства удобного ввода дизайна, быстрого прогона и непосредственного программирования устройств.

Система MAX+PLUS II предлагает полный спектр возможностей логического дизайна: разнообразные средства описания проекта для создания проектов с иерархической структурой, мощный логический синтез, компиляцию с заданными временными параметрами, разделение на части, функциональное и временное тестирование (симуляцию), тестирование нескольких связанных устройств, анализ временных параметров системы, автоматическую локализацию ошибок, а также программирование и верификацию устройств. В системе MAX+PLUS II можно как читать, так и записывать файлы на языке AHDL и файлы трассировки в формате EDIF, файлы на языках описания аппаратуры Verilog HDL и VHDL а также схемные файлы OrCAD. Кроме того, система MAX+PLUS II читает файлов трассировки, созданных с помощью ПО Xilinx, и записывает файлы задержек в формате SDF для удобства взаимодействия с пакетами, работающими с другими промышленными стандартами.

В полную систему MAX+PLUS II входят 11 полностью внедренных в систему приложений (рис. 2.2). (Логический дизайн (design), включая все поддизайны (subdesign), называется в системе MAX+PLUS II проектом (project))



Рис. 2.2. Приложения в системе MAX+PLUS II

I. Для ввода описания проекта (Design Entry) возможно описание проекта в виде файла на языке описания аппаратуры, созданного либо во внешнем редакторе, либо в текстовом редакторе MAX+PLUS II (Text Editor), в виде схемы электрической принципиальной с помощью графического редактора Graphic Editor, в виде временной диаграммы, созданной в сигнальном редакторе Waveform Editor. Для удобства работы со сложными иерархическими проектами каждому поддизайну может быть сопоставлен символ, редактирование которого производится с помощью графического редактора Symbol Editor. Размещение узлов по ЛБ и выводам ПЛИС выполняют с помощью поуровневого планировщика Floorplan Editor.

II. Компиляция проекта, включая извличение списка соединений (Netlist Extractor), построение базы данных проекта (Data Base Builder), логический синтез (logic synthesis), извлечение временных, функциональных параметров проекта (SNF Extractor), разбиение на части (Partioner), трассировка (Fitter) и формирование файла программирования или загрузки (Assembler) выполняются с помощью компилятора системы (Compiler)

Наиболее важные этапы компиляции:

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

Если проект не помещается при монтаже в одно устройство, модуль Partitioner (разделитель) разделяет базу данных, обновленную логическим синтезатором, на несколько ПЛИС одного и того же семейства, стараясь при этом разделить проект на минимально возможное число устройств. Разбиение проекта происходит по границам логических элементов, а число выводов, используемое для сообщения между устройствами, минимизируется.

Используя базу данных, обновленную модулем разбиения, модуль трассировки (Fitter) приводит в соответствие требования проекта с известными ресурсами одного или нескольких устройств. Он назначает каждой логической функции расположение реализующего ее логического элемента и выбирает соответствующие пути взаимных соединений и назначения выводов.

Functional SNF Extractor (экстрактор для функционального тестирования)создает файл для функционального тестирования (.snf). Этот функциональный файл SNF не содержит информации о временных параметрах.

Timing SNF Extractor (экстрактор для тестирования временных параметров) создает (если компиляция проекта прошла без ошибок) файл для тестирования временных параметров (.snf), который содержит данные о временных параметрах проекта. Этот файл используется для тестирования и анализа временных параметров.

Assembler (модуль ассемблера)

Модуль ассемблера преобразует назначения логических элементов, выводов и устройства, сделанные модулем трассировки Fitter, в программный образ для устройства (устройств) в виде одного или нескольких двоичных объектных файлов, содержащие информацию для программатора, которые обрабатываются программатором системы MAX PLUS II и программирующей аппаратурой фирмы Altera (или другим программатором).

III. Верификация проекта (Project verification) выполняется с помощью симулятора (simulator), результаты работы которого удобно просмотреть в сигнальном редакторе Waveform Editor, в нем же создаются тестовые воздействия.

В САПР МАХ + PLUS II предусмотрено автоматическое вычисление трех основных классов временных параметров (модуль Timing Analyzer):

IV. Программирование ПЛИС. Непосредственно программирование или загрузка конфигурации устройств с использованием соответствующего аппаратного обеспечения выполняется с использованием модуля программатора (Programmer).

В табл. 2.3 приведены пиктограммы и описание приложений.

Таблица 2.3

Приложения системы MAX+PLUS II




Приложение

Выполняемая функция

Hierarchy Display



Обзор иерархии – отображает текущую иерархическую структуру файлов в виде дерева с ветвями, представляющими собой поддизайны. Можно визуально определить, является ли файл проекта схемным, текстовым или сигнальным; какие файлы открыты в данный момент; какие вспомогательные файлы в проекте доступны пользователю для редактирования. Можно также непосредственно открыть или закрыть один или несколько файлов дерева и ввести назначения ресурсов для них

Graphic Editor



Графический редактор – позволяет разрабатывать схемный логический дизайн в формате реального отображения на экране WYSIWYG. Применяя разработанные фирмой Altera примитивы, мегафункции и макрофункции в качестве основных блоков разработки, пользователь может также использовать собственные символы

Symbol Editor



Символьный редактор – позволяет редактировать существующие символы и создавать новые

Text Editor



Текстовый редактор – позволяет создавать и редактировать текстовые файлы проекта, написанные на языках описания аппаратуры AHDL, VHDL и Verilog HDL. Кроме того, в этом редакторе можно создавать, просматривать и редактировать другие файлы формата ASCII, используемые другими приложениями MAX+PLUS II. Можно создавать файлы на языках HDL и в других текстовых редакторах, однако данный текстовый редактор системы MAX+PLUS II дает преимущества в виде контекстной справки, выделения цветом синтаксических конструкций и готовых шаблонов языков AHDL, VHDL и Verilog HDL

Waveform Editor



Сигнальный редактор – выполняет двойную функцию: инструмент для разработки дизайна и инструмент для ввода тестовых сигналов и наблюдения результатов тестирования

Floorplan Editor



Поуровневый планировщик – позволяет графическими средствами делать назначения выводам устройства и ресурсов логических элементов и блоков. Можно редактировать расположение выводов на чертеже корпуса устройства и назначать сигналы отдельным логическим элементам на более подробной схеме логической структуры (LAB view). Можно также просматривать результаты последней компиляции

Compiler



Компилятор – обрабатывает логические проекты, разработанные для семейств устройств Altera Classic. MAX 5000, MAX 7000, MAX 9000, FLEX 6000, FLEX 8000 и FLEX 10K. Большинство заданий выполняется автоматически. Однако пользователь может управлять процессом компиляции полнеостью или частично

Simulator



Симулятор – позволяет тестировать логические операции и внутреннюю синхронизацию проектируемой логической схемы. Возможны три режима тестирования: функциональное, временное и тестирование нескольких соединенных между собой устройств

Timing Analyzer



Анализатор временных параметров – анализирует работу проектируемой логической цепи после того, как она была синтезирована и оптимизирована компилятором, позволяет оценить задержки, возникающие в схеме.

Programmer



Программатор – позволяет программировать, конфигурировать, проводить верификацию и испытывать устройства фирмы Altera

Message Processor



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


Современные и перспективные БИС/СБИС со сложными программируемыми и репрограммируемыми структурами (FPGA, CPLD, FLEX, SOC и др.)
Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации