Микропроцессорные средства и системы
Микропроцессорные средства и системы
Министерство Образования Украины
Кременчугский Государственный Политехнический Институт
Контрольное задание по дисциплине
“ Микропроцессорные средства и системы ”
Вариант № 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]
|