Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Микросхема ПЗУ в управляющем автомате с МПУ выбрана неверно



Микросхема ПЗУ в управляющем автомате с МПУ выбрана неверно

Московский Авиационный институт (технический университет)

КАФЕДРА 403


Расчетно-пояснительная записка

к курсовой работе по дисциплине

Вычислительные системы и микропроцессорная техника

 

выполнил: студент гр. 04-417

Левин О.А.

 

проверил: Герасимов А.Л.

 

МОСКВА 1997

Содержание

Анализ задания - 2

Комбинационный вариант - 2

Алгоритм работы устройства - 4

Микропрограмма - 5

Управляющий автомат с жесткой логикой - 5

Управляющий автомат с МПУ - 8

Выбор элементной базы - 10

Составление программы - 12

Задание

ВАРИАНТ №17

Задается входной код D{1: 32}. Спроектировать вычислитель, который определяет номер разряда самой первой и самой последней единиц, стоящих между нулями. Предусмотреть реакцию проектируемого устройства в случае отсутствия таких сигналов.

Анализ и уточнение задания

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

Очевидно, что в тридцатидвухразрядном коде единица, стоящая между двумя нулями ни при каких обстоятельствах не может находится ни в первом ни в тридцать втором разряде кода.

Тактовая синхронизация будет осуществляться внешним генератором тактовых импульсов с частотой 20 МГц

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

Обобщенная функциональная схема проектируемого устройства может быть представлена в следующем виде:

 

D{1: 32} B{1: 6}

F C{1: 6}

СТРОБ

УСЧИТ

 

Рисунок 1

Обобщенная функциональная схема устройства

Комбинационный вариант устройства

Функциональная схема комбинационного устройства, осуществляющего параллельную обработку входного кода представлена на рисунке 2. Входной код D{1: 32} разбивается на пересекающиеся элементы по три разряда: D’{1: 3}, D’{2: 4},...D’{30: 32}. Крайние разряды D’ проходят через инверторы DD1, DD3, DD4, DD6, DD7, DD9,...DD88, DD90. Проинвертированные крайние разряды вместе с центральным разрядом элемента поступают на логическую схему И, на выходе которой в случае если D{i-1, i, i+1}=010 сформируется высокий логический уровень напряжения, приводящий в действие соответствующий элемент индикации на внешней панели устройства. При визуальном контроле внешней панели устройства по расположению работающих элементов индикации можно определить номер разряда первой и последней единиц, стоящих между нулями.

Для реализации данной схемы потребуется 20 микросхем 1533ЛН1 (6 логических элементов НЕ), 10 - КР1533 (3 элемента 3И), 4 - КР531ЛЕ7 (2 элемента 5 ИЛИ-НЕ), 1 - 1533ЛИ6 (2 элемента 4И), 1 - 1533ЛИ1 (4 элемента 2И).

Основным недостатком данной схемы является невозможность дальнейшей обработки выходной информации.

НАЧАЛО

НЕТ

СТРОБ

РЕГ В {1: 32}=D{1: 32}

РЕГ А{1: 32}=РЕГ В{1: 32}

СЧЕТ Ц1=2

ДА

РЕГ А{1}=0 & РЕГ А{2}=1 & РЕГ А{3}=0

 

НЕТ

РЕГ А{1: 32}=РЕГ А{2: 32}.0

СЧЕТ Ц1=СЧЕТ Ц1 +1

НЕТ

СЧЕТ Ц1=32

ДА

 

РЕГ А{1: 32}=РЕГ В{1: 32}

СЧЕТ Ц2=31

 

ДА

РЕГ А{32}=0 & РЕГ А{31}=1 & РЕГ А{30}=0

 

НЕТ

РЕГ А{1: 32}=РЕГ А{1: 31}.0

СЧЕТ Ц=СЧЕТ Ц -1

 

НЕТ

СЧЕТ Ц=1

B {1: 6}=СЧЕТ Ц1; С {1: 6}=СЧЕТ Ц2

