Смекни!
smekni.com

Вычислительная техника

часть:Проектированиевырожденногоавтомата .


Спроектироватьна элементахТТЛ “генератор 4-хразрядных кодов“некоторойсистемы счисления.

Т.е.синтезироватьсинхронныйсчётчик М–разрядный( М

Каждоесостояниесчётчика ( т.е.цифра заданнойсистемы ) сохраняетсяв течение одногополного такта.Значение цифрпоявляетсяна выходах Q3,Q2,Q1,Q0.Автоматтакже долженвыработатьсинхронныйперенос ( в след.разряд заданнойсистемы), которымслужит последнийтактовый импульсв цикле счёта.Для его выделениядолжен бытьсформированстроб “y”,т.е. булева функция, которая активнана последнемтакте цикла.А само выделениедолжно обеспечиватьминимальнуюзадержку выходногоимпульса переноса.

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

Требуется:

  • составитьтаблицу функционированияавтомата ;

  • минимальнуюфункцию возбужденияи строба ;

  • построитьосциллограммывсех выходныхфункций, включающиефункции стробаи сигнала переноса;

  • построитьсхему автомата.


Решениепоставленнойзадачи :


а.)Составим таблицуфункционированияавтомата :



Q3

Q2

Q1

Q0

J3

K3

J2

K2

J1

K1

J0

K0

y

0

0

0

0

0

0

Ф

0

Ф

0

Ф

1

Ф

0

1

0

0

0

1

0

Ф

0

Ф

1

Ф

Ф

1

0

2

0

0

1

0

0

Ф

0

Ф

Ф

0

1

Ф

0

3

0

0

1

1

0

Ф

1

Ф

Ф

1

Ф

1

0

4

0

1

0

0

0

Ф

Ф

0

0

Ф

1

Ф

0

5

0

1

0

1

0

Ф

Ф

0

1

Ф

Ф

1

0

6

0

1

1

0

0

Ф

Ф

0

Ф

0

1

Ф

0

7

0

1

1

1

1

Ф

Ф

1

Ф

1

Ф

1

0

8

1

0

0

0

Ф

0

0

Ф

0

Ф

1

Ф

0

9

1

0

0

1

Ф

0

0

Ф

1

Ф

Ф

1

0

10

1

0

1

0

Ф

0

0

Ф

Ф

0

1

Ф

0

11

1

0

1

1

Ф

0

1

Ф

Ф

1

Ф

1

0

12

1

1

0

0

Ф

1

Ф

1

0

Ф

1

Ф

1

ПОВТОР


0

0

0

0











б.) Составимкарты Карнои при помощиних найдём минимизированныефункциивозбужденияи строба .


Q0

J3




0

0

0

0

Q2

0

0

1

0

Q3

Ф

Х

Х

Х

Ф

Ф

Ф

Ф

Q1


J3 =Q2Q1Q0


Q0

K3




Ф

Ф

Ф

Ф

Q2

Ф

Ф

Ф

Ф

Q3

1

Х

Х

Х

0

0

0

0

Q1


K3 = Q2


Q0

J2




0

0

1

0

Q2

Ф

Ф

Ф

Ф

Q3

Ф

Х

Х

Х

0

0

1

0

Q1


J2 = Q1Q0


Q0

K2




Ф

Ф

Ф

Ф

Q2

0

0

1

0

Q3

1

Х

Х

Х

Ф

Ф

Ф

Ф

Q1


K2 = Q3 vQ1Q0


Q0

J1




0

1

Ф

Ф

Q2

0

1

Ф

Ф

Q3

0

Х

Х

Х

0

1

Ф

Ф

Q1


J1 = Q0


Q0

K1




Ф

Ф

1

0

Q2

Ф

Ф

1

0

Q3

Ф

Х

Х

Х

Ф

Ф

1

0

Q1


K1 = Q0


Q0

J0




1

Ф

Ф

1

Q2

1

Ф

Ф

1

Q3

0

Х

Х

Х

1

Ф

Ф

1

Q1


J
0= Q3Q2


Q0

K0




Ф

1

1

Ф

Q2

Ф

1

1

Ф

Q3

Ф

Х

Х

Х

Ф

1

1

Ф

Q1


K0 = 1


Q0

y




0

0

0

0

Q2

0

0

0

0

Q3

1

Х

Х

Х

0

0

0

0

Q1


y = Q3Q2


в.)Построимосциллограммывсех выходныхфункций , вклфункцию стробаи сигнала переноса.


С


Q

0

Q

1


Q

2


Q

3

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