Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.sm.bmstu.ru/sm5/n4/oba/zan7.html
Дата изменения: Thu Feb 15 17:43:26 2007
Дата индексирования: Mon Oct 1 18:57:08 2012
Кодировка: Windows-1251
СМ5 : Школа разработки аппаратуры цифровой обработки сигналов на ПЛИС
 

Школа разработки аппаратуры цифровой обработки сигналов на ПЛИС
Стешенко В.Б., Самохин А.В.


Занятие 7. Особенности функционирования ПЛИС в составе системы ЦОС.

Когда читатель возьмет в руки номер журнала "Chip News" с этим занятием, учебный год в большинстве вузов будет близок к завершению, наступает пора экзаменов. Подходят к концу занятия и в нашей школе [1]. Это занятие посвящено в основном особенностям аппаратной реализации систем ЦОС с использованием ПЛИС. Мы рассмотрим некоторые практически значимые особенности использования возможностей современных ПЛИС.

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

Понятие программирование в системе (In-system programmability, ISP) относится к тем плис, которые позволяют произвести программирование непосредственно в составе системы без использования программатора, на смонтированной плате, причем программирование ПЛИС или конфигурационного ПЗУ может производиться многократно. Реконфигурирование в схеме (In-circuit reconfigurability, ISR) позволяет произвести перезагрузку данных в ПЛИС, построенной по SRAM технологии "на лету", то есть без выключения питания системы. Свойства ISP и ISR характерны для практически всех современных ПЛИС, выпускаемыми ведущими фирмами - производителями (см. занятие 1 настоящего цикла [1]).

Как правило, микросхемы CPLD (XC9500 фирмы Xilinx, MAX7000S, A, B, E, MAX3000A, MAX9000 фирмы Altera и др.) программируются в системе через стандартный четырехконтактный JTAG интерфейс [2]. Программное обеспечение создает конфигурационную последовательность, которая загружается в ПЛИС с помощью специализированного загрузочного кабеля (ByteBlaster, BitBlaster или MasterBlaster для устройств фирмы Altera, XChecker для устройств фирмы Xilinx). Кроме того, для программирования таких ПЛИС можно использовать стандартный JTAG тестер или простой интерфейс, эмулирующий последовательность команд JTAG.

В качестве примера, рассмотрим схему конфигурационного кабеля ByteBlaster MV, опубликованную фирмой Altera [3] и предназначенного для программирования ПЛИС семейств конфигурации MAX7000S, A, B, E, MAX3000A, MAX9000. На рис.1. приведена принципиальная электрическая схема устройства.

Рис.1. Принципиальная схема загрузочного кабеля ByteBlaster MV.

На схеме резисторы, помеченные (1) имеют номинал 100 Ом (реально можно от 50 до 150 Ом) и предназначены для защиты линий ввода - вывода. Конечно, в экстренных случаях, можно обойтись без них, но следует помнить, что "скупой платит четырежды" и не экономить на спичках (менять поврежденную ПЛИС обойдется дороже). Подтягивающие резисторы (pull-up resistors), обозначенные (2) имеют номинал 2,2 кОм (ясно, что на деле от 1 до 3.3 кОм). Микросхема шинного формирователя желательно 74НС244 (российский или белорусский аналог - 1564АП5), хотя у автора один из ByteBlasterMV был собран на микросхеме серии 74АС (просто под рукой другого не оказалось) и успешно работает. Если вы работаете только с 5 вольтовыми ПЛИС, то пойдут и серии 1533 и 555 (74ALS и 74LS), но тогда гарантий успешного программирования никто не даст. Вообще говоря, наверное не следует заниматься изобретением велосипеда, благо штатная схема не содержит дефицитных компонентов, ее себестоимость порядка 1,5 -2 долларов. Следует помнить, что длина кабеля от параллельного порта до ByteBlasterMV не должна превышать 100 - 120 см (хотя в стандартном устройстве, поставляемом фирмой Altera, схема смонтирована непосредственно в корпусе разъема, но это неудобно в работе), длину кабеля от ByteBlasterMV до платы с установленной ПЛИС не стоит делать больше 25 см.