КОНЕЦ

 

Рисунок 3

Блок-схема алгоритма работы устройства

Микропрограмма

Переменные:

Входные:

D{1: 32} - входной код

строб

Выходные:

В {1: 6}, С{1: 6} - выходной код

Внутренние:

РЕГ А{1: 32}, РЕГ В{1: 32} - регистры

СЧЕТ Ц1{1: 6}, СЧЕТ Ц2{1: 6} - счетчики циклов

Признаки:

Р1 - строб=1

Р2 - РЕГ А{1}=0 & РЕГ A{2}= 1 & РЕГ А {3}=0

Р3 - РЕГ А{32}=0 & РЕГ A{31}= 1 & РЕГ А {30}=0

Р4 - СЧЕТ Ц1 {1: 6} = 32

Р5 - СЧЕТ Ц2 {1: 6} = 1

 

Программа

М1 ЕСЛИ НЕ Р1 ТО М1

(СТРОБ) РЕГ В{1: 32}=D {1: 32}

(УЗАП1) РЕГ А{1: 32}=РЕГ В {1: 32}

(УН1) СЧЕТ Ц1 {1: 6} =2

М2 ЕСЛИ Р2 ТО М3

(УСДВ1) РЕГ А{1: 32}=РЕГ А{2: 32}.0 }

(УСЧ1) СЧЕТ Ц1 {1: 6}=СЧЕТ Ц1 {1: 6}+1 } УЭ1

ЕСЛИ НЕ Р4 ТО М2

М3 (УЗАП1) РЕГ А{1: 32}=РЕГ В {1: 32}

(УН2) СЧЕТ Ц2 {1: 6} =31

М4 ЕСЛИ Р3 ТО М5

(УСДВ2) РЕГ А{1: 32}=0.РЕГ А{1: 31} }

(УСЧ2) СЧЕТ Ц2 {1: 6}=СЧЕТ Ц2 {1: 6}-1 } УЭ2

ЕСЛИ НЕ Р5 ТО М4

М5 (УСЧИТ1) В{1: 6}=СЧЕТ Ц1 {1: 6} }

(УСЧИТ2) С{1: 6}=СЧЕТ Ц2 {1: 6} } УЭ3

КОНЕЦ (ИДТИ К М1)

 

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


Разработка управляющего автомата с жесткой логикой

Управляющий автомат с жесткой логикой будет реализовываться в виде классического конечного автомата Мили или Мура. На основании блок-схемы алгоритма работы устройства определим количество состояний для каждого типа автомата. Обозначим состояния автомата Мура буквой S, а состояния автомата Мили - S’. Как видно из рисунка 5, у автомата Мура будет шесть состояний, в то время как у автомата Мили - лишь четыре.

 

НАЧАЛО S0

S’0

0 Р1

УН 1, УЗАП 1 S1

0 S’1 1

Р2

 

УЭ 1 S2 УЗАП 1, УН 2 S3

0

Р4 S’2

УЗАП 1 УН 2 S3

0 S’3 1

Р3

 

УЭ 2 S5 УЗАП 1 УЭ 3 S4

0

Р5 S’4

S6 УЗАП 1 УЭ 3

КОНЕЦ S’0

 

Рисунок 5.

Состояния конечных автоматов Мили и Мура.

 

Таким образом, определим, что управляющее устройство необходимо синтезировать в виде конечного автомата Мили

Р1/—

P1/УН 1, УЗАП 1 Р2/УЭ 1 Р4/УН 2, УЗАП 1 Р3/УЭ 2

S0 S1 S2 S3 S4

Р4/— Р5/—

 

Р2/УН 2, УЗАП 1

 

Р3/УЭ 3

 

Р5/УЭ 3

 

Граф состояний автомата Мили.

  S0 S1 S2 S3 S4
Q1 0 0 0 1 1
Q2 0 0 1 1 0
Q3 0 1 1 1 1

Таблица 1

