Программируемые логические интегральные схемы

Введение

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

Основная часть специализированных ВУ реализована на микро­контроллерах. Но остается большое множество задач, требующих экстремальных характеристик быстродействия, пропускной способ­ности, энергопотребления, для реализации которых необходима раз­работка заказных микросхем. В последнее время ядро микрокон­троллера и необходимые сложные периферийные устройства выпол­няют в виде системы на кристалле (СНК). Возрастающий объем разработок специализированных ВУ и СНК требует освоения новых технологий их проектирования.

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

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

Использование при разработке ВУ таких языков проектирования, как VHDL и Venlog, позволяет отказаться от составления схем на


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

Язык VHDL - необычный язык, как для программистов, так и для разработчиков аппаратуры. Это связано с тем, что по своей при­роде VHDL - язык параллельного программирования. Начинающие программисты иногда путаются в основах программирования на VHDL, допускают трудно выявляемые ошибки, а их результирую­щие проекты ВУ нередко оказываются далекими от оптимальных. Кроме того, современная технология проектирования средств ВУ основана на ряде особенных требований, предъявляемых к проек­там, описанным на VHDL. А большинство разработчиков аппарату­ры, изучающих VHDL, с этими требованиями мало знакомо. Поэто­му цель данной книги - помочь освоить VHDL, как современное средство проектирования ВУ.


Кратко о VHDL

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

Язык Very high speed integrated circuits Hardware Description Language (VHDL) был разработан в 1983 г. по заказу Министерства обороны США с целью формального описания логических схем для всех этапов разработки электронных систем. Он является стандарт­ным языком с 1987 г. Стандартом 1993 г. закреплены многие его усовершенствования [1]. Наряду с языком Verilog он является базо­вым языком при разработке аппаратуры современных вычислитель­ных систем.

В чем преимущества VHDL над схемным проектированием?

Проектирование больших вычислительных устройств (ВУ).С по­мощью VHDL проще и быстрее ввести и проверить большой проект. Десятью строками VHDL можно описать как 1, так и 100000 триг­геров. Микросхему с интеграцией более 10000 вентилей разработать только с помощью электрических схем практически невозможно по причине громоздкости схем.

Проект на VHDL — объединение структуры ВУ и алгоритма его функционирования.Для ВУ, описанного на VHDL, необязательно выполнять проверку правильности его функционирования, напри­мер, путем его макетирования. Чтобы определить, правильно ли ВУ выполняет заданный алгоритм, достаточно его VHDL-программу за­пустить на исполнение в симуляторе VHDL. Соответствующие САПР


преобразуют VHDL-описание в комплект документации для изготов­ления работоспособного устройства.

Проект на VHDL — самодокументированный,т.е. он не требует дополнительного технического описания или представления в виде схем. Нечеткость и небрежность описания исключаются, так как проект на VHDL несложно проверить.

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

Проект на VHDL — универсальный проект.Разработанный одна­жды вычислительный блок может быть использован во многих дру­гих проектах. При этом многие структурные и функциональные па­раметры блока могут быть настраиваемыми (параметры разрядно­сти, объема памяти, элементная база, состав блока и структура межсоединений).

Проект на VHDL — портативный проект.Разработанный для од­ной элементной базы, проект ВУ без труда переносится на другую элементную базу, напр. СБИС с различной технологией.

Проект на VHDL — долгоживущий проект.Электрическая схема всегда разрабатывается под конкретную элементную базу и интер­фейс. Так как элементная база сменяется через 2-5 лет, за этот же период устаревают и электрические схемы, использующие её. Про­ект ВУ на VHDL может быть повторно использован через несколько лет. Хорошее техническое решение (напр., изобретение), описанное на VHDL, может быть востребованным в течение десятилетий.

VHDL - универсальное средство описания ВУ на уровнях:

алгоритмическом,

структурном,

регистровых передач (RTL) и потоков данных (dataflow),
и логическом,

