Рефераты

Микропроцессорные средства и системы

Микропроцессорные средства и системы

Министерство Образования Украины

Кременчугский Государственный Политехнический Институт

Контрольное задание по дисциплине

“ Микропроцессорные средства и системы ”

Вариант № 7

Группа Э-41-З, студент **********

Преподаватель : Михальчук В.Н

Кременчуг 1998

Контрольная работа № 1

Преобразовать числа из десятичной системы счисления в двоичную и

шестнадцатеричную : 5 ; 38 ; 93 ; 175 ; 264.

|Десятичная система |Двоичная система |Шестнадцатеричная |

| | |система |

|5 | |0|0|0|0|0|0|1|0|1| |5 |

|38 | |0|0|0|1|0|0|1|1|0| |26 |

|93 | |0|0|1|0|1|1|1|0|1| |5D |

|175 | |0|1|0|1|0|1|1|1|1| |AF |

|264 | |1|0|0|0|0|1|0|0|0| |108 |

Задача № 2

Преобразовать числа, записанные в прямом двоичном коде в десятичный и

шестнадцатеричный код : 0011 ; 1000010 ; 00011011000 .

|Прямой двоичный код |Десятичный |Шестнадцатеричный |

| |код |код |

| |0|0|0|0|0|0|0|0|0|1|1| |3 |3 |

| |0|0|0|0|1|0|0|0|0|1|0| |66 |42 |

| |0|0|0|1|1|0|1|1|0|0|0| |216 |D8 |

Задача № 3

Выполнить следующие арифметические действия с двоичными числами,

заданными в прямом коде : 0011 + 1000110 ; 10000001 - 1000110

| | | | | | |0|0|1|1| | | | |3| | |1|0|0|0|0|0|0|1| | |1|2|9|

| | |+| | | | | | | | | |+| | | |-| | | | | | | | | |-| | | |

| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |

Задача № 4

Выполнить следующее арифметическое действие в 8-ми разрядной сетке (

старший бит содержит знак числа ) : 5 х 25

| | |0|.|0|0|1|1|0|0|1| | | |2|5| | | | | | | | | | | | | | |

| |х| | | | | | | | | | | |х| | | | | | | | | | | | | | | | |

| | |0|.|0|0|0|0|1|0|1| | | | |5| | | | | | | | | | | | | | |

| | | | |0|0|1|1|0|0|1| | | | | | | | | | | | | | | | | | | |

| | | |0|0|0|0|0|0|0| | | | | | | | | | | | | | | | | | | | |

| | |0|0|1|1|0|0|1| | | | | | | | | | | | | | | | | | | | | |

| | |0|.|1|1|1|1|1|0|1| | |1|2|5| | | | | | | | | | | | | | |

Контрольная работа № 2

Задача № 1

Определить размер памяти в килобайтах ( байтах ), если данная память

адресуется с адреса A0EDH по адрес EF34H. Одна ячейка памяти занимает 8 бит

Для решения определим вначале кол-во ячеек памяти, адресуемых одним

разрядом при 16- теричной системе адресации.

|4-й |3-й |2-й |1-й |H |

|разряд |разряд |разряд |разряд | |

|4096 |256 |16 |1 |H |

Таким образом, начальный и конечный адреса в десятичной системе будут :

A0EDH = 4096 * 10 + 256 * 0 + 16 * 14 + 1 * 13 + 1= 41198 ;

EF34H = 4096 * 14 + 256 * 15 + 16 * 3 + 1 * 4 +1 = 61237 .

61237 - 41198 = 20039.

20039 = 19 * 1024 + 583.

Итак, размер памяти будет 20039 байт или 19 кБ. 583 байт

Задача № 2

Символьная строка расположена в ОЗУ начиная с адреса 0006H. Известно, что

под каждый символ отводится одна ячейка памяти. Число символов в строке =

731. Определить адрес для обращения к последнему символу строки.

Порядковый номер последней ячейки памяти в десятичной системе будет

731 + 6 = 737. Переведем 738 из десятичной системы в двоичную :

73710 = 0010111000012

Теперь переводим в 16 - теричную : 0010111000012 = 02E116

Ответ : адрес последнего символа 02E1H

Задача № 3

Составить программу на Ассемблере с комментариями :

Подсчитать число символов в строке, расположенной в области начиная с

адреса 1000H и заканчивая адресом 2000H без учета пробелов, если известно,

что каждый символ занимает одну ячейку памяти и пробел кодируется как 01H.

Максимальное число символов в строке 2000h -1000h=1000h=409610

После выполнения программы результат будет помещен в HL.

LXI SP,3000h ; указание вершины стека

LXI H,1000h ; адрес 1-го элемента => в HL

LXI D,1000h ; загрузка счетчика в D,E

XRA A ; обнуление аккумулятора

STA 2001h ; обнуление счетчика количества символов

STA 2002h ; обнуление счетчика количества символов

MVI B,01h ; код пробела => в В

LOOP:

MOV A,M ; загрузить символ из ячейки М в аккумулятор

CMP B ; проверка на код пробела

JNZ COUNT ; если не совпадает, переход к COUNT, иначе - дальше

INX H ; адрес следующего символа

DCX D ; уменьшить счетчик

JZ EXIT ; если счетчик = 0, на выход

JMP LOOP ; в начало цикла

COUNT:

PUSH H ; выгрузить содержимое HL в стек

LHLD 2001h ; загрузить HL содержимым счетчика количества

символов

INX H ; увеличить счетчик на 1

SHLD 2001h ; сохранить счетчик количества символов в 2001h,

2002h

POP H ; восстановить в HL сохраненный адрес

RET ; возврат из подпрограммы

EXIT:

LHLD 2001h ; загрузить HL содержимым счетчика количества

символов

END

Задача № 4

Составить программу на Ассемблере, направленную на решение математической

функции :

Z = lg(x+1)

Натуральный и десятичный логарифмы одного и того же числа (в данном случае

- выражения) связаны простым соотношением, позволяющим переходить от одного

к другому :

lg x = Mlnx , где M = 1/ln10 = 0,434294481903252…

т.е., десятичный логарифм числа x = натуральному логарифму этого же

числа, умноженному на постоянный множитель M = 0,434294481903252…,

называемый модулем перехода от натуральных логарифмов к десятичным.

В соответствии с вышесказанным, lg (x+1) = 0,434294481903252…* ln(x+1)

Для вычисления ln(x+1) используем разложение в ряд :

ln(x+1) = x-x2/2+x3/3-x4/4+x5/5-x6/6+x7/7-x8/8+…

В результате алгоритм решения сводится к четырем арифметическим

действиям : + ; - ; * ; /.

Перед выполнением арифметических действий над числами с плавающей

запятой условимся первое число размещать в регистрах EHL, второе – в

регистрах DBC; результат операции оставлять в EHL.

Формат представления чисел с плавающей запятой :

Где : S – знак числа ( 1-отрицательный, 0-положительный ), P0…P7 – 8-

битный смещенный порядок, M1 … M15 – мантисса . Скрытый бит целой части