Кодированная таблица состояний.

 

ВХОД S0 S1 S2 S3 S4
P1 S1/УН 1, УЗАП1        
НЕ Р1 S0/-        
Р2   S3/ УН 2, УЗАП1      
НЕ Р2   S2/УЭ 1      
Р3       S0/УЭ 3  
НЕ Р3       S4/УЭ 2  
Р4     S3/УН 2, УЗАП 1    
НЕ Р4     S1/-    
P5         S0/УЭ 3
НЕ P5         S3/-

Таблица 2

Таблица переходов и выходов

 

ВХОД 0 0 0 0 0 1 0 1 1 1 1 1 1 0 1
P1 0 0 1/УН 1, УЗАП 1        
НЕ Р1 0 0 0/-        
Р2   1 1 1/ УН 2, УЗАП 1      
НЕ Р2   0 1 1/УЭ 1      
Р3       0 0 0/УЭ 3  
НЕ Р3       1 0 1/УЭ 2  
Р4     1 1 1/УН 2, УЗАП 1    
НЕ Р4     0 0 1/-    
P5         0 0 0/УЭ 3
НЕ P5         1 1 1/-

Таблица 3

Кодированная таблица переходов и выходов

 

Если в конечном автомате будет применяться D-триггер, то будут справедливы равенства:

 

Q1 (t+1) = НЕ Q1*НЕ Q2*Q3*P2 + НЕ Q1*Q2*Q3*P4 + Q1*Q2*Q3*НЕ P3+ Q1*НЕ Q2*Q3*НЕ P5 [20 входов]

Q2 (t+1) = НЕ Q1*НЕ Q2*Q3*P1 + НЕ Q1*Q2*Q3*НЕ P4 + Q1*НЕ Q2*Q3*НЕ P5 [15 входов]

Q3 (t+1) = НЕ Q1*НЕ Q2*НЕ Q3*P1 + НЕ Q1*НЕ Q2*Q3 + НЕ Q1*Q2*Q3 + Q1*Q2*Q3*НЕ P3 + Q1*НЕ Q2*Q3*НЕ P5 = =НЕ Q1*НЕ Q2*НЕ Q3*P1 + НЕ Q1*Q3 + Q1*Q2*Q3*НЕ P3 + Q1*НЕ Q2*Q3*НЕ P5 [18 входов]

Для реализации автомата на D-триггерах потребуется 43 входа. Если будет использоваться J-K триггер, то уравнения для него можно получить из уравнений для D-триггера:

Q (t+1)=J*Q+K*Q

 

Q(T+1)=J*HE Q + HE K*Q

J1=НЕ Q2*Q3*P2+Q2*Q3*P4=Q3*(НЕ Q2*P2+Q2*P4) [6 входов]

 

K1=(Q2*Q3*НЕ P3+НЕ Q2*Q3*НЕ P5)=(Q2*Q3*НЕ P3)*(НЕ Q2*Q3*НЕ P5)=(НЕ Q2+

НЕ Q3+P3)*(Q2+НЕ Q3+P5) [8 входов]

 

J2=(НЕ Q1*Q3+Q1*Q3*НЕ P5)=Q3*(НЕ Q1+Q1*НЕ P5) [6 входов]

K2=(НЕ Q1*Q3*P4) = Q1+НЕ Q3+НЕ P4 [3 входа]

 

J3=НЕ Q1*НЕ Q2*P1 [3 входа]

 

K3=(НЕ Q1*НЕ Q2+НЕ Q1*Q2+Q1*Q2*НЕ P3+Q1*НЕ Q2*НЕ P5) = (НЕ Q1+Q1*(Q2+НЕ Q2*НЕ

P5)) =Q1*(НЕ Q1+(Q2+НЕ Q2*НЕ P5)) = Q1*НЕ Q2*(Q2+P5) = Q1*НЕ Q2*P5 [3 входа]

 