аналоговых схем.

Ход проектирования с использованием VHDL

На рис. 1 показана схема разработки проекта ВУ, предназначен­ного для исполнения в программируемой логической интегральной схеме (ПЛИС).


Вначале ВУ описывается в виде своей поведенческой модели, на которой отрабатывается задуманный алгоритм функционирования ВУ. Затем эта модель вручную перерабатывается в синтезируемую модель ВУ, описанную на уровне регистровых передач. Такая мо­дель, будучи странслированной компилятором-синтезатором, дает проектную документацию в виде файла описания схемы ВУ на уровне вентилей (EDIF-файл). При этом автоматически выполняется логическая оптимизация ВУ. Одновременно этот файл автоматиче­ски преобразуется в VHDL-модель ВУ на уровне вентилей.

Проект ВУ в виде Electronic Distribution International Format (ЕБПГ)-файла принимается, как исходные данные, всеми САПР из­готовления ПЛИС и СБИС. Эти САПР выполняют замену вентилей на библиотечные компоненты, их размещение на площади кристал­ла, трассировку межсоединений, проектирование масок, проверку соответствия проектным нормам и т.п. В результате, записываются файлы проектной документации изготовления кристалла и его логи-


ческой модели, учитывающей задержки, как в вентилях, так и в межсоединениях. Эта модель также представляется на VHDL.

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

VHDL используется в современных САПР

Исторически сложилось, что в микроэлектронной индустрии наи­большее распространение получил язык Verilog. Полтора десятиле­тия назад этот язык выиграл конкурентную борьбу с другими язы­ками задания ВУ, благодаря небольшим вычислительным ресурсам, требуемым от прежних рабочих станций и достаточно точным ре­зультатам моделирования СБИС. VHDL - более универсальный и гибкий язык, но он проигрывал в быстродействии языку Verilog, особенно при моделировании на уровне вентилей и транзисторов. VHDL получил широкое распространение в университетах и ис­следовательских учреждениях, так как это строгий, стройный, уни­версальный и расширяемый язык. Так, например, появились пакеты VHDL для аналогового моделирования, моделирования многознач­ной логики. Кроме того, симуляторы VHDL были гораздо дешевле симуляторов Verilog.

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

Важнейшими качествами VHDL в САПР выступают следующие:

Гибкость.Проект, описанный на VHDL, может быть легко на­строен под конкретные задачи потребителя.

Универсальный язык.VHDL - общепринятый язык для всех ос­новных фирм - изготовителей микросхем ПЛИС, ПЛМ, заказных


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

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

Стандартное подключение блоков.Конструкции языка, такие как entity, port map,configuration, обеспечивают надежную и бы­струю стыковку блоков, разработанных разными фирмами и разра­ботчиками, в различном сочетании.

Стандартное тестирование.На всех этапах разработки выполня­ется тестирование по одной методике одними и теми же тестами.

VHDL — стандарт будущего.Все новые САПР основаны на техно­логии трансляции описания ВУ на языке описания аппаратуры. Ис­пользование VHDL - гарантия того, что через 5 и 10 лет найдется САПР, поддерживающая старые разработки.

Технология разработки систем на кристалле

Согласно известному закону Мора, количество транзисторов на кристалле СБИС с каждым годом увеличивается приблизительно на 60 %. С определенного момента времени то оборудование, которое размещалось на одной печатной плате, стало возможным поместить на одном кристалле (рис. 2). Причем это становится выгодным, бла­годаря уменьшению общей стоимости, числа необходимых микро­схем, энергопотребления, повышению надежности ВУ.

Таким образом, на одном кристалле размещается не только кон­кретное функциональное устройство, например, центральный про­цессор, но и другие устройства, такие как АЦП, ОЗУ, ПЗУ, блоки цифровой обработки сигналов, интерфейсные узлы и т.п., допол­няющие его до законченной системы блоков. Поэтому такое ВУ при-