мантиссы в нормализованных числах содержит 1

|1000h |X |

|1001h | |

|1003h | |

|1003h |X2 |

|1004h | |

|1005h | |

|1006h |X3 |

|1007h | |

|1008h | |

|1009h |X4 |

|100Ah | |

|100Bh | |

|100Ch |X5 |

|100Dh | |

|100Eh | |

|100Fh |X6 |

|1010h | |

|1011h | |

|1012h |X7 |

|1013h | |

|1014h | |

|1020h |Адрес |

| |ячейки с |

| |текущим XN|

|1021h | |

|1022h |Текущий N |

До начала вычислений число Х должно быть размещено в памяти по адресам

1000h-1002h.

;начало цикла вычислений

CALC1:

LXI H,1003h ; сохранение адреса первой ячейки

SHLD 1020h ; для хранения XN

CALL LOAD ; Загрузка Х в EHL

;цикл вычисления XN

CALC2:

CALL LOAD1 ;Загрузка Х в DBC

CALL MULF ; Умножение чисел с плавающей точкой

MOV B,H ; HL=>BC

MOV C,L

LHLD 1020h ;загрузить адрес ячейки памяти для хранения Хn

MOV M,E ;Хn => в память

INX H

MOV M,B

INX H

MOV M,C

INX H

SHLD 1020h ;запомнить адрес ячейки памяти для следующего Хn

MOV H,B ;BC=>HL

MOV L,C

LDA 1021h ;содержимое ячейки => в аккумулятор

CPI 15h ;если получены все значения Хn,

JZ CALC3 ;переход на CALC3

JMP CALC2 ;иначе- в начало

CALC3:

LXI H,1022h ;

MVI M,01h ;загрузить в ячейку 1022h делитель

LXI H,1003h ;

SHLD 1020h ;содержимое HL => в память

;цикл вычисления XN/N

CALC4:

MOV B,H ; HL=>BC

MOV C,L

LHLD 1020h ;загрузить адрес ячейки памяти для хранения N

MOV E,M ;Хn => в регистры

INX H

MOV B,M

INX H

MOV C,M

SHLD 1020h ;запомнить адрес ячейки памяти для следующего Хn

MOV H,B ;BC=>HL

MOV L,C

PUSH H ;

LXI H,1022h ;N => в ячейку С

MOV C,M

POP H ;

MVI D,00h

MVI B,00h

CALL DIVF ; Деление чисел с плавающей точкой

MOV B,H ; HL=>BC

MOV C,L

LHLD 1020h ;загрузить адрес ячейки памяти для хранения Хn/N

DCX H ;

DCX H ;

MOV M,E ;Хn/N => в память

INX H

MOV M,B

INX H

MOV M,C

INX H

SHLD 1020h ;запомнить адрес ячейки памяти для следующего Хn/N

MOV H,B ;BC=>HL

MOV L,C

PUSH H ;

LXI H,1022h ;N => в ячейку С

MOV C,M ;инкремент N

INR C

MOV M,C

POP H ;

LDA 1021h ;содержимое ячейки => в аккумулятор

CPI 15h ;если получены все значения Хn,

JZ CALC5 ;переход на CALC5

JMP CALC4 ;иначе- в начало

CALC5:

LXI H,1003h ;

SHLD 1020h ;

;

CALC6:

LHLD 1020h ;загрузить адрес ячейки памяти для хранения N

MOV D,M ;Хn/N => в регистры D,B,C.

INX H

MOV B,M

INX H

MOV C,M

INX H

SHLD 1020h ;запомнить адрес ячейки памяти для следующего Хn/N

;

;вычисление ln(x+1)

CALC7:

CALL LOAD ; Загрузка Х в EHL

CALL SUBF ; Вычитание чисел с плавающей точкой

CALL CALC8 ; загрузка Хn+1/N+1 в регистры D,B,C.

CALL ADDF ; Сложение чисел с плавающей точкой

CALL CALC8 ; загрузка Хn+1/N+1 в регистры D,B,C.

CALL SUBF ; Вычитание чисел с плавающей точкой

CALL CALC8 ; загрузка Хn+1/N+1 в регистры D,B,C.

CALL ADDF ; Сложение чисел с плавающей точкой

CALL CALC8 ; загрузка Хn+1/N+1 в регистры D,B,C.

CALL SUBF ; Вычитание чисел с плавающей точкой

CALL CALC8 ; загрузка Хn+1/N+1 в регистры D,B,C.

CALL ADDF ; Сложение чисел с плавающей точкой

CALL CALC8 ; загрузка Хn+1/N+1 в регистры D,B,C.

MVI D,00h ; загрузка модуля пере-

MVI B,2Bh ; хода в DBC

MVI C,2Bh

CALL MULF ; Умножение ln(x+1) на модуль перехода к lg

JMP EXIT ; на выход

;

;загрузка Хn+1/N+1 в регистры D,B,C.

CALC8:

PUSH H

LHLD 1020h ;загрузить адрес ячейки памяти для хранения N

MOV D,M ;Хn/N => в регистры D,B,C.

INX H

MOV B,M

INX H

MOV C,M

INX H

SHLD 1020h ;запомнить адрес ячейки памяти для следующего Хn/N

POP H ;

RET ;

;

EXIT:

HLT ; Останов

;

;

;

;Загрузка Х в EHL

LOAD:

LXI H,1000h ;загрузка в HL адреса порядка Х

MOV E,M ;загрузка порядка Х в Е

LHLD 1001h ;загрузка мантиссы в HL

RET ;

;Загрузка Х в DBC

LOAD1:

PUSH H ;выгрузка в стек HL

LXI H,1000h ;загрузка в HL адреса порядка Х

MOV D,M ;загрузка порядка Х в D

INX H ;

MOV B,M ;

INX H ;

MOV C,M ;загрузка мантиссы в BC

POP H ;загрузка из стека HL

RET ;

;Образование дополнительного кода числа в регистре HL

comp:

mov A,H ;

CMA ;

MOV H,A ;

MOV A,L ;

CMA ;

MOV L,A ;

INX H ;

RET ;

;Проверка знака и образование дополнительного кода

NEG:

MOV A,E ;

ORA E ;

JP NOTDK ;

CALL COMP ; Образование дополнительного кода числа в регистре HL

NOTDK: RET ;

;Сдвиг содержимого HL вправо на 1 бит:

SHIFT:

MOV A,H ;

RAR ;

MOV H,A ;

MOV A,L ;

RAR ;

MOV L,A ;

RET ;

;Обмен содержимого регистров EHL и DBC

SWAP:

PUSH B ;

XTHL ;

POP B ;

MOV A,D ;

MOV D,E ;

MOV E,A ;

RET ;

;Восстановление числа с плавающей точкой

REC:

MOV A,H ;

ADD A ;

MOV A,E ;

RAL ;

MOV E,A ;

MOV A,H ;

ORI 80H ;

MOV H,A ;

RET ;

;Преобразование числа в стандартный формат

PACK:

LDA SIGN ;

ADD A ;

MOV A,E ;

MOV D,A ;

RAR ;

MOV E,A ;

MOV A,H ;

ANI 7FH ;

MOV H,A ;

MOV A,D ;

RRC ;

ANI 80H ;

ORA H ;

MOV H,A ;

RET ;

;Сложение чисел с плавающей точкой

ADDF:

MOV A,D ;

XRA E ;

JP ADDF1 ;

MOV A,D ;

XRI 80H ;

MOV D,A ;

JMP SUBF ;

;

ADDF1:

MOV A,D ;

ORA B ;

ORA C ;

JZ ADDF8 ;

MOV A,E ;

ORA H ;

ORA L ;

JNZ ADDF2 ;

CALL SWAP ; Обмен содержимого регистров EHL и DBC

JMP ADDF8 ;

;

ADDF2:

MOV A,D ;

STA SIGN ;

CALL REC ;

CALL SWAP ; Обмен содержимого регистров EHL и DBC

CALL REC ; Восстановление числа с плавающей точкой

;

MOV A,E ;

SUB D ;

JNC ADDF3 ;

CALL SWAP ; Обмен содержимого регистров EHL и DBC

MOV A,E ;

SUB D ;

;

; В EHL большее число, в аккумуляторе разность потенциалов

ADDF3:

JZ ADDF6 ;

CPI 16 ;

JC ADDF4 ;

JMP ADDF7 ;

;

;Можно сдвигать мантиссу меньшего числа

ADDF4:

MOV E,A ;

CALL SWAP ; Обмен содержимого регистров EHL и DBC

ADDF5:

ORA A ;

CALL SHIFT ; Сдвиг содержимого HL вправо на 1 бит:

INR E ;

DCR D ;

JNZ ADDF5 ;

;

;В регистре Е общий порядок. Можно складывать мантиссы

ADDF6:

DAD B ;

JNC ADDF7 ;

INR E ;

JZ ADDF8 ;

ORA A ;

CALL SHIFT ; Сдвиг содержимого HL вправо на 1 бит:

;

ADDF7:

CALL PACK ; Преобразование числа в стандартный формат

;

ADDF8:

RET ;

;

;Вычитание чисел с плавающей точкой

SUBF:

MOV A,D ;

XRA E ;

JP SUBF1 ;

MOV A,D ;

XRI 80H ;

MOV D,A ;

JMP ADDF ; Сложение чисел с плавающей точкой

SUBF1:

MOV A,D ;

ORA B ;

ORA C ;

JZ SUBFA ;

MOV A,E ;

ORA H ;

ORA L ;

JNZ SUBF2 ;

CALL SWAP ; Обмен содержимого регистров EHL и DBC

MOV A,E ;

XRI 80H ;

MOV E,A ;

JMP SUBFA ;

SUBF2:

MOV A,E ;

STA SIGN ;

CALL REC ; Восстановление числа с плавающей точкой

CALL SWAP ; Обмен содержимого регистров EHL и DBC

CALL REC ; Восстановление числа с плавающей точкой

MOV A,D ;

SUB E ;

JNZ SUBF3 ;

MOV A,B ;

CMP H ;

JNZ SUBF3 ;

MOV A,C ;

CMP L ;

JNZ SUBF3 ;

MVI E,0 ;

LXI H,0 ;

JMP SUBFA ;

;

;операнды не равны, необходимо вычитать

SUBF3:

JNC SUBF4 ;

CALL SWAP ; Обмен содержимого регистров EHL и DBC

LDA SIGN ;

XRI 80H ;

STA SIGN ;

;

SUBF4:

MOV A,D ;

SUB E ;

JZ SUBF7 ;

CPI 16 ;

JC SUBF5 ;

CALL SWAP ; Обмен содержимого регистров EHL и DBC

JMP SUBF ;

;

;В регистре А разность порядков, в DBC больший операнд

SUBF5:

MOV E,A ;

SUBF6:

ORA A ;

CALL SHIFT ; Сдвиг содержимого HL вправо на 1 бит:

DCR E ;

JNZ SUBF6 ;

;

;Вычесть мантиссы, результат в EHL

SUBF7:

MOV A,C ;

SUB L ;

MOV L,A ;

MOV A,B ;

SBB H ;

MOV H,A ;

MOV E,D ;

;

;нормализовать и проверить антипереполнение

SUBF8:

MOV A,H ;

ORA H ;

JM SUBF9 ;

DCR E ;

MOV A,E ;

CPI 0FFH ;

STC ;

JZ SUBFA ;

DAD H ;

JMP SUBF8 ;

;

SUBF9:

CALL PACK ; Преобразование числа в стандартный формат

SUBFA:

RET ;

;

;Умножение чисел с плавающей точкой

MULF:

MOV A,E ;

ORA H ;

ORA L ;

JZ MULF8 ;

MOV A,D ;

ORA B ;

ORA C ;

JNZ MULF1 ;

CALL SWAP ; Обмен содержимого регистров EHL и DBC

JMP MULF8 ;

;

;операнды ненулевые, можно умножать

MULF1:

MOV A,D ;

XRA E ;

STA SIGN ;

CALL REC ; Восстановление числа с плавающей точкой

CALL SWAP ; Обмен содержимого регистров EHL и DBC

CALL REC ; Восстановление числа с плавающей точкой

MOV A,D ;

ADD E ;

JC MULF2 ;

SUI 127 ;

JNC MULF3 ;

JMP MULF8 ;

;

MULF2:

ADI 129 ;

JNC MULF3 ;

JMP MULF8 ;

;

;в аккумуляторе А смещенный порядок произведения

MULF3:

MOV C,A ;

MOV E,B ;

MVI D,0 ;

MOV A,H ;

LXI H,0 ;

XCHG ;

DAD H ;

XCHG ;

;

;начало цикла умножения

MULF4:

ORA A ;

RAR ;

JNC MULF5 ;

DAD D ;

;

MULF5:

JZ MULF6 ;

XCHG ;

DAD H ;

XHG ;

JMP MULF4 ;

;

;проверить нарушение нормализации

MULF6:

JNC MULF7 ;

CALL SHIFT ; Сдвиг содержимого HL вправо на 1 бит:

INR C ;

STC ;

JZ MULF8 ;

;

MULF7:

MOV E,C ;

CALL PACK ; Преобразование числа в стандартный формат

;

MULF8:

RET ;

;

;Деление чисел с плавающей точкой

DIVF:

MOV A,E ;

ORA H ;

ORA L ;

JZ DIVF7 ;

MOV A,D ;

ORA B ;

ORA C ;

STC ;

JZ DIVF7 ;

;операнды не равны нулю

MOV A,D ;

XRA E ;

STA SIGN ;

CALL REC ; Восстановление числа с плавающей точкой

CALL SWAP ; Обмен содержимого регистров EHL и DBC

CALL REC ; Восстановление числа с плавающей точкой

CALL SWAP ; Обмен содержимого регистров EHL и DBC

MOV A,E ;

SUB D ;