На рис.2 приведена распайка разъема устройства ByteBlasterMV.

Рис.2. Разъем кабеля ByteBlasterMV.

На рис. 2 все размеры в дюймах. Обычно используют стандартный разъем на 10 жильный ленточный кабель под обжим.

Назначение контактов разъема кабеля ByteBlasterMV в различных режимах приведено в таблице 1.

Таблица 1.

Контакт разъема

ByteBlaster

Режим последовательной пассивной конфигурации (PS Mode)

Режим программирования по порту JTAG (JTAG mode)

Сигнал

Назначение

Сигнал

Назначение

1

DCLK

Тактовый сигнал

TCK

Тактовый сигнал

2

GND

Сигнальная земля

GND

Сигнальная земля

3

CONF_DONE

Контроль завершения конфигурации

TDO

Данные с ПЛИС

4

VCC

Напряжение питания

VCC

Напряжение питания

5

nCONFIG

Контроль кофигурации

TMS

Контроль автомата JTAG

6

-

Не подключен

-

Не подключен

7

nSTATUS

Состояние конфигурации

-

Не подключен

8

-

Не подключен

-

Не подключен

9

DATA0

Данные в ПЛИС

TDI

Данные в ПЛИС

10

GND

Сигнальная земля

GND

Сигнальная земля

Режим последовательной пассивной конфигурации (PS Mode) применяется для загрузки конфигурации ПЛИС, выполненных по технологии SRAM, таких семейств, как FLEX6000, 8000, 10K, APEX,ACEX. Режим программирования по порту JTAG (JTAG mode) применяется для программирования в системе ПЛИС CPLD, а также конфигурационных ПЗУ ЕРС2 и готовящихся к выпуску ЕРС4, а также загрузки SRAM устройств (правда реже чем PS Mode). При работе с устройством необходимо помнить, что все коммутации и подключение кабеля следует проводить при выключенном питании. Питание устройства осуществляется от источника питания системы, в которую установлена ПЛИС. Естественно, земли должны быть общими.

На рис.3 и 4 приведены примеры включения ПЛИС для конфигурации ПЛИС и программирования.

Рис.3. Включение ПЛИС FLEX10K в режиме последовательной пассивной конфигурации с помощью кабеля ByteBlasterMV

Рис.3. Включение ПЛИС МАХ7000,9000 в режиме программирования через интерфейс JTAG.

Конфигурационные ПЗУ и режимы загрузки.

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

При необходимости загрузки ПЛИС большой емкости используется каскадное включение нескольких ПЗУ. На рис.5 приведена схема включения конфигурационных ПЗУ и ПЛИС семейств FLEX6000, FLEX10K, APEX20K фирмы Altera. Все резисторы имеют номинал 1 кОм.

Рис.5. Конфигурация ПЛИС FLEX6000, FLEX10K, APEX20K при помощи ПЗУ EPC2, EPC1, EPC1441.

Кроме использования ПЗУ, ПЛИС можно конфигурировать с использованием контроллера системы, в которой применена ПЛИС. В таблице 2 приведены возможные режимы конфигурации ПЛИС

Таблица 2.

Режим конфигурации

Применение

Passive Serial (PS)

Пассивный последовательный

Конфигурация по последовательному синхронному порту микропроцессора (МП) или устройству ByteBlaster, BitBlaster, MasterBlaster

Passive Parallel Synchronous (PPS)

Пассивный параллельный синхронный

Конфигурация по параллельному синхронному порту МП

Passive Parallel Asynchronous (PPA)

Пассивный параллельный асинхронный

Конфигурация по параллельному асинхронному порту МП. МП адресует ПЛИС как память

Passive Serial Asynchronous (PSA)

Пассивный последовательный асинхронный

Конфигурация по последовательному асинхронному порту микропроцессора (МП)

JTAG

Используется стандарт IEEE Std. 1149.1

 