Для реализации автомата на J-K-триггерах потребуется 29 входов, поэтому автомат будет реализовываться на них. Управляющие сигналы на основе таблицы переходов и выходов будут формироваться следующим образом

 

УН 1=НЕ Q1*НЕ Q2*НЕ Q3*P1

 

УЭ 1=НЕ Q1*НЕ Q2*Q3*НЕ P2

 

УН 2=НЕ Q1*Q2*Q3*P4+НЕ Q1*НЕ Q2*Q3*P2

 

УЭ 2=Q1*Q2*Q3*НЕ P3

 

УЭ 3=Q1*НЕ Q2*Q3*P5+Q1*Q2*Q3*P3

 

УЗАП1=УН 1+УН 2


Управляющий автомат с микропрограммным

Управлением

Принудительная адресация

Каноническая форма микропрограммы разрабатываемого устройства с учетом эквивалентности сигналов представлена в таблице 4:

 

МЕТКА УПР. СИГНАЛ ПЕРЕХОД
1 М1   ЕСЛИ НЕ Р1 ТО М1
2   УН 1, УЗАП1  
3 М2   ЕСЛИ Р2 ТО М3
4   УЭ 1  
5     ЕСЛИ НЕ Р4 ТО М2
6 М3 УН 2, УЗАП1  
7 М4   ЕСЛИ Р3 ТО М5
8   УЭ 2  
9     ЕСЛИ НЕ Р5 ТО М4
10 М5 УЭ 3 ИДТИ К М1

Таблица 4

Каноническая форма микропрограммы.

 

Адрес

УН 1 УЭ 1 УН 2 УЭ 2 УЭ 3 УЗАП1 Не Р1 Р2 Р3 Не Р4 Не Р5

Адрес перехода

0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0
0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1
0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0
0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0
0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1
0 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0
1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Таблица 5

Естественная адресация

 

МЕТКА УПР. СИГНАЛ ПЕРЕХОД
1 М1   ЕСЛИ НЕ Р1 ТО М1
2   УН 1, УЗАП1  
3 М2   ЕСЛИ Р2 ТО М3
4   УЭ 1  
5     ЕСЛИ НЕ Р4 ТО М2
6 М3 УН 2, УЗАП1  
7 М4   ЕСЛИ Р3 ТО М5
8   УЭ 2  
9     ЕСЛИ НЕ Р5 ТО М4
10 М5 УЭ 3  
11     ИДТИ К М1

Таблица 6

Адрес

П УН 1 УЭ 1 УН 2 УЭ 2 УЭ 3 УЗАП 1       П НЕ P1 P2 P3 НЕ P4 НЕ P5

Адрес перехода

0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 – – – 0 0 1 0 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 – – – 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 – – – 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 0 0 0 1 0 0 – – – 1 0 0 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 1 0 - – – 1 0 1 0 1 0 0 0 0 0 0 0 0 0

Таблица 7

Адрес

П

Маска признаков

Адрес перехода

0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 – 0 0 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 – 0 1 0 0 1 0 1 1 1 0 0 0 0 1 0 1 0 0 0 1 0 0 1 – 0 1 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 0 0 0 1 0 0 – 1 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 1 0 - 1 0 1 0 1 1 1 0 0 0 0 0

Таблица 8

Таблица 9

 

Таблица 10

Таблица истинности регистра КР531ИР11

 

Программа на ассемблере

НАЧАЛО

СЧЕТЧИК=02Н

АККУМУЛЯТОР=

=1-ый справа байт кода

Маскирование последних

3 бит АККУМУЛЯТОРА

АККУМУЛЯТОР= 010В

 

НЕТ

Сдвиг кода на разряд вправо

СЧЕТЧИК=СЧЕТЧИК+1

 

СЧЕТЧИК=32

 

Запись значения счетчика в память

 

СЧЕТЧИК=02Н

АККУМУЛЯТОР=

=1-ый слева байт кода

Маскирование первых

3 бит АККУМУЛЯТОРА

ДА