JNC DIVF1 ;

ADI 127 ;

CMC ;

JC DIVF7 ; возикло антипереполнение

JMP DIVF2 ; перейти на деление мантисс

;

DIVF1:

ADI 127 ; прибавить смещение

JC DIVF7 ; возникло антипереполнение

;

;можно начинать деление мантисс

DIVF2:

STA EXP ;

XCHG ;

LXI H,0 ;

MVI A,16 ; инициализировать счетчик

PUSH PSW ;

JMP DIVF4 ; войти в цикл деления

;

DIVF3:

PUSH PSW ;

DAD H ; сдвинуть влево

XCHG ; частное и остаток

DAD H ;

XCHG ;

;

DIVF4:

PUSH D ; сохранить остаок в стеке

MOV A,E ; вычесть делитель из остатка

SUB C ;

MOV E,A ;

MOV A,D ;

SBB B ;

MOV D,A ;

JC DIVF5 ;

POP PSW ; удалить остаток из стека

INR L ;

PUSH D ;

;

DIVF5:

POP D ; извлечь предыдущий остаток

POP PSW ; извлечь счетчик

DCR A ; декремент счетчика

JNZ DIVF3 ; повторить цикл деления

; деление мантисс закончено

LDA EXP ;

MOV E,A ;

; нормализовать частное

MOV A,H ;

ORA A ;

JM DIVF6 ;

DAD H ;

DCR E ;

CPI 0FFH ; проверить антипереполнение

STC ;

JZ DIVF7 ; возникло антипереполнение

;

DIVF6:

CALL PACK ; Преобразование числа в стандартный формат

DIVF7:

RET ;

;

Контрольная работа № 3

Задача № 1

Построить модель распределения адресного пространства с указанием

диапазонов адресов в 16-й системе счисления. В качестве дешифратора адресов

используется стандартный дешифратор, к информационным входам которого

подключены линии А15, А12, А9 16-разрядной шины адреса.

|Выходы|Разряды адреса |Диапазоны адресов |

|дешиф-| | |

|ратора| | |

| |1|1|1|1|1|1|9|8|7|6|5|4|3|2|1|0| |

| |5|4|3|2|1|0| | | | | | | | | | | |

|Y0 |0|X|X|0|X|X|0|X|X|X|X|X|X|X|X|X|0000h-01FFh, 0400h-05FFh, |

| | | | | | | | | | | | | | | | | |0800h-0DFFh |

| | | | | | | | | | | | | | | | | |2000h-21FFh, 2400h-25FFh, |

| | | | | | | | | | | | | | | | | |2800h-2DFFh |

| | | | | | | | | | | | | | | | | |4000h-41FFh, 4400h-45FFh, |

| | | | | | | | | | | | | | | | | |4800h-4DFFh |

| | | | | | | | | | | | | | | | | |6000h-61FFh, 6400h-65FFh, |

| | | | | | | | | | | | | | | | | |6800h-6DFFh |

|Y1 |0|X|X|0|X|X|1|X|X|X|X|X|X|X|X|X|0200h-03FFh, 0600h-07FFh, |

| | | | | | | | | | | | | | | | | |0A00h-0FFFh |

| | | | | | | | | | | | | | | | | |2200h-23FFh, 2600h-27FFh, |

| | | | | | | | | | | | | | | | | |2A00h-2FFFh |

| | | | | | | | | | | | | | | | | |4200h-43FFh, 4600h-47FFh, |

| | | | | | | | | | | | | | | | | |4A00h-4FFFh |

| | | | | | | | | | | | | | | | | |6200h-63FFh, 6600h-67FFh, |

| | | | | | | | | | | | | | | | | |6A00h-6FFFh |

|Y2 |0|X|X|1|X|X|0|X|X|X|X|X|X|X|X|X|1000h-11FFh, 1400h-15FFh, |

| | | | | | | | | | | | | | | | | |1800h-1DFFh |

| | | | | | | | | | | | | | | | | |3000h-31FFh, 3400h-35FFh, |

| | | | | | | | | | | | | | | | | |3800h-3DFFh |

| | | | | | | | | | | | | | | | | |5000h-51FFh, 5400h-55FFh, |

| | | | | | | | | | | | | | | | | |5800h-5DFFh |

| | | | | | | | | | | | | | | | | |7000h-71FFh, 7400h-75FFh, |

| | | | | | | | | | | | | | | | | |7800h-7DFFh |

|Y3 |0|X|X|1|X|X|1|X|X|X|X|X|X|X|X|X|1200h-13FFh, 1600h-17FFh, |

| | | | | | | | | | | | | | | | | |1A00h-1FFFh |

| | | | | | | | | | | | | | | | | |3200h-33FFh, 3600h-37FFh, |

| | | | | | | | | | | | | | | | | |3A00h-3FFFh |

| | | | | | | | | | | | | | | | | |5200h-53FFh, 5600h-57FFh, |

| | | | | | | | | | | | | | | | | |5A00h-5FFFh |

| | | | | | | | | | | | | | | | | |7200h-73FFh, 7600h-77FFh, |

| | | | | | | | | | | | | | | | | |7A00h-7FFFh |

|Y4 |1|X|X|0|X|X|0|X|X|X|X|X|X|X|X|X|8000h-81FFh, 8400h-85FFh, |

| | | | | | | | | | | | | | | | | |8800h-8DFFh |

| | | | | | | | | | | | | | | | | |A000h-A1FFh, A400h-A5FFh, |

| | | | | | | | | | | | | | | | | |A800h-ADFFh |

| | | | | | | | | | | | | | | | | |C000h-C1FFh, C400h-C5FFh, |

| | | | | | | | | | | | | | | | | |C800h-CDFFh |

| | | | | | | | | | | | | | | | | |E000h-E1FFh, E400h-E5FFh, |

| | | | | | | | | | | | | | | | | |E800h-EDFFh |

|Y5 |1|X|X|0|X|X|1|X|X|X|X|X|X|X|X|X|8200h-83FFh, 8600h-87FFh, |

| | | | | | | | | | | | | | | | | |8A00h-8FFFh |

| | | | | | | | | | | | | | | | | |A200h-A3FFh, A600h-A7FFh, |

| | | | | | | | | | | | | | | | | |AA00h-AFFFh |

| | | | | | | | | | | | | | | | | |C200h-C3FFh, C600h-C7FFh, |

| | | | | | | | | | | | | | | | | |CA00h-CFFFh |

| | | | | | | | | | | | | | | | | |E200h-E3FFh, E600h-E7FFh, |

| | | | | | | | | | | | | | | | | |EA00h-EFFFh |

|Y6 |1|X|X|1|X|X|0|X|X|X|X|X|X|X|X|X|9000h-91FFh, 9400h-95FFh, |

| | | | | | | | | | | | | | | | | |9800h-9DFFh |

| | | | | | | | | | | | | | | | | |B000h-B1FFh, B400h-B5FFh, |

| | | | | | | | | | | | | | | | | |B800h-BDFFh |