нято называть System On the Chip (SOC) - системой на кристалле (CHK) [2].

СНК - это, как правило, заказная СБИС. Чтобы разработка СНК себя окупила, необходимо реализовать десятки и сотни тысяч СБИС. Проект ВУ, реализованный на ПЛИС, может быть выгодным при партиях, как в десятки, так и в десятки тысяч экземпляров, благо­даря дешевизне разработки и производства такой ВУ. Разработка такого ВУ длится, как минимум, в 2 раза быстрее, чем проектиро­вание СБИС. Это обусловило бурное распространение ПЛИС в каче­стве элементной базы СНК.

Наиболее трудоемкими и ответственными этапами разработки СНК выступают этапы структурного проектирования и верификации соответствия ВУ заданным алгоритмам функционирования. Поэтому эффективность САПР микросхем и производительность разработчи­ков, выполняющих проектирование на уровне регистровых передач, постоянно растет приблизительно на 20 % в год. Но, начиная с се­редины 90-х годов, производительность разработчиков стала заметно отставать от роста сложности СНК (рис. 3).


Первым направлением улучшения технологии разработки СНК, ориентированным на уменьшение зазора между ростом производи­тельности проектирования на уровне регистровых передач и ростом сложности СНК, является применение крупных библиотечных вы­числительных модулей (Intellectual Property Cores). Эти модули должны быть надежно повторяемыми и настраиваемыми под решае­мые задачи в ряде проектов СНК. Повторное применение таких мо­дулей (IP Core reuse), которые можно назвать вычислительными заготовками за их функциональную и технологическую адапти­руемость, позволяет уменьшить трудозатраты и сроки проектирова­ния СНК.

Второе направление - это разработка САПР совместного проектиро­вания аппаратно-программного обеспечения (Hardware - Software Codesign). Архитектура СНК, как правило, включает в себя микропро­цессорное ядро с периферийными устройствами в различном сочетании. Обычно процесс разработки ВУ с такой архитектурой состоит из трех последовательных этапов: проектирования электрической схемы аппа­ратуры, разработки матобеспечения микропроцессора и стыковки мато­беспечения с аппаратурой.

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

Наибольшее ускорение разработки СНК может дать внедрение САПР непосредственного отображения алгоритмов в аппаратуру, т.е. САПР системного проектирования. Например, такая САПР может включать в себя трансляцию программы с языка высокого уровня, таком как C++, с автоматическим разделением вычислительных за­дач между микропроцессорным ядром и спецпроцессорами и други­ми периферийными устройствами.

Для более плавного перехода от алгоритма функционирования системы, описанного на языке C++, к аппаратно-программному опи­санию всё чаще применяется язык System-C. Особенность этого под­множества языка C++ в том, что его функции имеют взаимно одно­значное соответствие с конструкциями языков VHDL и Verilog, опи­сывающими аппаратуру.


Вычислительные заготовки

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

Если такой модуль изначально оформлен в виде вычислительной заготовки, то он будет без лишних проблем вставляться в любой но­вый проект. Более того, лицензию на него можно предлагать другим фирмам-разработчикам СНК. Рисунки 2, 4 иллюстрируют суть вы­числительной заготовки (IP core).



1. VHDL и технология систем на кристалле


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

Чтобы проект ВУ был принят как гибкая вычислительная заго­товка, он должен иметь:

а исчерпывающую и ясную документацию;

а текст описания на VHDL или Verilog в хорошем стиле для синтеза, заготовка должна быть настраиваемой под техниче­ские условия потребителя;

а хорошие средства верификации в виде испытательных стен­дов, исчерпывающих тестов, возможно, экспериментальных макетов;

а четкую методику того, как ВУ вставлять в СНК, включающую надежные скрипты (программы на макроязыке САПР, автома­тизирующие тестирование и создание жесткой или твердой за­готовки) [2].

