Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы автоматизации Ямный,Яновский

.pdf
Скачиваний:
88
Добавлен:
29.02.2016
Размер:
1.36 Mб
Скачать

Команды, обеспечивающие доступ ко всем этим битам, обеспечивают передачу, установку, сброс, инверсию и выполнение логических операций И, ИЛИ (табл. 10.6).

В данную группу команд включены команды условных переходов, в которых условия перехода определяются состоянием флага С или прямо адресуемого бита (bit). Однобитный относительный адрес передачи управления –127 ≤ rel ≤ +128 является вторым байтом во всех командах операций с битами. В случае выполнения условия переход выполняется по адресу (РС) ← (РС) + rel.

10.6. Команды передачи управления

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

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 10.6

 

 

 

 

 

Команды операций с битами

Мнемоника

 

 

 

Операция

Время выполнения (МЦ)

ANL C, bit

C C bit

2

ANL C,

 

 

 

 

C C (

 

)

2

bit

bit

ORL C, bit

C C bit

2

ORL C,

 

 

 

C C (

 

)

2

bit

bit

MOV C, bit

C bit

1

MOV bit, C

bit C

2

CLRC

C ← 0

1

CLR

bit ← 0

1

SETB C

C ← 1

1

SETB bit

bit ← 1

1

CPL C

C

 

 

 

 

1

C

CPL bit

bit

 

 

1

bit

JC rel

Jump if C = 1

2

JNC rel

Jump if C = 0

2

JB bit, rel

Jump if bit = 1

2

JNB bit, rel

Jump if bit = 0

2

JBC bit, rel

Jump if bit = 1; bit ← 0

2

В результате выполнения команд безусловных переходов управление передается команде по новому адресу вне зависимости от выполнения или невыполнения каких-либо условий. Команда безусловного перехода JMP addr (табл. 10.7) имеет 3 разновидности (SJMP, LJMP и AJMP), различающиеся форматом адреса перехода.

131

 

 

Таблица 10.7

 

Команды безусловных переходов

Мнемоника

Операция

Время выполнения (МЦ)

JMP

Переход по адресу addr

2

JMP @A+DPTR

Переход по адресу @A + DPTR

2

CALL addr

Вызов подпрограммы

2

RET

Выход из подпрограммы

2

RETI

Выход из подпрограммы,

2

 

обслуживающей прерывание

 

NOP

Пустая операция

1

Команда короткого перехода (SJMP) позволяет передать управление

впределах от –128 до +127 байтов относительно адреса команды, следующей за командой SJMP.

Команда длинного перехода (LJMP) предоставляет возможность перехода по любому адресу из 64 Кбайтов памяти программ.

Команда абсолютного перехода (AJMP) позволяет передать управление в пределах одной страницы памяти программ размером 2048 байтов.

Существует две разновидности команды вызовы подпрограммы CALL: LCALL и ACALL. При использовании команды LCALL подпрограмма может быть расположена в любом месте памяти программ. В случае команды ACALL вызываемая подпрограмма должна быть расположена в одном двухкилобайтном блоке с командой, следующей за командой ACALL.

Подпрограмма завершается командой RET, позволяющей вернуться

висходную программу к выполнению команды, следующей за командой CALL. Команда RETI используется для возврата из подпрограмм обработки прерываний.

Команды условного перехода осуществляют передачу управления только в случае выполнения (невыполнения) определенного условия. В противном случае, т. е. при невыполнении (выполнении) этого условия, выполняется команда, следующая в программе за командой условного перехода.

Перечень команд условных переходов приведен в табл. 10.8. Все команды условных переходов определяют адрес назначения как относительное смещение (rel) с длиной перехода, находящейся в пределах от –128 до +127 байтов (относительно команды, следующей за командой условного перехода).

132

Таблица 10.8

Команды условных переходов

 

 

 

Адресация

 

 

 

 

Прямая

Косвенная

Регистровая

Непосредственная

Время

Мнемоника

Операция

выполнения

 

 

 

 

(МЦ)

 

 

 

 

 

 

 

 

 

 

 

 

 

JZ rel

Переход, если A = 0

Только аккумулятор

2

JNZ rel

Переход, если A ≠ 0

Только аккумулятор

2

DJNZ <byte>, rel

Декремент и переход,

х

 

х

 

2

 