| | | | | | | | | | | | | | | | | |D000h-D1FFh, D400h-D5FFh, |

| | | | | | | | | | | | | | | | | |D800h-DDFFh |

| | | | | | | | | | | | | | | | | |F000h-F1FFh, F400h-F5FFh, |

| | | | | | | | | | | | | | | | | |F800h-FDFFh |

|Y7 |1|X|X|1|X|X|1|X|X|X|X|X|X|X|X|X|9200h-93FFh, 9600h-97FFh, |

| | | | | | | | | | | | | | | | | |9A00h-9FFFh |

| | | | | | | | | | | | | | | | | |B200h-B3FFh, B600h-B7FFh, |

| | | | | | | | | | | | | | | | | |BA00h-BFFFh |

| | | | | | | | | | | | | | | | | |D200h-D3FFh, D600h-D7FFh, |

| | | | | | | | | | | | | | | | | |DA00h-DFFFh |

| | | | | | | | | | | | | | | | | |F200h-F3FFh, F600h-F7FFh, |

| | | | | | | | | | | | | | | | | |FA00h-FFFFh |

В итоге адресное пространство размером в 64 Кбайт разбито на

диапазоны для 8 устройств. В каждом диапазоне выделено 8 участков по 512

байт и 4 участка по 1536 байт.

Задача № 2

Требуется выделить зоны адресного пространства для размещения в них

адресов для устройств, указанных в таблице. В качестве адресного

дешифратора используется ПЗУ. Построить схемы выделения соответствующих

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

|Наименование |Диапазон |Емкость |

|устройства |адресов |(Кбайт) |

|ПЗУ1 |0000h-03FFh |1 |

|ОЗУ1 |0400h-0BFFh |2 |

|УВВ1 |2000h-2FFFh |4 |

|ПЗУ2 |3000h-4FFFh |8 |

|ОЗУ2 |5000h-6FFFh |8 |

|УВВ2 |8000h-FFFFh |32 |

Так как наименьший блок имеет размер 1К ячеек, то разрешающая

способность дешифратора должна обеспечивать деление адресного пространства

с точностью до зон размером 1К ячеек. Анализируя шесть старших разрядов

адреса, получаем необходимую точность, поскольку они делят все адресное

пространство обьемом 64К ячеек на 26 = 64 части по 1К ячеек, что и

требуется.

Выбираем за основу ПЗУ с 10 адресными входами 2716 ( К573РФ2 ),

имеющее структуру 2К*8 бит . Выходы 00 - 05 этого ПЗУ подключаем к

инверсным входам выбора кристалла соответсвующих микросхем.

Разрабатываем прошивку ПЗУ.

|Устройство|Диапазон |Адресные входы |Выходы |

| |адресов | | |

| | |A5 |A4 |A3 |A2 |A1 |A0 |0 1 2 3 4 5 |

|ROM 1 |0000h-03FFh |0 |0 |0 |0 |0 |0 |0 1 1 1 1 1 |

|RAM 1 |0400h-07FFh |0 |0 |0 |0 |0 |1 |1 0 1 1 1 1 |

| |0800h-0BFFh |0 |0 |0 |0 |1 |0 |1 0 1 1 1 1 |

|- |0C00h-0FFFh |0 |0 |0 |0 |1 |1 |1 1 1 1 1 1 |

| |1000h-13FFh |0 |0 |0 |1 |0 |0 |1 1 1 1 1 1 |

| |1400h-17FFh |0 |0 |0 |1 |0 |1 |1 1 1 1 1 1 |

| |1800h-1BFFh |0 |0 |0 |1 |1 |0 |1 1 1 1 1 1 |

| |1C00h-1FFFh |0 |0 |0 |1 |1 |1 |1 1 1 1 1 1 |

|IN-OUT 1 |2000h-23FFh |0 |0 |1 |0 |0 |0 |1 1 0 1 1 1 |

| |2400h-27FFh |0 |0 |1 |0 |0 |1 |1 1 0 1 1 1 |

| |2800h-2BFFh |0 |0 |1 |0 |1 |0 |1 1 0 1 1 1 |

| |2C00h-2FFFh |0 |0 |1 |0 |1 |1 |1 1 1 1 1 1 |

|ROM 2 |3000h-33FFh |0 |0 |1 |1 |0 |0 |1 1 1 1 1 1 |

| |3400h-37FFh |0 |0 |1 |1 |0 |1 |1 1 1 1 1 1 |

| |3800h-3BFFh |0 |0 |1 |1 |1 |0 |1 1 1 1 1 1 |

| |3C00h-3FFFh |0 |0 |1 |1 |1 |1 |1 1 1 1 1 1 |

| |4000h-43FFh |0 |1 |0 |0 |0 |0 |1 1 1 1 1 1 |

| |4400h-47FFh |0 |1 |0 |0 |0 |1 |1 1 1 1 1 1 |

| |4800h-4BFFh |0 |1 |0 |0 |1 |0 |1 1 1 1 1 1 |

| |4C00h-4FFFh |0 |1 |0 |0 |1 |1 |1 1 1 1 1 1 |

|RAM 2 |5000h-53FFh |0 |1 |0 |1 |0 |0 |1 1 1 1 1 1 |

| |5400h-57FFh |0 |1 |0 |1 |0 |1 |1 1 1 1 1 1 |

| |5800h-5BFFh |0 |1 |0 |1 |1 |0 |1 1 1 1 1 1 |

| |5C00h-5FFFh |0 |1 |0 |1 |1 |1 |1 1 1 1 1 1 |

| |6000h-63FFh |0 |1 |1 |0 |0 |0 |1 1 1 1 1 1 |

| |6400h-67FFh |0 |1 |1 |0 |0 |1 |1 1 1 1 1 1 |

| |6800h-6BFFh |0 |1 |1 |0 |1 |0 |1 1 1 1 1 1 |

| |6C00h-6FFFh |0 |1 |1 |0 |1 |1 |1 1 1 1 1 1 |

|- |7000h-73FFh |0 |1 |1 |1 |0 |0 |1 1 1 1 1 1 |

| |7400h-77FFh |0 |1 |1 |1 |0 |1 |1 1 1 1 1 1 |

| |7800h-7BFFh |0 |1 |1 |1 |1 |0 |1 1 1 1 1 1 |

| |7C00h-7FFFh |0 |1 |1 |1 |1 |1 |1 1 1 1 1 1 |

|Устройство|Диапазон |Адресные входы |Выходы |

| |адресов | | |

| | |A5 |A4 |A3 |A2 |A1 |A0 |0 1 2 3 4 5 |

|IN-OUT 2 |8000h-83FFh |1 |0 |0 |0 |0 |0 |1 1 1 1 1 1 |

| |8400h-87FFh |1 |0 |0 |0 |0 |1 |1 1 1 1 1 1 |

| |8800h-8BFFh |1 |0 |0 |0 |1 |0 |1 1 1 1 1 1 |

| |8C00h-8FFFh |1 |0 |0 |0 |1 |1 |1 1 1 1 1 1 |