В сегодняшних условиях, чтоб быстрее перейти от идеи к "желе­зу", эффективнее провести проектирование новой СНК, необходимо эту СНК "собрать" из имеющихся вычислительных заготовок (рис. 2), а отсутствующие заготовки - приобрести на рынке IP cores, который бурно развивается в последние годы.

Если приобрести не удастся или если проект - исследователь­ский, то необходимую заготовку можно поискать, например, в банке бесплатных IP cores, что на сайте www.opencores.org. Этот банк соз­дан по инициативе организаций, содействующих развитию техноло­гии СНК, а также инженеров, желающих поделиться своими ре­зультатами. Если оба этих пути не устраивают, то придется ВУ про­ектировать самостоятельно и данная книга может этому помочь.


Программируемые логические интегральные схемы

Что такое FPGA?

Программируемые логические интегральные схемы (ПЛИС) поя­вились полтора десятилетия назад как альтернатива программируе­мым логическим матрицам (ПЛМ). ПЛИС отличаются от последних как по архитектуре, так и по технологии изготовления.

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

ПЛИС представляет собой матрицу маловходовых (от двух до пя­ти входов) логических элементов, триггеров, отрезков линий связи, соединяемых перемычками из полевых транзисторов. Судя по анг­лийскому названию ~ Field Programmable Gate Array (FPGA), ПЛИС программируются изменением уровня электрического поля (field) в затворах этих транзисторов. Затворы всех "программирующих" по­левых транзисторов подключены к выходам триггеров одного длин­ного сдвигового регистра, который заполняется при программирова­нии ПЛИС. Некоторые из участков этого регистра могут также ис­полнять роль ячеек ПЗУ.

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

По сравнению с CPLD, ПЛИС выигрывают, во-первых, в неогра­ниченном количестве перепрограммирований, во-вторых, в логиче-


ской емкости, в том числе в удельной емкости вентилей на цент, в-третьих, в малом энергопотреблении. Как правило, ПЛИС имеют на два-три порядка большую емкость в числе эквивалентных логиче­ских вентилей, чем CPLD и также как статическое ОЗУ, почти не потребляют энергии при отсутствии переключений. Поскольку топо­логия ПЛИС регулярна и масштабируема, период разработки и вне­дрения ПЛИС новых серий сравнительно мал, и они изготовляются по самой современной технологии. Наконец, у ПЛИС на порядок выше надежность (ниже интенсивность отказов), чем у CPLD.

Архитектура ПЛИС фирмы Xilinx

Фирма Xilinx принадлежит к числу родоначальников ПЛИС и самых крупных их производителей. Ниже рассматривается краткое описание архитектурных особенностей ПЛИС серии Virtex выпус­каемой этой фирмой [3]. Эти особенности наследуются в новых сери­ях ПЛИС, а также в серии Spartan, микросхемы которой призваны заменить заказные СБИС в мало- и среднесерийном производстве изде­лий электроники. Кроме того, принципы функционирования структур­ных элементов ПЛИС этой серии узнаваемы в архитектурах ПЛИС дру­гих фирм-производителей, таких как, Altera, Actel, Atmel.

Топология ПЛИС

На площади кристалла ПЛИС (рис. 5.) размещены матрица кон­фигурируемых логических блоков (КЛБ или CLB), матрица отрезков линий межсоединений, покрытых матрицами из полевых транзисто-

ров - перемычек (МП). По
краям кристалла размеше­
ны блоки настраиваемых
ОЗУ - BlockRAMs. По пе­
риметру кристалла разме­
щены блоки ввода-вывода
сигналов (IOBs), а также
периферийный канал ли­
ний межсоединений, на­
зываемый VersaRing,
предназначенный для сое­
динения КЛБ с произ­
вольным ЮВ линией свя­
зи с малой задержкой.


