ВВЕДЕНИЕ
Темой данной дипломной работы является создание программной модели арифметико-логического устройства (АЛУ). Проектирование схем с помощью ЭВМ в данный момент является одним из наиболее перспективных способов повышения производительности и качества инженерного труда и получает все более широкое распространение в радиоэлектронике и вычислительной технике.
Традиционный подход к проектированию электронных схем заключается в том, что проектировщик, вооруженный знаниями и опытом, берет в руки карандаш и бумагу, обкладывается таблицами и, полагаясь в значительной степени на свою интуицию, составляет приближенный макет схемы. Затем наступает этап макетирования, результаты предварительного проектирования подтверждаются и возможно улучшаются путем подбора элементов методом проб и ошибок.
Однако такой подход, становится непригодным для анализа интегральных схем, потому что оказывается невозможным дублировать интегральную схему дискретными компонентами. Очевидно, что путем макетирования с помощью дискретных элементов невозможно точно воспроизвести паразитные эффекты и характеристики согласования элементов, входящих в интегральную схему. Невозможно также выполнить с помощью макетирования анализ допусков или анализ наихудшего случая, так как практически невозможно осуществить при макетировании изменение параметров приборов.
Вместо имитации схемы посредством макетирования можно воспользоваться программой на ЭВМ, которая позволит выполнить анализ схемы автоматически. Такую программу общего анализа часто называют машинной моделью. Поскольку приборы, входящие в интегральную схему, часто удается более точно имитировать с помощью модели схемы, чем с помощью дискретных физических компонент, то и результаты, получаемые при машинном моделировании, могут быть значительно точнее, чем результаты макетирования. Кроме того, стоимость машинного моделирования схемы обычно составляет лишь малую часть стоимости макетирования.
В настоящее время программы моделирования электронных схем общепризнанны в качестве обязательного элемента при проектировании сложных электронных схем. Суть этого метода в том, что оператору достаточно просто нарисовать электрическую схему на компьютере и указать номиналы использованных элементов, после чего мы имеем практически готовую схему, которую мы сможем исследовать в различных режимах работы и в любой момент изменить схему путем простой ее перерисовки.
Разрабатываемая модель АЛУ по функциональным
свойствам и структуре будет отражать наиболее общие тенденции в развитии
микропроцессорной техники, что позволяет использовать её в качестве
лабораторной работы, для обучения студентов.
1. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ФУНКЦИЙ АЛУ В
СОВРЕМЕННЫХ МИКРОПРОЦЕССОРАХ
Микропроцессоры (МП) получают всё большее распространение в различных областях народного хозяйства и военного промышленного комплекса. Везде, где требуется автоматизация производственного процесса, находят своё применение МП. Персональные компьютеры, имеющие в своём составе CPU (central processor unit), а так же множество других периферийных устройств, работу которых так же обеспечивают процессоры, лишь малая часть того, где используются МП. Одним из главных составляющих узлов МП является АЛУ, обеспечивающее выполнение различных арифметических и логических операций. Разрядность АЛУ, а так же его быстродействие являются основными факторами, определяющими производительность МП.
Для анализа будем использовать зарубежные микроконтроллеры фирмы «Motorolla» и «Аnalog divices» и отечественного микропроцессорного комплекта К1815.
Для построения процессоров с последовательно-параллельной обработкой информации предназначена ТТЛШ БИС специализированного АЛУ К1815ИА1. БИС содержит четыре одноразрядных АЛУ с общим управлением. В состав каждого разряда входят два буферных регистра RG1, RG2, одноразрядное АЛУ ALU, регистр «маски» RG3, регистр переноса RG4, три коммутатора S1- S3 (рисунок 1.1).
В буферные регистры RG1 и RG2 информация подается с магистралей DA и DB соответственно. Запись данных осуществляется независимо: в RGl по срезу сигнала SYN1, а в RG2 по срезу сигнала SYN2. Содержимое регистра RG2 выдается на магистраль DQ.
В зависимости от кода на управляющих входах DV и СО1 над содержимым регистров RGI и RG2 в ALU выполняются соответствующие операции (таблица 1.1). В регистр RG3 по срезу сигнала SYN3 записывается результат операции, выполняемой ALU. Возникающий при выполнении арифметических операций перенос может быть записан в RG4 по срезу сигнала SYN4.
Четырехразрядный коммутатор S1 обеспечивает передачу на выходы DF0,...DF3 сигналов с трех направлений: а) с выходов АЛУ (при состоянии «О» триггеров «маски» RG3 [0-3] и значении «1» сигнала СО2); б) со входов маски RG3 [0-3] (при значении «1» сигнала С02); в) со входов DD [0-3] при значении «О» сигнала СО2.
Четырехразрядный коммутатор S2 обеспечивает
передачу на выход БИС DAL [0-3] информации с выходов АЛУ при значении «О»
триггеров «маски» RG3 [0-3]. Четырехразрядный коммутатор S3 служит для выдачи
на выходную магистраль DW состояния регистра «маски» RG3 при значении «О»
сигнала СОЗ.
Рисунок 1.1 - Структурная схема БИС АЛУ К1815ИА1
Таблица 1.1 -Функции АЛУ микросхемы к1815ИА1
|
Набор функций |
CO1-1, логическая функция |
СО1-0, арифметическая функция |
||||
|
D v 3 |
D v 2 |
D v 1 |
D v0 |
|
|
|
|
0 |
0 |
0 |
0 |
|
|
|
|
0 |
0 |
0 |
1 |
|
|
|
|
0 |
0 |
1 |
0 |
|
|
|
|
0 |
0 |
1 |
1 |
0 |
минус 1 |
0 |
|
0 |
1 |
0 |
0 |
AB |
А
плюс |
|
|
0 |
1 |
0 |
1 |
|
(А+В)
плюс |
|
|
0 |
1 |
1 |
0 |
|
|
|
|
0 |
1 |
1 |
1 |
|
|
|
|
1 |
0 |
0 |
0 |
|
|
|
|
1 |
0 |
0 |
1 |
|
|
|
|
1 |
0 |
1 |
0 |
B |
(А плюс В) плюс АВ |
( |
|
1 |
0 |
1 |
1 |
|
АВ минус 1 |
АВ |
|
1 |
1 |
0 |
0 |
1 |
А плюс А |
А плюс А плюс 1 |
|
1 |
1 |
0 |
1 |
|
|
|
|
1 |
1 |
1 |
0 |
|
|
|
|
1 |
1 |
1 |
1 |
A |
А минус 1 |
А |
Четырехразрядный коммутатор S3 служит для выдачи на выходную магистраль DW состояния регистра «маски» RG3 при значении «О» сигнала СОЗ. В БИС предусмотрена установка в «О» регистров RGI, RG2, RG4 при состоянии «1» на входе SR.
Микроконтроллеры являются наиболее массовым представителем микропроцессорной техники. Интегрируя на одном кристалле высоко производительный процессор, память и набор периферийных устройств, микроконтроллеры позволяют с минимальными затратами реализовать большую номенклатуру систем управления различными объектами и процессами. Благодаря этому микроконтроллеры находят широкое применение в промышленной автоматике, контрольно-измерительной технике, аппаратуре связи, бытовой технике и многих других применениях.
- разрядные микроконтроллеры семейств М68НС05, М68НС08, М68НС11. Реальные функции АЛУ можно показать на примере команд арифметических операций (таблица 1.2). Они выполняют соответствующие действия над операндами, одни из которых располагается в аккумуляторе А, где размещается затем результат. При операциях сложения и вычитания с учётом и без учёта признака переноса С (команды ADC, ADD, SBC, SUB) второй операнд М индексируется любым образом, кроме относительного. При операциях инкремента, декремента (команды INC, INCA, INCX, DEC, DECA, DECX) и изменения знака (перевод в дополнительный код команды NEG, NEGA, NEGX) используются только короткие способы адресации операнда. Команды сравнивания СМР, СРХ выполняют вычитание операндов без записи результата, но с установкой значений признаков N, Z в соответствии с полученным результатом. Команды тестирования ТSТ, TSTA, TSTX устанавливают признаки N, Z в соответствии со значением выбираемого операнда.
К этой группе относятся команды AND, ORA, EOR (таблица 1.2), которые выполнят логические операции И, ИЛИ, Исключающее ИЛИ над разрядами содержимого аккумулятора А и адресуемого операнда. При выполнении этих команд используются такие же способы адресации как и в командах сложения-вычитания. В командах логической инверсии COM, СОМА, СОМХ используются только короткие способы адресации. Команда битового тестирования BIT производит логическое умножение операндов (операция И) без записи результата, но с установкой признаков N, Z.
Таблица 1.2
|
Мнемокод |
Команда |
Операция |
|
1 |
2 |
3 |
|
ADD (opr) ADC (opr) SUB (opr) SBC (opr) |
Сложение Сложение с переносом Вычитание Вычитание с заёмом |
А+М→А A+M+C→A A-M→A A-M-C→A |
|
INC (opr) INCA INCX |
Инкремент М Инкремент А Инкремент Х |
М+1→М А+1→А Х+1→Х |
|
DEC (opr) DECA DECX |
Декремент М Декремент А Декремент Х |
М-1→М А-1→А Х-1→Х |
|
NEG (opr) NEGA NEGX |
Изменение знака М Изменение знака А Изменение знака Х |
0-М→М 0-А→А 0-Х→Х |
|
CMP (opr) CPX TST (opr) TSTA TSTX |
Сравнение А с М Сравнение Х с М Тестирование М Тестирование А Тестирование Х |
А-М Х-М М-0 А-0 Х-0 |
|
MUL |
Беззнаковое умножение |
|
AND
(opr) OR (opr) EOR (opr) Логическое И Логическое ИЛИ Исключающее ИЛИ А^M
→A\/ M→A
|
A |
COM
(opr) COMA COMX Логическая инверсия М Логическая инверсия А Логическая
инверсия Х
→М
→А
|
|
|
|
|
BIT |
Битовое тестирование |
А^М |
Однокристальная микроЭВМ МС68С705С8 входит в серию относительно дешевых микроЭВМ фирмы “Motorola”, использующих КМОП-технологию, сочетающую малые размеры и высокое быстродействие с низким потреблением энергии и высокой устойчивостью к помехам.
Блок центрального процессора, представленного на рисунке 1.2, содержит 8-битное АЛУ, аккумулятор, индексный регистр, регистр признаков, указатель стека, программный счётчик и управляющую логику. На кристалле так же расположены системы памяти: загрузочное ПЗУ, программируемое ПЗУ и ОЗУ.
Функции работы АЛУ данного микропроцессора можно
описать, составив таблицу, на основе арифметических и логических команд,
которые непосредственно выполняются блоком АЛУ.
Рисунок 1.2 - Центральный процессор МС68С705С8
Таблица 1.3 - Функции АЛУ микроЭВМ МС68НС705С8
|
Мнемокод |
Операция |
Команда |
Действие АЛУ |
|
ADD |
АС←(АС)+(М) |
Сложение содержимого ячейки памяти с аккумулятором |
Сложение содержимого М и содержимого АС и размещение в АС |
|
ADC |
AC←(AC)+(M)+(C) |
Сложение ячейки памяти с аккумулятором и флагом переноса |
Сложение содержимого бита С и суммы содержимого М и АС и размещение в АС |
|
SUB |
АС←(АС)-(М) |
Вычитание |
Сложение содержимого бита С и суммы М и АС и размещение в АС |
|
SBC |
АС←(АС)-(М)-(С) |
Вычитание содержимого ячейки памяти из аккумулятора с флагом заема. |
Вычитание содержимого М из АС и размещение результата в АС. |
|
AND |
АС←(АС)*(М) |
Операция И содержимого ячейки памяти и аккумулятора. |
Логическое умножение аккумулятора и М результат записывается в АС |
|
ORA |
АС←(АС)+(М) |
Операция ИЛИ содержимого ячейки памяти и аккумулятора |
Логическое сложение М и результат записывается в АС. |
|
CMP |
(АС)-(М) |
Арифметическое сравнивание аккумулятора и ячейки памяти. |
Сравнивается содержимое М и АС и устанавливаются биты в регистре признаков. |
|
INC |
АС←(АС)+$1 |
Инкремент на 1 |
Добавление единицы к содержимому аккумулятора. |
|
DEC |
АС←(АС)-$1 |
Декремент на 1 |
Вычитает единицу из содержимого аккумулятора |
АЛУ процессора ADSP-21XX фирмы «Analog devices» обеспечивает выполнение стандартного набора арифметических и логических операций. К первым относятся сложение, вычитание, инвертирование (отрицание), инкремент, декремент и нахождение абсолютист значения. Эти операции дополнены двумя примитивами деления, при помощи которых операция деления может выполняться за несколько циклов. К логическим операциям относятся логическое И (AND), ИЛИ (OR), исключающее ИЛИ (XOR) и НЕ (NOT), полный список стандартных функций приведён в таблице 1.4.
Блок-схема АЛУ представлена на рисунке 1.3. АЛУ
разрядностью 16 бит имеет два 16-битовых порта ввода - X и Y, и один порт
вывода - R. АЛУ принимает сигнал переноса (С1), который является битом переноса
из арифметического регистра состояния (ASTAT). В АЛУ генерируется 6 сигналов
состояния: состояние-ноль (AZ), отрицания (AN), переноса (АС), переполнения
(AV), ввода знака через порт X (AS) и состояние частного (AQ). Все сигналы
арифметического состояния фиксируются в арифметическом регистре состояний
(ASTAT) в конце цикла.
Таблица 1.4 - Список стандартных функций АЛУ
|
Функция |
Назначение |
|
R= X+Y |
Сложение операндов X и Y |
|
R= X+Y+CI |
Сложение операндов X и Y и бита коррекции |
|
R= X-Y |
Вычитание операндов X из Y |
|
R= X-Y+CI-1 |
Вычитание операндов X из Y с заемом |
|
R= -X |
Инверсия X |
|
R= -Y |
Инверсия Y |
|
R= X+1 |
Инкремент X |
|
R= Y+1 |
Инкремент Y |
|
R= X-1 |
Декремент X |
|
R= Y-1 |
Декремент Y |
|
R= PASS X |
Операнд X не изменяет результата |
|
R= PASS Y |
Операнд Y не изменяет результата |
|
R= 0 |
Очистка результата |
|
R= ABS X |
Модуль X |
|
R= X AND Y |
Логическое умножение операндов X и Y |
|
R= X OR Y |
Логическое сложение опреандов X и Y |
|
R= X XOR Y |
Исключающее ИЛИ операндов X и Y |
|
R= NOT X |
Отрицание X |
|
R= NOT Y |
Отрицение Y |
Порт ввода X AЛУ может принимать данные из двух источников: регистров АХ или шины результатов (Р-шина). Р-шина соединяет регистры вывода всех вычислительных устройств, позволяя использовать их как операнды ввода. Порт ввода Y АЛУ также может принимать данные из двух источников: регистров AY и регистра обратной связи AF АЛУ.