| |9000h-93FFh |1 |0 |0 |1 |0 |0 |1 1 1 1 1 1 |

| |9400h-97FFh |1 |0 |0 |1 |0 |1 |1 1 1 1 1 1 |

| |9800h-9BFFh |1 |0 |0 |1 |1 |0 |1 1 1 1 1 1 |

| |9C00h-9FFFh |1 |0 |0 |1 |1 |1 |1 1 1 1 1 1 |

| |A000h-A3FFh |1 |0 |1 |0 |0 |0 |1 1 1 1 1 1 |

| |A400h-A7FFh |1 |0 |1 |0 |0 |1 |1 1 1 1 1 1 |

| |A800h-ABFFh |1 |0 |1 |0 |1 |0 |1 1 1 1 1 1 |

| |AC00h-AFFFh |1 |0 |1 |0 |1 |1 |1 1 1 1 1 1 |

| |B000h-B3FFh |1 |0 |1 |1 |0 |0 |1 1 1 1 1 1 |

| |B400h-B7FFh |1 |0 |1 |1 |0 |1 |1 1 1 1 1 1 |

| |B800h-BBFFh |1 |0 |1 |1 |1 |0 |1 1 1 1 1 1 |

| |BC00h-BFFFh |1 |0 |1 |1 |1 |1 |1 1 1 1 1 1 |

| |C000h-C3FFh |1 |1 |0 |0 |0 |0 |1 1 1 1 1 1 |

| |C400h-C7FFh |1 |1 |0 |0 |0 |1 |1 1 1 1 1 1 |

| |C800h-CBFFh |1 |1 |0 |0 |1 |0 |1 1 1 1 1 1 |

| |CC00h-CFFFh |1 |1 |0 |0 |1 |1 |1 1 1 1 1 1 |

| |D000h-D3FFh |1 |1 |0 |1 |0 |0 |1 1 1 1 1 1 |

| |D400h-D7FFh |1 |1 |0 |1 |0 |1 |1 1 1 1 1 1 |

| |D800h-DBFFh |1 |1 |0 |1 |1 |0 |1 1 1 1 1 1 |

| |DC00h-DFFFh |1 |1 |0 |1 |1 |1 |1 1 1 1 1 1 |

| |E000h-E3FFh |1 |1 |1 |0 |0 |0 |1 1 1 1 1 1 |

| |E400h-E7FFh |1 |1 |1 |0 |0 |1 |1 1 1 1 1 1 |

| |E800h-EBFFh |1 |1 |1 |0 |1 |0 |1 1 1 1 1 1 |

| |EC00h-EFFFh |1 |1 |1 |0 |1 |1 |1 1 1 1 1 1 |

| |F000h-F3FFh |1 |1 |1 |1 |0 |0 |1 1 1 1 1 1 |

| |F400h-F7FFh |1 |1 |1 |1 |0 |1 |1 1 1 1 1 1 |

| |F800h-FBFFh |1 |1 |1 |1 |1 |0 |1 1 1 1 1 1 |

| |FC00h-FFFFh |1 |1 |1 |1 |1 |1 |1 1 1 1 1 1 |

Схема дешифратора :

Карта памяти :

| |3FFh |7FFh |BFFh |FFFh | |

|0000h |ROM 1 |RAM 1 |- |0FFFh |

|1000h |- |1FFFh |

|2000h |IN-OUT 1 |2FFFh |

|3000h |ROM 2 |3FFFh |

|4000h | |4FFFh |

|5000h |RAM 2 |5FFFh |

|6000h | |6FFFh |

|7000h |- |7FFFh |

|8000h |IN-OUT 2 |8FFFh |

|9000h | |9FFFh |

|A000h | |AFFFh |

|B000h | |BFFFh |

|C000h | |CFFFh |

|D000h | |DFFFh |

|E000h | |EFFFh |

|F000h | |FFFFh |

| |000h |400h |800h |C00h | |

Задача № 3

Разделить адресное пространство 64 килобайта на 18 равных частей. В

качестве дешифратора адреса используется ПЛМ. Разбиение адресного

пространства показать в виде схемы и таблицы.

Размер одной части 65536 / 18 = 3640 байт. Т.к. 3640 * 18 = 65520,

последние 16 ячеек не будут использоваться.

Произведем разбиение 3640 байт на участки 2N :

3640 = 2048 + 1024 + 512 + 32 + 16 + 8

В результате получим 6 областей памяти по 18 участков в каждой :

0000h-8FFFh ( участки размером 2048 )

9000h-D7FFh ( участки размером 1024 )

D800h-FBFFh ( участки размером 512 )

FC00h-FE3Fh ( участки размером 32 )

FE40h-FF5Fh ( участки размером 16 )

FF60h-FFEFh ( участки размером 8 )

Прошивка ПЛМ 1

|Область |Диапазон |Разряды адреса |

| |адресов | |

| | |1 |1 |1 |1 |1 |1 |9 |8 |7 |6 |5 |4 |3 |2 |1 |0 |

| | |5 |4 |3 |2 |1 |0 | | | | | | | | | | |

|1 |0000h-07FFh|0 |0 |0 |0 |0 |X |X |X |X |X |X |X |X |X |X |X |

| |9000h-93FFh|1 |0 |0 |1 |0 |0 |X |X |X |X |X |X |X |X |X |X |

| |D800h-D9FFh|1 |1 |0 |1 |1 |0 |0 |X |X |X |X |X |X |X |X |X |

| |FC00h-FC1Fh|1 |1 |1 |1 |1 |1 |0 |0 |0 |0 |0 |X |X |X |X |X |

| |FE40h-FE4Fh|1 |1 |1 |1 |1 |1 |1 |0 |0 |1 |0 |0 |X |X |X |X |

| |FF60h-FF67h|1 |1 |1 |1 |1 |1 |1 |1 |0 |1 |1 |0 |0 |X |X |X |

|2 |0800h-0FFFh|0 |0 |0 |0 |1 |X |X |X |X |X |X |X |X |X |X |X |

| |9400h-97FFh|1 |0 |0 |1 |0 |1 |X |X |X |X |X |X |X |X |X |X |

| |DA00h-DBFFh|1 |1 |0 |1 |1 |0 |1 |X |X |X |X |X |X |X |X |X |

| |FC20h-FC3Fh|1 |1 |1 |1 |1 |1 |0 |0 |0 |0 |1 |X |X |X |X |X |

| |FE50h-FE5Fh|1 |1 |1 |1 |1 |1 |1 |0 |0 |1 |0 |0 |X |X |X |X |

| |FF68h-FF6Fh|1 |1 |1 |1 |1 |1 |1 |1 |0 |1 |1 |0 |1 |X |X |X |

|3 |1000h-17FFh|0 |0 |0 |1 |0 |X |X |X |X |X |X |X |X |X |X |X |

| |9800h-9BFFh|1 |0 |0 |1 |1 |0 |X |X |X |X |X |X |X |X |X |X |

| |DC00h-DDFFh|1 |1 |0 |1 |1 |1 |0 |X |X |X |X |X |X |X |X |X |

