Основы автоматизации Ямный,Яновский
.pdfКоманды, обеспечивающие доступ ко всем этим битам, обеспечивают передачу, установку, сброс, инверсию и выполнение логических операций И, ИЛИ (табл. 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 |
|
|
|
|
|