если не нуль

 

 

 

 

 

CJNE A, <byte>, rel

Переход, если

х

 

 

х

2

 

(A) ≠ <byte>

 

 

 

 

 

CJNE <byte> #data, rel

Переход, если

 

х

х

 

2

 

<byte> ≠ data

 

 

 

 

 

133

Лекция 11 ПРОГРАММИРУЕМЫЕ ЛОГИЧЕСКИЕ

ИНТЕГРАЛЬНЫЕ СХЕМЫ

Появившиеся в начале 70-х годов программируемые постоянные запоминающие устройства (ППЗУ) первоначально использовались исключительно по своему прямому назначению. Позже их стали применять для реализации булевых функций. Однако ограниченная емкость ППЗУ не позволяла реализовывать системы булевых функций большого числа переменных. Для решения этой задачи в 1971 г. программируемые логические матрицы (ПЛМ, PLA) стали выпускаться промышленностью. Их можно считать первыми программируемыми логическими устройствами (PLD), получившими очень широкое распространение в качестве универсальной элементной базы цифровых систем.

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

Дальнейшее совершенствование технологии производства интегральных схем привело к возможности реализации на одном кристалле нескольких PAL, объединяемых программируемыми соединениями. Подобные программируемые логические интегральные схемы (ПЛИС) получили название сложных PLD (CPLD), а все ранее разработанные PLD стали называть стандартными PLD (SPLD), или классическими PLD.

Параллельно с PLD развивались архитектуры вентильных матриц, в русскоязычной литературе получившие название базовых матричных кристаллов. Первые вентильные матрицы были полузаказными, т. е. программировались во время изготовления, что сдерживало их широкое практическое использование. Однако в 1985 году фирма Xilinx выпустила программируемую пользователем вентильную матрицу (FPGA). Это дало сильный толчок к широкому распространению вентильных матриц и конкуренции их с PLD.

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

11.1. Основные свойства ПЛИС

Основные характеристики ПЛИС:

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

134

высокое быстродействие, характеризующееся задержкой прохождения сигнала через ПЛИС, равной 3,5 нс, и позволившее достичь частоты функционирования устройств в 250 МГЦ;

значительные функциональные возможности, позволяющие стандартным PLD заменять десятки корпусов «жесткой» логики, а сложным PLD – сотни корпусов «жесткой» логики;

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

многократность программирования, достигающая 100–1000 раз в зависимости от технологии производства и типа настраиваемого элемента;

возможность перенастройки во время функционирования системы, реализованной на CPLD, в которых в качестве настраиваемых элементов используются статические ОЗУ, позволяющая строить различные адаптивные системы;

малое (порядка 3–5 часов для проекта средней сложности) время проектирования.

Процесс проектирования цифровых систем на основе ПЛИС состоит из четырех основных последовательно выполняемых этапов:

ввод исходных данных для проектирования (ввод проекта);

выполнение синтеза отдельных частей проекта и всего проекта в

целом;

моделирование проекта;

программирование и тестирование.

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

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

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

135

шифраторов, мультиплексоров, демультиплексоров, триггеров, регистров, счетчиков и т. д.).

Ввод проекта в виде временной диаграммы осуществляется с помо-

щью графического редактора. Вначале определяются переменные (сигналы) проекта, а затем описывается поведение устройства в виде временной диаграммы.

Синтез проекта фактически заключается в компиляции его исходного описания во внутреннее представление используемого программного средства (файл). В последующем этот файл используется для моделирования.

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

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

Сложные CPLD, в которых настраиваемым элементом является статическое ОЗУ, программируются всякий раз при включении питания.

11.2. Стандартные PLD

Большинство стандартных PLD условно можно представить состоящими из двух матриц взаимно ортогональных проводников: матрицы И и матрицы ИЛИ. Входные сигналы обычно поступают на входы матрицы И, которая позволяет реализовать любые конъюнкции входных переменных. Выходы матрицы И соединены с входами матрицы ИЛИ, которая на выходах реализует дизъюнкции поступающих сигналов.

К стандартным PLD принято относить программируемые постоянные запоминающие устройства, программируемые логические матрицы, программируемые матрицы логики и программируемые логические секвенсоры (PLS).

В ППЗУ (рис. 11.1) матрица И постоянно настроена на функции полного дешифратора.

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

136

1

n