Особенности конструирования устройств на ПЛИС.

Электронные узлы ЦОС с использованием современных ПЛИС значительно отличаются от устройств разработки конца 80-х - начала 90-х годов. Во-первых, новые технологии поверхностного монтажа привели к уменьшению габаритов компонентов в 3 -6 раз. Во -вторых, появились новые корпуса интегральных схем с малым шагом между выводами (0.5 -0.65 мм), корпуса с шариковыми выводами (BGA), новые малогабаритные дискретные компоненты и соединители. В-третьих, повысилась точность изготовления печатных плат, повысились возможности для разводки сложных устройств в малых габаритах. Появление новой элементной базы позволяет говорить о возможности воплощения сложных систем на одной плате и даже на одном кристалле (system -on -chip). Это означает, что на одной и той же типичной плате устройства обработки сигналов в малых габаритах размещаются высокочувствительный аналоговый тракт, аналого-цифровой преобразователь, высокоскоростная схема цифровой обработки на процессоре и (или) программируемых логических интегральных схемах, буферные элементы и драйверы линий связи, элементы стабилизаторов напряжения питания и преобразователей уровня и другие узлы. Естественно, что это накладывает свой отпечаток на методологию разработки платы и конструирования всего устройства в целом.

При проектировании плат с использованием средств САПР необходимо всегда помнить, что сколь совершенными ни были алгоритмы автоматической трассировки, они никогда не заменят работу конструктора. В лучшем случае в автоматическом режиме возможна трассировка малочувствительных, медленных (до 3 -5 МГц) цифровых цепей. А серьезные платы трассируются только вручную. Полезно проводить их анализ на взаимные помехи с использованием специализированных программных средств.

Особое внимание следует уделять проблеме заземления. Этому вопросу каждая фирма - производитель элементной базы, уделяет огромное внимание в своих Application notes (например [4]) однако, до сих пор многие разработчики наступают на одни и те же грабли.

Как известно, земляная шина определяется как эквипотенциальная поверхность, потенциал которой служит для схемы уровнем отсчета напряжений.

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

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

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

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

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

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

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

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

После завершения разработки топологии платы устройства ЦОС стоит максимально расширить все силовые цепи, земли, ответственные сигнальные цепи.

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

 

Пример реализации устройства ЦОС на ПЛИС

В качестве примера рассмотрим реализацию алгоритма демодуляции ЧМн сигналов, примененную при проектировании цифрового приемника телеметрической информации. Реализация цифровой части алгоритма демодуляции и выделения синхроимпульса была выполнена на кристалле FLEX10K50. Входными сигналами являлись две квадратуры принятого сигнала полученные после смесителей. Реализованное устройство состоит из входных цифровых КИХ фильтров с 16 отводами, непосредственно блока демодуляции ЧМн сигнала и блока синхронизатора.

Для реализации входных КИХ фильтров был использован пакет Altera DSP Design Kit. Данный пакет был выбран ввиду того, что он позволяет по рассчитанным коэффициентам цифрового фильтра быстро получить AHDL описание устройства с данными характеристиками и максимально доступной точностью при заданных значениях точности входных данных и внутреннего представления коэффициентов фильтрации. Для этого исходные коэффициенты фильтра масштабируются. Кроме этого DSP Design Kit позволяет сгенерировать векторный файл для моделирования работы фильтра, а также позволяет преобразовать выходные данные отклика фильтра к масштабу входных данных и построить график отклика фильтра на входное воздействие.

Вход фильтра является восьмибитным, представление коэффициентов также восьмибитное, точность вычислений и выходной сигнал имеют семнадцатибитную точность. В отличие от классической реализации КИХ фильтров в виде набора умножителей для взвешивания задержанных отсчетов входного сигнала и выходного сумматора, данная реализация вообще не содержит умножителей. Все операции умножения заменены операциями распределенной арифметики, что возможно благодаря постоянству коэффициентов фильтрации и наличию в кристаллах FLEX10К так называемых look-up-tables (LUTs). Результат операции умножения представляется в виде суммы нескольких слагаемых. Значения этих слагаемых выбираются из заранее сгенерированной по значениям коэффициентов фильтра таблицы в соответствии со входными данными. Сигналы с выходов фильтров (восемь бит в дополнительном коде) подаются на квадратурные входы блока частотной демодуляции. Демодулятор должен осуществлять преобразование вида