Для обеспечения достаточ-11 ых возможностей маршрута-1ации межсоединений, а также i [ х высокого быстродействия, используется до девяти слоев металлизации в которых реали-юваны матрица отрезков линий межсоединений, система линий < инхронизации и питания.

Логическая таблица

Роль основного логического элемента в ПЛИС играет логи­ческая таблица (ЛТ) или look-

up table (LUT), представляющая собой однобитное ОЗУ на 16 ячеек (рис. 6).

В ЛТ по адресу G3,G2,G1,G0 записана единица, если код адреса представляет собой конституенту единицы заданной четырехвходо-иой логической функцией. Например, если по адресу 1,1,1,1 записа­на единица, а по остальным адресам - ноль, то ЛТ реализует че-1 ырехвходовую функцию И. На рис. 6 показан пример кодирования функции Исключающее ИЛИ на четыре входа. Триггеры ЛТ входят и состав программирующего сдвигового регистра, и их начальное (остояние заполняется в период конфигурирования ПЛИС.

Триггер

В ПЛИС используются программируемые D-триггеры (рис. 7). При конфигурировании можно задать такие режимы работы триг-

iepa, как триггер с начальным сбросом (R) или начальной ус-[ ановкой (S), с записью по фронту или спаду синхро-< ерии, с разрешением или без разрешения записи.

После окончания конфигу­рирования ПЛИС выдает сиг-кал общего сброса GSR, кото­рый устанавливает все тригге­ры в 0 или 1.


Структура КЛБ

В базовой серии ПЛИС ХС4000 фирмы Xilinx основной единицей обору­дования считается КЛБ, состоящий из двух триггеров, двух ЛТ и схем уско­ренного переноса, суммирования и управления CY. В новых сериях ПЛИС количество триггеров и ЛТ в КЛБ уве­личилось вдвое и вчетверо. Чтобы ос­тавить для всех серий одну и ту же единицу оборудования, условились на­зывать КЛБ из двух триггеров и двух ЛТ эквивалентным КЛБ (ЭКЛБ) или CLB slice. Таким образом, КЛБ серии Virtex состоит из двух ЭКЛБ, а серии VirtexII - из четырех ЭКЛБ (рис. 8).

Схемы для ускорения арифметических операций

В ЭКЛБ две ЛТ и два триггера соеди-

нены вместе через схему ускоренного переноса и два однобитных полусумматора (рис. 9). Эти схемы позволяют эффективно реа­лизовать многоразрядные параллельные сумматоры, а на их осно­ве - различные счетчики и АЛУ.

Для минимизации оборудования и ускорения вычисления опера­ции умножения используется дополнительная схема поразрядного произведения. Необходимо добавить, что в новой серии Virtex2 реа­лизованы аппаратные умножители 18 на 18 разрядов.



Мультиплексоры в ПЛИС

Большую долю оборудования в ВС за­нимают мультиплексоры. С помощью одного ЛТ можно реализовать двух-входовой мультиплексор. Для эф­фективной реализации 4-х и более входовых коммутаторов в КЛБ имеются схемы мультиплексоров F5 и F6, которые играют роль верхних уровней древовидного мультиплексора (рис. 10).


Шины с тремя состояниями

Применение шин с тремя состояниями - типичное схемное реше­ние ВУ, реализованных на плате. Благодаря такому решению, легко достигается многомодульность и наращиваемость системы, низкие аппаратурные затраты и малые задержки в системе межсоединений. I in утри заказных СБИС редко применяются шины с тремя сос­тояниями из-за технологических трудностей их безотказной реали­зации, а также увеличенной задержки их переключения.

Несмотря на это, в ПЛИС фирмы ХШпх всё-таки широко приме­няются шины с тремя состояниями, хотя это существенно повышает их себестоимость. Зато, во-первых, проще выполнить переход от проекта схемы на плате к проекту СНК. Во-вторых, ВУ с общими шинами, к которым подключено несколько десятков модулей, имеет аппаратные затраты в несколько раз меньше, чем такое же ВУ, в котором глины заменены на эквивалентную схему из системы муль­типлексоров. В-третьих, с помощью общих шин эффективно реали-иовать встроенное распределенное ОЗУ, о котором пойдет речь ниже.

Для реализации общей шины каждый КЛБ имеет два буфера с •громя состояниями BUFT, которые через транзисторы-перемычки могут подключаться к общим шинам, проходящим вдоль всего кри­сталла (рис. 11).

В обычных шинах третье состояние характеризуется уровнем, находящимся между уровнями логической 1 и логического 0. Одна­ко в случае, когда все тристабильные буферы будут в третьем (за-

крытом) состоянии, выходные каскады приемников, подключенных к общей шине, Пудут полуоткрытыми, через них потечет большой постоянный ток, и они могут вый­ти из строя. Для исключения такого элек­трического режима, в ПЛИС общая шина нагружена на концах специальной тригтерной схемой - Weak Keeper, которая выводит уро­вень шины или к уровню Н, или к уровню L (слабые 1 или 0), если все буферы закрыты.

ОЗУ в ПЛИС

Для реализации в ПЛИС модулей ОЗУ предусмотрено две возможности. Первую воз­можность предоставляет каждая ЛТ, которая



может быть сконфигурирована как 16-битовое синхронное ОЗУ. Две соседних ЛТ могут быть сконфигурированы как 16-битовое двухпортовое ОЗУ с записью и чтением по одному адресу и чте­нием по другому адресу (рис. 12). При этом для реализации син­хронного режима записи входной бит данного, сигнал записи и ад­рес запоминаются в триггерах-защелках, а для чтения по второ­му адресу из блока второй ЛТ ис-

пользуется только мультиплексор чтения.

Для наращивания емкости памяти выхо­ды нескольких КЛБ с модулями ОЗУ через тристабильные буферы подключаются к об­щим шинам. При этом- требуется допол­нительное оборудование только для по­строения схемы дешифрации адреса, кото­рая выдает сигналы выборки той или иной ЛТ для записи или того или другого три-стабильного буфера для чтения. Такое ОЗУ распределено по площади кристалла и по­этому названо Distributed RAM.

Если ЛТ запрограммировать как прими­тив SRL16, то из ее триггеров будет реали­зован 16-разрядный сдвиговый регистр с однобитовым входом и программируемым номером выходного разряда, т.е. память FIFO регулируемой длины. Такие регистро­вые линии задержки удобно использовать при проектировании конвейерных спе­циализированных ВУ, ВУ с поразрядной


обработкой, буферов для приема и передачи данных и т.п.

Вторую возможность предоставляют отдельные блоки памяти BlockRAM. В ПЛИС серии Virtex они могут быть сконфигурирова­ны, как ОЗУ объемом 256 16-разрядных слов, 512 8-разрядных слов, и т.д. Эта память может быть запрограммирована как однопортовая или как полностью двухпортовая память (рис. 13). Начальное со-


сгоиние этой памяти задается при ее конфигурировании, поэтому ими может быть использована также как ПЗУ. В каждой новой се­рии ПЛИС объем блоков BlockRAM и их число - увеличиваются.

Блоки ввода-вывода сигналов

ПЛИС находят широкое применение благодаря тому, что их можно включать в большинство проектов ВУ и ими можно заменять схемы, реализованные на устаревшей элементной базе. Предпосыл­кой этому служит большое число блоков ввода-вывода сигналов ЮВ, настраиваемых под различные стандарты электрического соединения иходов микросхем. На рис. 14 показана структура одного ЮВ.

Сигнальный вывод ПЛИС получил название PAD. С помощью на­стройки к нему можно подключать внутренний нагрузочный рези­стор PULLUP или резистор PULLDOWN, соединенные с шиной пи­тания или шиной земли, соответственно. Эти резисторы обеспечива­ют режим выхода с открытым коллектором (стоком) для систем с рп.шичными уровнями логики. Входной сигнал с PAD поступает на компаратор IBUF, порог срабатывания которого программируется мод уровни ТТЛ, КМОП, шины PCI и многие другие, а также может регулироваться установкой подаваемого снаружи потенциала уровня срабатывания Vref. Для обеспечения временного сдвига сигнала от­носительно фронта синхросерии, обеспечивающего надежный прием сигнала во внутренние триггеры, в цепь входного сигнала может иключаться специальная схема задержки.

Выходной сигнал в ЮВ формируется в тристабильном буфере OBUFT, причем его уровень максимального тока программируется ступенями и может достигать 20 мА. Для обеспечения быстродействующего ввода-пмвода передаваемые и принимаемые биты данных, а также сигнал управления тристабильным буфером могут запоминаться в триггерах.


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

Напряжение питания ПЛИС каждого нового поколения постоян­но уменьшается, благодаря чему минимизируется энергопотребление при высоком быстродействии (см. главу 4). Для того, чтобы обеспе­чить согласование входных и выходных уровней для как можно большего числа стандартов уровней напряжения логических схем, на блоки ЮВ подается отдельное питание.

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

При диагностике, отладке, в одном из режимов конфигурирова­ния, ПЛИС может быть переключена в режим пограничного скани­рования (Boundary Scan). В этом режиме все ЮВ соединяются в це­почку одного длинного регистра сдвига. Путем стандартного внеш­него управления этим регистром сдвига через интерфейс JTAG можно считывать состояния выводов, подавать тестовые сигналы, конфигурировать ПЛИС.

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

Система синхронизации

Одним из принципов разработки проектов для ПЛИС является принцип однотактной синхронизации, согласно которому все тригге­ры в ВУ или в его блоке срабатывают одновременно по одному сиг­налу синхросерии (см. главу 4). Для его реализации в ПЛИС син­хросигналы распространяются по быстродействующей древообразной


( e i it, которая обеспечивает почти одновременный приход фронта син­хроимпульса на синхровходы всех i ршгеров (рис. 15).

Для надежного функциониро-иимия ПЛИС синхросигнал дол­жен подаваться через вывод GCLKPAD и попадать в сеть синхро­серии через буфер GCLKBUF.

В ПЛИС предусмотрено 4 вы­пи дя GCLKPAD, размещенных на iipoi ивоположных сторонах ее

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

С помощью синхронного автомата, сконфигурированного в ПЛИС, можно изменять частоту и фазу синхросерии. Но в этом <* л учае ее временные параметры будут недостаточно ста-бпмьными, и поэтому такой подход обычно не применяется. Для надежного регулирования частоты синхросерии в ПЛИС вклю-чпюг делители частоты синхросерии с автоподстройкой — блоки (MiKDLL. На рис. 16 показана типичная схема его включения. Инок CLKDLL обеспечивает умножение частоты синхросерии в 2 рм.за, сдвиг ее фазы на 90, 180 и 270 градусов, деление на 1.5, 2, 2.5, 3, 4.5, 8 и 16.



 


Конфигурирование ПЛИС

Для конфигурирования ПЛИС в ней предусмотрены входы зада­ния режима М2, Ml, МО, вывод синхросерии программирования CCLK, вход последовательности конфигурации PROGRAM, выход флага окончания конфигурирования DONE и выводы порта JTAG. В зависимости от установленного режима можно загружать прошивку ПЛИС через однобитовый вход PROGRAM, порт JTAG или 8-разрядную шину D с использованием для управления выводов WRITE и BUSY.

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

Для реализации конфигурирования через шину D необходимо до­полнительное внешнее устройство (автомат или микроконтроллер), управляющее записью и выдающее последовательность адресов чте­ния на входы ПЗУ восьмиразрядной шиной данных. Зато оно проис­ходит значительно быстрее - практически с максимальным темпом чтения из ПЗУ.

В последнее время выпускаются ПЗУ, специально предназначен­ные для конфигурирования ПЛИС через шину D, в состав которых входит автомат управления записью.