В исходном автомате количество состояний М=7, следовательно число элементов памяти m = ] log 2 M [ = ] log 2 7 [ = 3. Пусть для синтеза используется D-триггеры.
2. Кодируем внутренние состояния автомата, используя алгоритм кодирования для D-триггеров ( чем больше переходов в это состояние, тем меньше единиц должно быть в коде этого состояния). Количество переходов в данное состояние легко определяется из обратной таблицы: a1 ~ 2, a2 ~ 3, a3 ~ 2, a4 ~ 1, a5 ~ 1, a6 ~ 1, a7 ~ 2. Поэтому коды состояний следующие:
4. Выражения для функций возбуждения получаются в виде суммы произведений aiх, где ai – исходное состояние, х – условие перехода:
,и
или, если принять, что , и ,
,и
5. Выражения для выходных сигналов автомата Мура получаем, исходя из того, что эти сигналы определяются только внутренним состоянием автомата:
, , и .
6. Для построения функциональной схемы автомата, как и в предыдущем случае, используем дешифратор состояний. Схема представлена на рис. 5.20.
5.10. Синтез автомата Мура на базе регистра сдвига
Кроме рассмотренного ранее канонического метода, существуют и другие методы синтеза управляющих автоматов, среди которых наиболее широко используется синтез на базе регистра сдвига. Этот метод позволяет при построении схемы отказаться от дешифратора, т.к. состояния кодируются унитарным кодом. В автомате количество элементов памяти выбирается равным количеству внутренних состояний. В каждый момент времени только один триггер находится в 1, остальные в 0. Обычно при синтезе на базе регистра сдвига используются D-триггеры. Очень эффективен данный метод для так называемых линейных микропрограмм, т.е. микропрограмм без ветвлений (отсутствует логические условия). Рассмотрим пример синтеза управляющего автомата Мура данным методом. Пусть закодированная ГСА микропрограммы имеет вид рис. 5.21.
Рис.5.21 Закодированная ГСА
Разметив данную ГСА для автомата Мура, получаем семь состояний. Следовательно число триггеров m=7. Выполним синтез с использованием D-триггеров. Закодируем состояния унитарным кодом: a1=1000000, a2=0100000,..., a7=0000001. Обратная структурная таблица переходов-выходов для данного автомата представлена в таблице 5.17.
Таблица 5.17
am
Kam
as(y)
Kas
x
ФВ
а6
а1(-)
D1
а7
D1
а1
а2(y1 y2)
D2
а2
а3( y2)
D3
а3
а4(y3 y4)
D4
а4
а5( y2)
D5
а5
а6(y3)
D6
а4
а7(y4)
x
D7
На основании структурной таблицы записываем выражения для выходных сигналов yi и функций Di :
D1 = a6 + a7y1 = a2
D2 = a1y2 = a2 + a3 + a5
D3 = a2y3 = a4 + a6
D4 = a3y4 = a4 + a7
D5 =
D6 = a5
D7 = a4×x
Т.к. состояния автомата закодированы унитарным кодом, то можно отождествить каждое состояние с выходом соответствующего триггера, т.е. принять аi=Qi. Для принятого способа кодирования переход из одного состояния в другое как бы сопровождается сдвигом кода, записанного в семиразрядном регистре. Этим и объясняется название метода. Функциональная схема автомата Мура, построенная по полученным уравнениям, приведена на рисунке 5.22. При определенных навыках синтез автомата Мура на базе регистра сдвига выполняется непосредственно по отмеченной ГСА без построения структурной таблицы переходов-выходов.
5.11. Контрольные вопросы
1. Дайте общее описание цифрового автомата.
2. Нарисуйте структурные схемы асинхронного и синхронного цифровых автоматов.
3. Чем определяется абстрактный автомат.
4. Запишите законы функционирования автоматов Мили и Мура. Опишите их отличия.
5. Чем определяется абстрактный С-автомат.
6. Основные способы описания и задания автоматов.
7. Приведите примеры графов автомата Мили и автомата Мура. Опишите их отличия.
8. Дайте определение эквивалентности автоматов.
9. Преобразование графа автомата Мура в граф эквивалентного автомата Мили.
10. Преобразование графа автомата Мили в граф эквивалентного автомата Мура.
11. Опишите принцип микропрограммного управления и нарисуйте структурную схему операционного устройства с микропрограммным управлением.
12. Дайте определение операционного элемента.
13. Опишите вершины, используемые в граф-схемах алгоритмов.
14. Перечислите условия корректности граф-схемы алгоритма.
15. Нарисуйте примеры содержательной и кодированной граф-схемы алгоритма.
16. Нарисуйте пример кодированной ГСА и соответствующие графы переходов автомата Мура и Мили.
17. Порядок разметки ГСА автомата Мили.
18. Порядок разметки ГСА автомата Мура.
19. Построение прямой и обратной таблицы переходов-выходов автомата Мили по размеченной ГСА.
20. Построение прямой и обратной таблицы переходов-выходов автомата Мура по размеченной ГСА.
21. Построение прямой и обратной структурной таблицы переходов-выходов автомата Мили по размеченной ГСА.
22. Построение прямой и обратной структурной таблицы переходов-выходов автомата Мура по размеченной ГСА.
23. Получение функций возбуждения и функций выходов по структурной таблице переходов-выходов автомата Мили.
24. Получение функций возбуждения и функций выходов по структурной таблице переходов-выходов автомата Мура.
25. Построение функциональной схемы автомата по выражениям для его функций переходов и функций выходов.
26. Особенности построения автоматов Мили и Мура на базе регистров сдвига.
Тема 6. Интегрированные системы элементов
Лекция 6. Программируемые логические устройства
В предыдущих разделах были изучены наиболее простые цифровые электронные компоненты, выполняющие фиксированные логические функции, так называемая ”рассыпная логика”. Их изучение позволяет перейти к рассмотрению более сложных компонентов, в которых интегрированы от десятков единиц до сотен миллионов простейших элементов. Сюда входят:
- заказные интегральные схемы (ASIC – application specific integrated circuit)
Наименьшей степенью интеграции отличаются ПЛУ, которые используются для решения небольших и достаточно простых задач. Они могут быть сконфигурированы ( перепрограммированы) пользователем для реализации различных функций. В отличии от них заказные интегральные схемы ASIC могут содержать сотни миллионов простейших логических элементов ( вентилей) и могут выполнять очень сложные функции. Их разработка представляет собой сложный, длительный и дорогостоящий процесс, которым занимаются большие специализированные компании. Поэтому внешним потребителям целесообразно рассматривать только укрупнённо их архитектуру и особенности взаимодействия с внешней средой, не вдаваясь в подробности схемотехники отдельных узлов. Основы архитектуры компьютеров, реализуемых в виде ASIC, будут рассмотрены в последующих разделах.
ПЛИС занимают промежуточное положение между ПЛУ и заказными интегральными схемами. С одной стороны, реализуемые ими функции, могут быть оперативно запрограммированы и перепрограммированы на месте самим пользователем. С другой стороны, ПЛИС могут содержать миллионы логических вентилей, что позволяет реализовывать чрезвычайно большие и сложные функции.
6.1 Основные физические принципы программирования ПЛМ и ПЛИС
На рис.6.1 приведен пример простой программируемой функции с двумя входами a и b и одним выходом y.
При наличии перемычек на входы схемы совпадения ( операция И) могут подаваться входные сигналы в прямом и инверсном виде. При отсутствии какой-либо перемычки на соответствующий вход схемы совпадения через нагрузочный резистор поступает логическая 1. Различные способы программирования различаются физическими принципами установления перемычек.
Рис.6.1. Простая программируемая функция
6.1.1 Метод плавких перемычек
При использовании метода плавких перемычек устройство изготавливается со всеми перемычками (рис.6.2), которые разработчик может выборочно удалять ( прожигать), подавая на входы устройства импульсы относительно высокого напряжения и большого тока. Если, например, удалить из схемы на рис.6.2 перемычки Faf и Fbt ( рис.6.3), то устройство будет формировать функцию
Процесс удаления перемычек называют процессом программирования ( прожигания) устройства. Устройства, конфигурирование которых основано на методе плавких перемычек, являются однократно программируемыми устройствами, так как после прожига плавкая перемычка не может быть восстановлена.
Рис.6.2. Заполнение устройства незапрограммированными плавкими перемычками
Рис.6.3. Плавкие перемычки после программирования
6.1.2 Метод наращиваемых перемычек
Данный метод прямо противоположен методу плавких перемычек. В незапрограммированном состоянии в устройстве присутствуют все перемычки, но они имеют столь высокое сопротивление, что их можно рассматривать, как разомкнутую цепь. Наращиваемая перемычка первоначально представляет собой микроскопический столбец аморфного ( некристаллического) кремния, связывающего два металлических проводника. Наращивание перемычки ( программирование) осуществляется путём преобразования аморфного кремния-изолятора в токопроводящий поликристаллический кремний с помощью подаваемых на входы устройства импульсов относительно высокого напряжения и большого тока. Например, если нарастить перемычки в цепи инвертированного входа a и прямого входа b, то устройство будет реализовывать функцию ( рис.6.4)
Рис.6.4. Наращиваемые перемычки после программирования
Однажды выращенная перемычка не может быть разрушена или возвращена в исходное состояние. Поэтому устройства, конфигурирование которых основано на методе наращиваемых перемычек являются однократно программируемыми.
6.1.3 Устройства, программируемые фотошаблоном
Фотошаблоны используются для создания транзисторов и соединяющих их на кремниевом кристалле металлических проводников, которые называются слоями металлизации, а сам процесс программирования ещё называют масочным программированием. Рассмотрим, например, транзисторную ячейку постоянного запоминающего устройства (ПЗУ), которая может хранить один бит данных ( рис. 6.5).
Стандартное устройство ПЗУ состоит из некоторого количества строк
( адреса) и столбцов ( данные), которые вместе образуют массив данных. К каждому столбцу подключен один нагрузочный резистор, который позволяет поддерживать на выводе столбца уровень логической единицы, а в каждом пересечении строки и столбца присутствует транзистор и, при необходимости, перемычка. Наличие/отсутствие перемычки задаётся фотошаблоном. Программирование ПЗУ с помощью индивидуально изготовленного шаблона состоит в том, что с его помощью определяются ячейки с перемычками и ячейки без перемычек.
При подаче активного сигнала на проводник строки все, подключённые к ней транзисторы, переводятся в открытое состояние. В случае, когда ячейка содержит запрограммированное по фотошаблону соединение, открытый транзистор этой ячейки будет соединять проводник столбца с уровнем логического 0. И наоборот, если в ячейке нет запрограммированного соединения, транзистор не будет вносить какого-либо действия и через нагрузочный резистор, подсоединённый к столбцу, на выход микросхемы будет поступать уровень логической 1.
Масочное программирование используется для программирования ПЗУ и реализации простых логических функций в виде таблиц истинности.
Недостатком устройств, программируемых фотошаблоном, является высокая удельная стоимость производства при малом тираже и неудобство использования при необходимости часто менять конфигурацию компонентов.
6.1.4 Стираемые программируемые постоянные запоминающие устройства
В отличие от однократно программируемых устройств, на практике часто бывает удобнее иметь дело с многократно программируемыми
( перепрограммироемыми) устройствами. Одним из вариантов является использование стираемых программируемых постоянных запоминающих устройств (СППЗУ).
СППЗУ-транзистор имеет такую же структуру, как стандартный МОП-транзистор, но с дополнительным ( вторым) плавающим затвором из поликристаллического кремния, изолированного слоями оксида кремния. В незапрограммированном состоянии плавающий затвор не заряжен и не влияет на работу обычного затвора. Чтобы запрограммировать транзистор, необходимо приложить к контактам затвора относительно высокое напряжение, около 12 Вольт. При этом транзистор резко включается, и быстрые электроны преодолевают слой оксида кремния, направляясь в плавающий затвор. После снятия сигнала программирования, отрицательно заряженные частицы остаются в плавающем затворе. Их заряд стабилен и при соблюдении правил эксплуатации не рассеивается на протяжении более 10 лет. Накопленные на плавающем затворе заряды блокируют нормальную работу обычного затвора и, таким образом, позволяют отличать запрограммированные ячейки от незапрограммированных. Благодаря этому свойству такие транзисторы можно использовать для формирования ячеек памяти (рис.6.6).
Рис.6.6. Ячейка памяти на основе СППЗУ-транзистора
Такая ячейка памяти больше не нуждается в плавких перемычках, наращиваемых перемычках или программируемых фотошаблоном соединениях. Для программирования используются входы устройства для заряда плавающих затворов выбранных транзисторов, тем самым блокируя их работу. В этих случаях в ячейках памяти будут храниться логические 1. Стирание ячеек памяти есть не что иное, как ”вытекание” электронов из плавающего затвора, которое происходит под воздействием ультрафиолетового излучения.
6.1.5. Электрически стираемые программируемые постоянные запоминающие устройства
Следующая ступенька технологической лестницы представляла собой электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ). В отличие от ячейки СППЗУ, ячейка ЭСППЗУ содержит два транзистора, первый из которых идентичен СППЗУ-транзистору, но имеет очень тонкий изолирующий слой оксида кремния вокруг плавающего затвора. Второй транзистор используется для стирания ячейки памяти электрическим способом.
6.1.6. Flash - технология
Технология, известная как Flash, аналогична ЭСППЗУ. Однако, в связи с архитектурными особенностями организации, отдельные ячейки не могут стираться, а только всё устройство целиком, либо большими частями.
6.1.7. Статическое оперативное запоминающее устройство
Определение ”статическое” в названии статического оперативного запоминающего устройства (ОЗУ) отражает тот факт, что однажды записанное в ячейку памяти значение будет оставаться в ней неизменным до тех пор, пока не будет специально изменено или система не будет обесточена. Обозначение ячейки памяти на основе статического ОЗУ приведено на рис.6.7.
Рис.6.7. Программируемая ячейка памяти на основе статического ОЗУ
Ячейка памяти содержит мультитранзисторный элемент статического ОЗУ, выход которого подключён к дополнительному управляющему транзистору. В зависимости от содержимого ( логический 0 или логическая 1) элемента памяти управляющий транзистор будет закрыт ( то есть отключен) или открыт ( то есть включён). Один из недостатков программируемых устройств на основе ячеек памяти статического ОЗУ состоит в том, что каждая ячейка занимает значительную площадь на поверхности кремниевого кристалла, так как состоит из четырёх или шести транзисторов, сконфигурированных в виде регистра-защёлки ( регистры, срабатывающие по уровню). Другим недостатком является то, что данные о конфигурации устройства будут утеряны при отключении питания. При включении питания конфигурирование устройства необходимо будет делать заново. Основным достоинством использования ячеек памяти на основе статического ОЗУ является возможность быстро и бесконечное число раз перепрограммировать устройство.
6.1.8. Сравнительная таблица технологий программирования
В таблице 6.1 кратко перечислены наиболее важные характеристики рассмотренных технологий проектирования относительно их использования в ПЛИС. Отсутствующая в таблице технология СППЗУ в ПЛИС не используется.
Таблица 6.1. Характеристики технологий программирования
Характеристика
Статическое ОЗУ
Наращиваемые перемычки
ЭСППЗУ/Flash
Технологический процесс
Современ-ный уровень развития
Отставание на од-но или несколько поколений
Отставание на од-но или несколько поколений
Перепрограммирование
Да( внутри-системно)
Нет
Да( внутрисистем-но или в выклю-ченном состоянии)
Скорость перепрограммиро-вания ( включая стирание)
Быстрая
-
В 3 раза медленнее статического ОЗУ
Энергозависимость (возмож-ность программирования при включении питания)
Да
Нет
Нет
( возможно при необходимости)
Потребность во внешнем конфигурационном файле
Да
Нет
Нет
Пригодность для изготовления прототипов устройств
Да
( высокая пригодность)
Нет
Да
( приемлемо)
Готовность к работе сразу после включения питания
Нет
Да
Да
Защита прав интеллек-туальной собственности
Приемлемая
Очень хорошая
Очень хорошая
Размер конфигурационной ячейки
Большой
( шесть тран-зисторов)
Очень малый
Малый
( два транзистора)
Мощность потребления
Средняя
Низкая
Средняя
Устойчивость к радиации
Нет
Да
Нет
6.2 Простые и сложные ПЛУ
Программируемые логические устройства (ПЛУ) условно подразделяют на простые ПЛУ ( SPLD – simple programmable logic devices) и сложные ПЛУ (CPLD – complex progmmable logic devices), которые, в свою очередь делятся на разновидности в зависимости от используемых технологий программирования ( рис.6.8).