,

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

Отсюда вытекает структурная схема детектора, которая приведена на рис.6.

Рис.6. Структурная схема цифрового частотного детектора

Для реализации демодулятора понадобились два регистра для хранения значений квадратур в предыдущий (k-й) момент времени - и , два умножителя и один сумматор. Отличительная особенность данной структуры - простота реализации на ПЛИС - вся схема является разомкнутой, может быть реализована на библиотечных компонентах пакета MAX+PLUS II.

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

где n - количество отсчетов на символ, а m - количество символов используемых синхронизатором символов.

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

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

Так как синхронизатор работает по принципу максимума правдоподобия, то схема должна выставлять синхроимпульс в момент достижения выходным сигналом максимума. Для определения момента наступления локальных максимумов этот сигнал дифференцируется, и теперь уже ищутся моменты перехода сигнал через ноль, а точнее, моменты смены знака продифференцированного сигнала. Причем смене значения знакового бита с 0 на 1 будет соответствовать максимум значения выходного сигнала. Однако, для того, чтобы синхроимпульс всегда появлялся ближе к середине нужно отслеживать не момент, когда максимально, а момент, когда этот сигнал достигает минимального значения. Именно поэтому в реализованной схеме отслеживается момент изменения знакового бита производной с 1 на 0.

Недостаток такой реализации - значительная потребность в ресурсах трассировки ПЛИС. Поэтому если число слипшихся подряд одинаковых символов велико, целесообразно применять другой вариант выделения тактового импульса - выделение фронтов символьной последовательности с помощью схемы "исключающее или" и подача их на опорный вход ФАПЧ, например 74НС7046. Правда, в этом случае, мы теряем в помехоустойчивости схемы.

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

Заключение

Вот и завершилось последнее занятие школы: Последнее ли ?.. Опыт автора и редакции говорит, что интерес к учебным циклам в журналах схемотехнического профиля все время возрастает. Журнал "Chip News" стал пионером в этом направлении, начав публиковать школу проектирования цифровых устройств Н.Воробьева, настоящий цикл, цикл статей по применению пакета MatLAB. Начинают публикацию учебных циклов и другие периодические издания. Наверное, это позволит сократить дефицит учебной и методической литературы для подготовки новых кадров в области разработки сложных устройств.

Рад сообщить, что в конце мая 2000 года выходит моя книга "ПЛИС фирмы ALTERA: проектирование устройств обработки сигналов" [6], основанная на материале этого цикла.

В заключение хотелось бы поблагодарить главного редактора журнала А.Биленко, научного редактора А.Осипова, весь коллектив редакции за осуществление идеи Школы. Надеюсь, что мои статьи помогли начинающим разработчикам. Я признателен читателям, откликнувшимся на предыдущие занятия и приславшим свои замечания и пожелания. На мой взгляд, только совместная работа разработчиков, дистрибьюторов и редакций научно-технических изданий позволит наверстать упущенное в написании и издании современной учебной литературе по схемотехническому проектированию.

Литература

  1. В.Стешенко. Школа разработки аппаратуры цифровой обработки сигналов на ПЛИС. // Chip News,1999, ?8-10, 2000, ?1, 3 -4.
  2. IEEE Standart 1149.1a -1993.
  3. ByteBlasterMV Parallel Port Download Cable, Data Sheet, Altera corporation, ver.1, April 1998.
  4. AN74. High Speed Boards Design , Altera corporation.
  5. В.Стешенко. ACCEL EDA: технология проектирования печатных плат. -М.: "Нолидж", 2000.
  6. В.Стешенко. ПЛИС фирмы ALTERA: проектирование устройств обработки сигналов -М.: "Додека", 2000