Матрица ИЛИ

DC

Матрица И

- Программируемое соединение Выходные

буфферы

Рис. 11.1. Структура ППЗУ

1

2

m

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

Матрицы И и ИЛИ имеют настраиваемую структуру. На каждый вход каждого ЛЭ И может быть подан через повторитель или инвертор любой из n входных сигналов и на каждый вход каждого ЛЭ ИЛИ может быть подан выходной сигнал каждого ЛЭ И. На рис. 11.2 эти соединения обозначены кружочком в месте пересечения ортогональных проводников.

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

Основной недостаток ПЛМ – слабое использование ресурсов программируемой матрицы ИЛИ. Поэтому дальнейшее развитие получили программируемые матрицы логики PAL.

137

1

n

Матрица ИЛИ

Матрица И

- Программируемое соединение Выходные

буфферы

Рис. 11.2.

Структура ПЛМ

1 2

m

 

 

Программируемая матрица логики, структура которой приведена на рис. 11.3, содержит n входов, матрицу И, матрицу ИЛИ, m выходных буферов (программируемых макроячеек) и цепи обратной связи. Программируемая матрица И на своих выходах позволяет получать любые элементарные конъюнкции ее входных переменных. Выходы матрицы И подсоединены к входам матрицы ИЛИ. Матрица ИЛИ имеет фиксированную настройку. Каждый выход матрицы И связывается только с одним входом матрицы ИЛИ.

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

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

138

1

n

Матрица И

Программируемое соединенение

Фиксированное

– Фиксированное

соединение

соединение

Матрица ИЛИ

Выходные

МЯ МЯ МЯ МЯ буфферы

(макроячейки)

1

2

m

Рис. 11.3. Структура ПМЛ

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

11.3. Сложные программируемые логические устройства

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

139

Наиболее популярными представителями этого класса ПЛИС яв-

ляются КМОП-макроматрицы высокой плотности (MACH) фирмы

Advanced Micro Devices (VANTIS),

многократные матричные

таблицы

(MAX) и матрицы элементов гибкой логики (FLEX) фирмы Altera.

КМОП-макроматрицы высокой плотности – MACH-устройства.

Структура MACH-устройств представляет собой совокупность PAL-бло-

ков, объединенных матрицей переключений (рис. 11.4). Основные функ-

циональные

преобразования выполняются в PAL-блоках, а матрица пе-

реключений

обеспечивает передачу сигналов между ними.

Каждый

PAL-блок имеет достаточно большое число двунаправленных внешних

выводов. Выходные сигналы формируются с помощью программируе-

мых макроячеек, имеющих обратные связи с матрицей И (рис. 11.3).

Кроме того, MACH-устройство имеет некоторое число специальных

информационных входов, сигналы с которых через матрицу переключе-

ний могут быть поданы на любой PAL-блок. Синхронизация PAL-блоков

осуществляется внешними сигналами, подаваемыми на входы С, кото-

 

 

 

рые в случае необходимости могут

 

 

 

использоваться

также

в

качестве

 

 

 

обычных информационных входов.

С

PAL-

PAL-

Характерной

особенностью

 

MACH-устройств является постоян-

 

блок

блок

 

 

 

ная задержка прохождения сигнала с

Входы

Матрица переключений

любого входа на любой выход.

В

настоящее

время

фирмой

 

 

 

 

Advanced Micro Devices (VANTIS)

 

PAL-

PAL-

разработано три поколения МАСН-

 

устройств.

 

 

 

 

 

блок

блок

 

 

составляют

 

 

 

Первое поколение

 

 

 

семейства МАСН1 и МАСН2. Прак-

 

 

 

тически все элементы этих семейств

Рис. 11.4. Обобщенная структура

являются синхронными. Они отли-

MACH-устройства

чаются

числом

выводов

(44–84),

 

 

 

числом макроячеек (32–128), числом

связей PAL-блоков с матрицей переключений (22–26), числом информа-

ционных входов (2–4) и входов синхронизации (2–8).

 

 

 

 

Второе поколение составляют семейства МАСН3 и МАСН4. В мик-

росхемах этих семейств почти в 3 раза выше степень интеграции, в 2 раза

увеличено число выводов по сравнению с MACH-устройствами первого

поколения. Кроме того, увеличено общее число макроячеек (от 96 до

 

 

140