АККУМУЛЯТОР= 01000000В

 

2 3

1

1 2 3

Сдвиг кода на разряд влево

СЧЕТЧИК=СЧЕТЧИК-1

НЕТ

СЧЕТЧИК=1

 

Запись значения счетчика в память

КОНЕЦ

 

Для нормального функционирования программы необходимо предварительно занести входной код, предварительно поделенный на байты в следующие ячейки памяти: 0800Н - 0803Н (в 0800Н - крайний левый байт кода и т.д.) и 0804Н - 0807Н (в 0804Н - крайний левый байт кода и т.д.)

 

Адрес Код Метка Команда Комментарий
0809 16   MVI D, O2H Счетчик = 2
080A 02      
080B 3A M1 LDA 0803H Загрузка первого справа байта кода в аккумулятор
080C 03      
080D 08      
080F E6   ANI 07H Маскирование 3 последних бит аккумулятора
0810 07      
0811 FE   CPI 02H Сравнение аккумулятора с 010В
0812 02      
0813 CA   JZ M2  
0814 37      
0815 08      
0816 A7   ANA A Обнуление флага переноса
0817 3A   LDA 0800H  
0818 00      
0819 08      
081A 1F   RAR  
081B 32   STA 0800H  
081C 00      
081D 08      
081E 3A   LDA 0801H  
0820 01      
0821 08      
0822 1F   RAR  
0823 32   STA 0801H  
0824 01      
0825 08      
0826 3A   LDA 0802H  
0827 02      
0829 08     Последовательный сдвиг
082A 1F   RAR байтов кода вправо
082B 32   STA 0802H  
082C 02      
082D 08      
082E 3A   LDA 0803H  
082F 03      
0830 08      
0831 1F   RAR  
0832 32   STA 0803H  
0833 03      
0834 08      
0835 14   INR D Прибавление к счетчику единицы
0836 7A   MOV A, D  
0837 FE   CPI 20H Сравнение значения счетчика с 32D
0838 20      
083A 7A M2 MOV A, D  
083B 32   STA 0808H Запись первого результата в память
083C 08      
083D 08      
083E 16   MVI D, 1FH Счетчик = 31
083F 1F      
0840 3A M3 LDA 0803H Загрузка первого слева байта кода в аккумулятор
0841 03      
0842 08      
0843 E6   ANI E0H Маскирование 3 первых разрядов кода
0844 E0      
0845 FE   CPI 40H Сравнение аккумулятора с 0100 0000В
0846 40      
0847 CA   JZ M4  
0848 6B      
0849 08      
084A A7   ANA A Обнуление флага переноса
084B 3A   LDA 0804H  
084C 04      
084D 08      
084E 1F   RAL  
084F 32   STA 0804H  
0850 04      
0851 08      
0852 3A   LDA 0805H  
0853 05      
0854 08      
0855 17   RAL  
0856 32   STA 0805H  
0857 05      
0858 08      
0859 3A   LDA 0806H  
085A 02      
085B 08     Последовательный сдвиг
085C 17   RAL байтов кода влево
085D 32   STA 0806H  
085E 06      
085F 08      
0860 3A   LDA 0807H  
0861 07      
0862 08      
0863 17   RAL  
0864 32   STA 0807H  
0865 07      
0866 08      
0867 15   DCR D Вычитание из счетчика единицы
0868 7A   MOV A, D  
0869 FE   CPI 02H Сравнение значения счетчика с 1D
086A 02      
086B 7A M4 MOV A, D  
086C 32   STA 0809H Запись второго результата в память
086D 08      
086E 09      
086F 76   HLT Останов программы

 

Программа на языке BASIC

Программа была составлена на языке BASIC и отлажена на IBM-совместимом компьютере.

Текст программы

REM Программа по курсовой работе (каф 403).

REM Список переменных:


Поделиться:



Последнее изменение этой страницы: 2019-10-03; Просмотров: 146; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.181 с.)
Главная | Случайная страница | Обратная связь