| |FC40h-FC5Fh|1 |1 |1 |1 |1 |1 |0 |0 |0 |1 |0 |X |X |X |X |X |

| |FE60h-FE6Fh|1 |1 |1 |1 |1 |1 |1 |0 |0 |1 |1 |0 |X |X |X |X |

| |FF70h-FF77h|1 |1 |1 |1 |1 |1 |1 |1 |0 |1 |1 |1 |0 |X |X |X |

|4 |1800h-1FFFh|0 |0 |0 |1 |1 |X |X |X |X |X |X |X |X |X |X |X |

| |9C00h-9FFFh|1 |0 |0 |1 |1 |1 |X |X |X |X |X |X |X |X |X |X |

| |DE00h-DFFFh|1 |1 |0 |1 |1 |1 |1 |X |X |X |X |X |X |X |X |X |

| |FC60h-FC7Fh|1 |1 |1 |1 |1 |1 |0 |0 |0 |1 |1 |X |X |X |X |X |

| |FE70h-FE7Fh|1 |1 |1 |1 |1 |1 |1 |0 |0 |1 |1 |1 |X |X |X |X |

| |FF78h-FF7Fh|1 |1 |1 |1 |1 |1 |1 |1 |0 |1 |1 |0 |0 |X |X |X |

|5 |2000h-27FFh|0 |0 |1 |0 |0 |X |X |X |X |X |X |X |X |X |X |X |

| |A000h-A3FFh|1 |0 |1 |0 |0 |0 |X |X |X |X |X |X |X |X |X |X |

| |E000h-E1FFh|1 |1 |1 |0 |0 |1 |0 |X |X |X |X |X |X |X |X |X |

| |FC80h-FC9Fh|1 |1 |1 |1 |1 |1 |0 |0 |1 |0 |0 |X |X |X |X |X |

| |FE80h-FE8Fh|1 |1 |1 |1 |1 |1 |1 |0 |1 |0 |0 |0 |X |X |X |X |

| |FF80h-FF87h|1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |0 |0 |0 |X |X |X |

|6 |2800h-2FFFh|0 |0 |1 |0 |1 |X |X |X |X |X |X |X |X |X |X |X |

| |A400h-A7FFh|1 |0 |1 |0 |0 |1 |X |X |X |X |X |X |X |X |X |X |

| |E200h-E3FFh|1 |1 |1 |0 |0 |0 |1 |X |X |X |X |X |X |X |X |X |

| |FCA0h-FCBFh|1 |1 |1 |1 |1 |1 |0 |0 |1 |0 |1 |X |X |X |X |X |

| |FE90h-FE9Fh|1 |1 |1 |1 |1 |1 |1 |0 |1 |0 |0 |1 |X |X |X |X |

| |FF88h-FF8Fh|1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |0 |0 |1 |X |X |X |

|7 |3000h-37FFh|0 |0 |1 |1 |0 |X |X |X |X |X |X |X |X |X |X |X |

| |A800h-ABFFh|1 |0 |1 |0 |1 |0 |X |X |X |X |X |X |X |X |X |X |

| |E400h-E5FFh|1 |1 |1 |0 |0 |1 |0 |X |X |X |X |X |X |X |X |X |

| |FCC0h-FCDFh|1 |1 |1 |1 |1 |1 |0 |0 |1 |1 |0 |X |X |X |X |X |

| |FEA0h-FEAFh|1 |1 |1 |1 |1 |1 |1 |0 |1 |0 |1 |0 |X |X |X |X |

| |FF90h-FF97h|1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |0 |1 |X |X |X |X |

|8 |3800h-3FFFh|0 |0 |1 |1 |1 |X |X |X |X |X |X |X |X |X |X |X |

| |AC00h-AFFFh|1 |0 |1 |0 |1 |1 |X |X |X |X |X |X |X |X |X |X |

| |E600h-E7FFh|1 |1 |1 |0 |0 |1 |1 |X |X |X |X |X |X |X |X |X |

| |FCEOh-FCFFh|1 |1 |1 |1 |1 |1 |0 |0 |1 |1 |1 |X |X |X |X |X |

| |FEB0h-FEBFh|1 |1 |1 |1 |1 |1 |1 |0 |1 |0 |1 |1 |X |X |X |X |

| |FF98h-FF9Fh|1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |0 |1 |X |X |X |X |

|9 |4000h-47FFh|1 |0 |1 |1 |0 |0 |X |X |X |X |X |X |X |X |X |X |

| |B000h-B3FFh|1 |0 |1 |1 |0 |0 |X |X |X |X |X |X |X |X |X |X |

| |E800h-E9FFh|1 |1 |1 |0 |1 |0 |0 |X |X |X |X |X |X |X |X |X |

| |FD00h-FD1Fh|1 |1 |1 |1 |1 |1 |0 |1 |0 |0 |0 |X |X |X |X |X |

| |FEC0h-FECFh|1 |1 |1 |1 |1 |1 |1 |0 |1 |1 |0 |0 |X |X |X |X |

| |FFA0h-FFA7h|1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |1 |0 |X |X |X |X |

Прошивка ПЛМ 2

|Область |Диапазон |Разряды адреса |

| |адресов | |

| | |1 |1 |1 |1 |1 |1 |9 |8 |7 |6 |5 |4 |3 |2 |1 |0 |

| | |5 |4 |3 |2 |1 |0 | | | | | | | | | | |

|10 |4800h-4FFFh|0 |1 |0 |0 |1 |X |X |X |X |X |X |X |X |X |X |X |

| |B400h-B7FFh|1 |0 |1 |1 |0 |1 |X |X |X |X |X |X |X |X |X |X |

| |EA00h-EBFFh|1 |1 |1 |0 |1 |0 |1 |X |X |X |X |X |X |X |X |X |

| |FD20h-FD3Fh|1 |1 |1 |1 |1 |1 |0 |1 |0 |0 |1 |X |X |X |X |X |

| |FED0h-FEDFh|1 |1 |1 |1 |1 |1 |1 |0 |1 |1 |0 |1 |X |X |X |X |

| |FFA8h-FFAFh|1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |1 |0 |1 |X |X |X |

|11 |5000h-57FFh|0 |1 |0 |1 |1 |X |X |X |X |X |X |X |X |X |X |X |

| |B800h-BBFFh|1 |0 |1 |1 |1 |0 |X |X |X |X |X |X |X |X |X |X |

| |EC00h-EDFFh|1 |1 |1 |0 |1 |1 |0 |X |X |X |X |X |X |X |X |X |

| |FD40h-FD5Fh|1 |1 |1 |1 |1 |1 |0 |1 |0 |1 |0 |X |X |X |X |X |

| |FEE0h-FEEFh|1 |1 |1 |1 |1 |1 |1 |0 |1 |1 |1 |0 |X |X |X |X |

| |FFB0h-FFB7h|1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |1 |1 |0 |X |X |X |

|12 |5800h-5FFFh|0 |1 |0 |1 |0 |X |X |X |X |X |X |X |X |X |X |X |

