Реферат: Вычислительная техника
часть: Проектирование вырожденного автомата .
Спроектировать на элементах ТТЛ “ генератор 4-х разрядных кодов “ некоторой системы счисления .
Т.е. синтезировать синхронный счётчик М–разрядный ( М
Каждое состояние счётчика ( т.е. цифра заданной системы ) сохраняется в течение одного полного такта. Значение цифр появляется на выходах Q3, Q2, Q1, Q0. Автомат также должен выработать синхронный перенос ( в след. разряд заданной системы), которым служит последний тактовый импульс в цикле счёта. Для его выделения должен быть сформирован строб “y”, т.е. булева функция, которая активна на последнем такте цикла. А само выделение должно обеспечивать минимальную задержку выходного импульса переноса.
В схеме автомата должны быть цепи, осуществляющие авто сброс в исходное состояние при каждом включении питания.
Требуется :
составить таблицу функционирования автомата ;
минимальную функцию возбуждения и строба ;
построить осциллограммы всех выходных функций, включающие функции строба и сигнала переноса ;
построить схему автомата .
Решение поставленной задачи :
а.) Составим таблицу функционирования автомата :
Q3 | Q2 | Q1 | Q0 | J3 | K3 | J2 | K2 | J1 | K1 | J0 | K0 | y | |
Ф | Ф | Ф | 1 | Ф | |||||||||
1 | 1 | Ф | Ф | 1 | Ф | Ф | 1 | ||||||
2 | 1 | Ф | Ф | Ф | 1 | Ф | |||||||
3 | 1 | 1 | Ф | 1 | Ф | Ф | 1 | Ф | 1 | ||||
4 | 1 | Ф | Ф | Ф | 1 | Ф | |||||||
5 | 1 | 1 | Ф | Ф | 1 | Ф | Ф | 1 | |||||
6 | 1 | 1 | Ф | Ф | Ф | 1 | Ф | ||||||
7 | 1 | 1 | 1 | 1 | Ф | Ф | 1 | Ф | 1 | Ф | 1 | ||
8 | 1 | Ф | Ф | Ф | 1 | Ф | |||||||
9 | 1 | 1 | Ф | Ф | 1 | Ф | Ф | 1 | |||||
10 | 1 | 1 | Ф | Ф | Ф | 1 | Ф | ||||||
11 | 1 | 1 | 1 | Ф | 1 | Ф | Ф | 1 | Ф | 1 | |||
12 | 1 | 1 | Ф | 1 | Ф | 1 | Ф | 1 | Ф | 1 | |||
ПОВТОР |
б.) Составим карты Карно и при помощи них найдём минимизированные функции возбуждения и строба .
Q0
J3
Q2 0 | 1 | ||
Q3 Ф | Х | Х | Х |
Ф | Ф | Ф | Ф |
Q1
J3 = Q2Q1Q0
Q0
K3
Ф | Ф | Ф | Ф |
Q2 Ф | Ф | Ф | Ф |
Q3 1 | Х | Х | Х |
Q1
K3 = Q2
Q0
J2
1 | |||
Q2 Ф | Ф | Ф | Ф |
Q3 Ф | Х | Х | Х |
1 |
Q1
J2 = Q1Q0
Q0
K2
Ф | Ф | Ф | Ф |
Q2 0 | 1 | ||
Q3 1 | Х | Х | Х |
Ф | Ф | Ф | Ф |
Q1
K2 = Q3 v Q1Q0
Q0
J1
0 | 1 | Ф | Ф |
Q2 0 | 1 | Ф | Ф |
Q3 0 | Х | Х | Х |
1 | Ф | Ф |
Q1
J1 = Q0
Q0
K1
Ф | Ф | 1 | |
Q2 Ф | Ф | 1 | |
Q3 Ф | Х | Х | Х |
Ф | Ф | 1 |
Q1
K1 = Q0
Q0
J0
1 | Ф | Ф | 1 |
Q2 1 | Ф | Ф | 1 |
Q3 0 | Х | Х | Х |
1 | Ф | Ф | 1 |
Q1
J0 = Q3Q2
Q0
K0
Ф | 1 | 1 | Ф |
Q2 Ф | 1 | 1 | Ф |
Q3 Ф | Х | Х | Х |
Ф | 1 | 1 | Ф |
Q1
K0 = 1
Q0
y
Q2 0 | |||
Q3 1 | Х | Х | Х |
Q1
y = Q3Q2
в.) Построим осциллограммы всех выходных функций, вкл функцию строба и сигнала переноса .
С
Q0
Q1
Q2
Q3
y
Cвых
г.) Построение схемы автомата .
II часть : Проектирование интерфейса ЗУ некоторого МПУ .
Построить интерфейс ЗУ на реальных МС, приведённых в таблице .
Блоки ПЗУ и ОЗУ должны содержать резервные места для модернизации. Резерв может быть до 50% рабочего и объёма блока, но не менее 1 МС выбранного типа .
При условии восьмиразрядного выхода требуется :
определить объём пространства памяти, включая резервные сегменты ;
составить таблицу адресов, начиная с адреса 0ХХ0, где ХХ = n – номер студента по журналу в 16-ричной системе ;
построить упрощённую схему интерфейса.
При построении блока ПЗУ использовать МС ППЗУ серии КР556 для Lпзу 7Кб .
При построении блока ОЗУ — МС с технологией: ТТЛ для Lозу
При полу целом числе сегментов в блоке допускается использование МС другой технологии с ёмкостью 0,5 сегмента. Остаток неполного сегмента отнести к резерву .
Решение поставленной задачи :
а.) Определим объём пространства памяти, включая резервные сегменты .
Для ПЗУ можно выбрать пять МС СППЗУ типа К573РФ2 с организацией 2К * 8 = 2Кб .
Тогда объём одного сегмента можно выбрать равным 2 Кб = 80016. Возьмем пять таких МС и, таким образом, получили объём ПЗУ равным 10 Кб, но нам необходимо набрать 11 Кб, поэтому возьмём ещё две МС СППЗУ типа К573РФ1 с организацией 1К*8 = 1Кб для организации шестого сегмента, половина которого будет использована, а другая половина будет в резерве.
Для резерва возьмём две МС СППЗУ типа К573РФ2 с организацией 2К * 8 = 2Кб, т.е. объём резерва получился равным 5 Кб.
С резервом в 5 Кб для ПЗУ получили восемь сегментов.
Для ОЗУ можно выбрать МС nМОП типа КМ132РУ8А с организацией 1К * 4 = 0,5 Кб. Но для построения одного сегмента потребуется четыре такие МС.
С резервом в 2Кб для ОЗУ потребуется три таких сегмента .
Значит, общий объём блока ЗУ с резервом должен составлять 8+3 = 11 сегментов .
б.) Составим таблицу распределения адресов .
Сегмент | 16-разрядный адрес |
I | 00E0 – 08DF |
Задействовано II | 08E0 – 10DF |
III | 10E0 – 18DF |
ПЗУ IV | 18E0 – 20DF |
V | 20E0 – 28DF |
РезервVI | 28E0 – 30DF |
VII | 30E0 – 38DF |
VIII | 38E0 – 40DF |
ОЗУ ЗадействованоОЗУIX | 40E0 – 48DF |
Резерв X | 48E0 –50DF |
XI | 50E0 –58DF |
в.) Построение упрощённой схемы интерфейса ЗУ .
III часть : Разработка фрагмента программы МПУ .
Составить фрагмент программы МПУ в виде подпрограммы ( или в виде программы обслуживания прерывания ПОП ), что есть в варианте .
Начальный адрес для подпрограммы: [ P ] = 63 + n10
Требуется :
на языке Ассемблера с соблюдением требований формата бланка ;
комментарий должен давать полное описание действий конкретной задачи, а не описание данной команды ;
в конце любого комментария должна быть дана продолжительность операции – требуемое число тактов синхронизации.
Решение поставленной задачи :
; Подпрограмма на языке Ассемблер :
ORG | 00D4H | ; Подпрограмма начинается с ; адреса 00D416 | |||
LXI | D,0200H | ;бл.1Загрузка адреса младшего ; байта числа Х1 в пару ; регистров DE (т.10) | |||
MVI | B,0002H | ;бл.2 Подготовка счётчика ; сложений, т.е.непосредствен-; ное присвоение регистру В ; значения 2 (т.7) | |||
XRA | A | ;бл.3 Обнуление аккумулятора, ; а также установка в ноль тр- ; ров переноса Tc и Tv (т.4) | |||
LOOP2: | LXI | H,0300H | ;бл.4 Загрузка адреса младшего ; байта числа Х2 или (Х1+Х2) в ; пару регистров HL (т.10) | ||
MVI | C,0006H | ;бл.5 Подготовка счётчика ; байтов, т.е. непосредственное ; присвоение счётчику байтов С ; значения 6, т.к. после ; сложения Х1 и Х2 может ; возникнуть перенос и число ; окажется уже в 6 байтах, а не в 5 (т.7) | |||
LOOP1: | LDAX | D | ;бл.6 Загрузка в аккумулятор ; следующего байта числа Х1 ; или Х3, хранящегося по адресу ; в паре DE (т.7) | ||
ADC | M | ;бл.7 Суммирование байтов ; чисел Х1 или Х3 и Х2 или ;(Х1+Х2), а также переноса, ; если такой был (т.4) | |||
DAA | ;бл.8 Десятичная коррекция; аккумулятора(т.к. у меня коды ;BCD и максимальное число ; здесь 9, а не 16 ) (т.4) | ||||
MOV | M,A | ;бл.9 Пересылка очередного ; байта частичной суммы ;(Х1+Х2) на место Х2 (т.7) | |||
DCR | C | ;бл.10 Уменьшение на 1 ; счётчика байтов (т.5) | |||
| JZ | NB | ;бл.11 УП: если содержимое сч. ; байтов равно 0 ( С = 0 ), то ; переход к бл. 15, если же С =0, ; т.е. ещё не все байты чисел ; сложены, то переход к ; суммированию след. байтов, ; т.е. к блоку 12 (т.10) | ||
INХ | D | ;бл.12 Переход к адресу ; следующего байту числа Х1 ; или Х3 путём положительного ; инкремента пары регистров DE (т.5) | |||
INХ | H | ;бл.13 Переход к адресу ; следующего байта числа Х2 ; или (Х1+Х2) путём ; положительного инкремента ; пары регистров HL (т.5) | |||
JMP | LOOP1 | ;бл.14 БП к блоку 6 для ; суммирования след. байтов ; чисел Х1 и Х2 либо Х3 и ;(Х1+Х2)(к началу внешнего цикла) (т.10) | |||
NB : | DCR | B | ; бл.15 Переход к суммированию суммы; Х1+Х2 с числом Х3, т.е. уменьшение; счётчика сложений на 1 (т.5) | ||
| RZ | EN | ;бл.16 УП: если В=0, т.е. все три числа; сложены, то возврат в основную; программу, ежели В = 0, т.е. не все числа; сложены, то переход к след. блоку 17 (т.10) | ||
LXI | D,0400H | ;бл.17 Загрузка адреса младшего байта числа; Х3 в пару регистров DE (т.10) | |||
JMP | LOOP2 | ; бл.18 БП к блоку 4 для суммирования числа; Х3 с суммой ( Х1+Х2) (к началу внешнего; цикла ) т.10) | |||
EN : | END | ; конец подпрограммы |
III часть : Подпрограмма .
Сложить три положительных 10 – значных десятичных числа Х1, Х2, Х3, представленные в коде BCD и хранящиеся в секторах ОЗУ с адресами младших байтов соот. 20016; 30016; 40016 .
Поместить полученную сумму (также в коде BCD) с учётом старшего (шестого) байта на случай переполнения в секторе ОЗУ на место Х2, т.е. по адресу 30016 .
Предполагается, что шестые байты в указанных секторах первоначально пусты.
Это – задача с двойным (вложенным) циклом.
Блок – схема алгоритма:
DE 20016
B 2
A (A)V(A)
HL 30016
C 6
A [(DE)]
A (A)+[(M)]+(Tc)
10 — КОРР
M (A)
C ( C ) -1
(Tz)=1
LOOP1
DE (DE) + 1
HL (HL) + 1
PC [ Addr ]
B (B) -1
(Tz)=1
LOOP2
DE 40016
PC [Addr]
NB
ДА
ДА
EN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Задание:
I часть : Счётчик прямого счёта .
М = 13; триггеры типа JK.
Код двоичный, возрастающий;
Используются состояния: а0, а1 … а12 .
II часть : Интерфейс ЗУ .
Lпзу = 11 KB; Lозу = 4 KB.
III часть : Подпрограмма .
Сложить три положительных 10 – значных десятичных числа Х1, Х2, Х3, представленные в коде BCD и хранящиеся в секторах ОЗУ с адресами младших байтов соот. 20016; 30016; 40016 .
Поместить полученную сумму (также в коде BCD) с учётом старшего (шестого) байта на случай переполнения в секторе ОЗУ на место Х2, т.е. по адресу 30016 .
Предполагается, что шестые байты в указанных секторах первоначально пусты.
Это – задача с двойным (вложенным) циклом.
Блок – схема алгоритма:
DE 20016
B 2
A (A)V(A)
HL 30016
C 6
A [(DE)]
A (A)+[(M)]+(Tc)
10 — КОРР
M (A)
C ( C ) -1
(Tz)=1
LOOP1
DE (DE) + 1
HL (HL) + 1
PC [ Addr ]
B (B) -1
(Tz)=1
LOOP2
DE 40016
PC [Addr]
NB
ДА
ДА
EN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18