| |BC00h-BFFFh|1 |0 |1 |1 |1 |1 |X |X |X |X |X |X |X |X |X |X |

| |EE00h-EFFFh|1 |1 |1 |0 |1 |1 |1 |X |X |X |X |X |X |X |X |X |

| |FD60h-FD7Fh|1 |1 |1 |1 |1 |1 |0 |1 |0 |1 |1 |X |X |X |X |X |

| |FEF0h-FEFFh|1 |1 |1 |1 |1 |1 |1 |0 |1 |1 |1 |1 |X |X |X |X |

| |FFB8h-FFBFh|1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |1 |1 |1 |X |X |X |

|13 |6000h-67FFh|0 |1 |1 |0 |1 |X |X |X |X |X |X |X |X |X |X |X |

| |C000h-C3FFh|1 |1 |0 |0 |0 |0 |X |X |X |X |X |X |X |X |X |X |

| |F000h-F1FFh|1 |1 |1 |1 |0 |0 |0 |X |X |X |X |X |X |X |X |X |

| |FD80h-FD9Fh|1 |1 |1 |1 |1 |1 |0 |1 |1 |0 |0 |X |X |X |X |X |

| |FF00h-FFOFh|1 |1 |1 |1 |1 |1 |1 |1 |0 |0 |0 |0 |X |X |X |X |

| |FFC0h-FFC7h|1 |1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |0 |0 |X |X |X |

|14 |6800h-6FFFh|0 |1 |1 |0 |0 |X |X |X |X |X |X |X |X |X |X |X |

| |C400h-C7FFh|1 |1 |0 |0 |0 |1 |X |X |X |X |X |X |X |X |X |X |

| |F200h-F3FFh|1 |1 |1 |1 |0 |0 |1 |X |X |X |X |X |X |X |X |X |

| |FDA0h-FDBFh|1 |1 |1 |1 |1 |1 |0 |1 |1 |0 |1 |X |X |X |X |X |

| |FF10h-FF1Fh|1 |1 |1 |1 |1 |1 |1 |1 |0 |0 |0 |1 |X |X |X |X |

| |FFC8h-FFCFh|1 |1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |0 |1 |X |X |X |

|15 |7000h-77FFh|0 |1 |1 |1 |1 |X |X |X |X |X |X |X |X |X |X |X |

| |C800h-CBFFh|1 |1 |0 |0 |1 |0 |X |X |X |X |X |X |X |X |X |X |

| |F400h-F5FFh|1 |1 |1 |1 |0 |1 |0 |X |X |X |X |X |X |X |X |X |

| |FDC0h-FDDFh|1 |1 |1 |1 |1 |1 |0 |1 |1 |1 |0 |X |X |X |X |X |

| |FF20h-FF2Fh|1 |1 |1 |1 |1 |1 |1 |1 |0 |0 |1 |0 |X |X |X |X |

| |FFD0h-FFD7h|1 |1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |1 |0 |X |X |X |

|16 |7800h-7FFFh|0 |1 |1 |1 |0 |X |X |X |X |X |X |X |X |X |X |X |

| |CC00h-CFFFh|1 |1 |0 |0 |1 |1 |X |X |X |X |X |X |X |X |X |X |

| |F600h-F7FFh|1 |1 |1 |1 |0 |1 |1 |X |X |X |X |X |X |X |X |X |

| |FDE0h-FDFFh|1 |1 |1 |1 |1 |1 |0 |1 |1 |1 |1 |X |X |X |X |X |

| |FF30h-FF3Fh|1 |1 |1 |1 |1 |1 |1 |1 |0 |0 |1 |1 |X |X |X |X |

| |FFD8h-FFDFh|1 |1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |1 |X |X |X |X |

|17 |8000h-87FFh|1 |0 |0 |0 |1 |X |X |X |X |X |X |X |X |X |X |X |

| |D000h-D3FFh|1 |1 |0 |1 |0 |0 |X |X |X |X |X |X |X |X |X |X |

| |F800h-F9FFh|1 |1 |1 |1 |1 |0 |0 |X |X |X |X |X |X |X |X |X |

| |FE00h-FE1Fh|1 |1 |1 |1 |1 |1 |1 |0 |0 |0 |0 |X |X |X |X |X |

| |FF40h-FF4Fh|1 |1 |1 |1 |1 |1 |1 |1 |0 |1 |0 |0 |X |X |X |X |

| |FFE0h-FFE7h|1 |1 |1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |X |X |X |X |

|18 |8800h-8FFFh|1 |0 |0 |0 |0 |X |X |X |X |X |X |X |X |X |X |X |

| |D400h-D7FFh|1 |1 |0 |1 |0 |1 |X |X |X |X |X |X |X |X |X |X |

| |FA00h-EBFFh|1 |1 |1 |1 |1 |0 |1 |X |X |X |X |X |X |X |X |X |

| |FE20h-FE3Fh|1 |1 |1 |1 |1 |1 |1 |0 |0 |0 |1 |X |X |X |X |X |

| |FF50h-FF5Fh|1 |1 |1 |1 |1 |1 |1 |1 |0 |1 |0 |1 |X |X |X |X |

| |FFE8h-FFEFh|1 |1 |1 |1 |1 |1 |1 |1 |1 |1 |1 |0 |X |X |X |X |

В результате получена таблица прошивки ПЛМ для разделения адресного

пространства 64 кБ на 18 несплошных равных частей.

Исходя из требуемого количества произведений ( 18 * 6 = 108 ) и

количества выходных функций (18), выбираем в качестве элементной базы

выпускаемую фирмой ADVANCED MICRO DEVICES микросхему ПЛМ PLS30S16. Эта

микросхема позволяет за счет мультиплексирования четырех адресных входов с

выходами иметь от 12 до 17 входов и от 8 до 12 выходов при количестве

произведений до 64.

Для решения поставленной задачи берем две ПЛМ, запараллеленные входы

которых подключены к шине адреса, а выходы – к входам выбора кристалла

соответствующих микросхем.

Технические данные на ПЛМ PLS30S16 фирмы AMD :

- IC MASTER/Windows -

(Title) :PLD|BIP||OTPRC

Section :PROGRAMMABLE LOGIC DEVICES

CAT0 :PLD

Category :Bipolar

CAT1 :BIP

MinorA :One-Time

Programmable~Registered/Combinatorial Outputs

CAT3 :OTPRC

MDD Code :AMD

Manufacturer's Name:ADVANCED MICRO DEVICES

Device Number :PLS30S16-40

Disc :*93

Date :10/26/92

Oper :BAC

Transcode :E

RBASE :30S16

MBase :PLS30S16

Data Book :DATASHEET

Propagation Delay (:40

Maximum Clock (MHz):22.2

Product Terms :64

Flip-Flops :12

Dedicated Inputs :12-17

Bidirectional I/Os :8-12

Standby Current (mA:225

Active Current (mA):225

Pins :28

Has Image :N

-----------------------

[pic]


© 2010 Современные рефераты