|
Вычислительные системы и микропроцессорная техника
Таблица
6. ORG 0800h LHLD X 0800h 2A Загрузка X в регистровую пару HL 0801h 2A 0802h 08 MOV B,H 0803h 44 Перемещение входного MOV C,L 0804h 4D из HL в регистровую пару BC LXI D,FFFFh 0805h 11 Заполнение всей рагистровой 0806h FF пары DE одними единицами 0807h FF LXI H,0010h 0808h 21 Запись в HL числа 16 - 0809h 10 количества разрядов во 080Ah 00 входном слове shift: STC 080Bh 37 Установка бита CY CMC 080Ch 3F в значение 0 MOV A,B 080Dh 78 Циклический RAR 080Eh 1F сдвиг входного MOV B,A 080Fh 47 слова вправо MOV A,C 0810h 79 с сохранением RAR 0811h 1F его в регистровой MOV C,A 0812h 4F паре ВС JNC next 0813h D2 Переход на метку next, если 0814h 1D переноса единицы из младшего 0815h 08 разряда в старший не было CMC 0816h 3F Установка бита CY в "0" MOV A,E 0817h 7B Сдвиг RAL 0818h 17 выходного слова влево с MOV E,A 0819h 5F записью "0" в младший разряд, MOV A,D 081Ah 7A результат сохраняется RAL 081Bh 17 в регистровой MOV D,A 081Ch 57 паре ВС next: DCR L 081Dh 2D Уменьшение счетчика циклов на 1 JNZ shift 081Eh C2 Если L не равно "0" перейти 081Fh 0B на метку shift 0820h 08 MOV L,E 0821h 6B Загрузка сформированного MOV H,D 0822h 62 выходного кода из DE в HL SHLD Y 0823h 22 Вывод Y 0824h 2C 0825h 08 HLT 0826h 76 Останов END 0827h 00 Конец программы 0828h 00 0829h 00 X DW 00,00 082Ah 7F Ячейки входного слова 082Bh A7 Y DW FF,FF 082Ch F0 Ячейки выходного слова 082Dh FF X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 - - - - - - - - - - - - - - - - - - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 - - - - - - - - - - - - - - - - - - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 - - - - - - - - - - - - - - - - - - - - - - - 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 X13 X14 X15 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 - - - - - - - - - - - - - - - - - - - - - - - 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
//
comptech.cpp 17.6.96
//
//
Программа преобразует код 16-ти разрядного слова
//
таким образом, что число единиц во входном слове
//
заменяется на последовательностью нулей в выходном
//
16-ти разрядном слове. Нули справа.
//
//
Останов происходит, когда во входном слове не остается единиц
#include
<conio.h>
#include
<stdio.h>
void
main(void)
{
union WORD16
{
int sw;
char sb[2];
};
WORD16 x; // input code [BC]
WORD16 y; // output code[DE]
WORD16 t; // accumulator[AF]
//clrscr();
printf("\n\n\n\n*******************");
printf("\n h");
printf("\r input word x=");
scanf("%x",&x.sw);
y.sw=-1;
while(x.sw != 0)
{
//
t.sw=0;
// (b)->(a)
t.sb[1]=x.sb[1];
// RAR a
t.sw/=2;
x.sb[1]=0x00;
x.sb[1]=t.sb[1]&0x07f;
if(t.sb[0]&0x80)
{
// CY=1
t.sb[1]=0x01;
}
else
{
// CY=0
t.sb[1]=0x00;
}
// (c)->(a)
t.sb[0]=x.sb[0];
// RAR a
t.sw/=2;
if(x.sb[0]&0x01)
{
// CY=1
x.sb[0]=t.sb[0];
// (e)->(a)
t.sw=y.sw;
// RAL a
t.sw*=2;
y.sw=t.sw;
}
else
{
// CY=0
x.sb[0]=t.sb[0];
}
}
printf("output word y=%xh",y.sw);
getch();
return;
} // end main
Рис 3.4.а. Функциональная
схема УА регистровой
реализации устройства
МОСКОВСКИЙ
ОРДЕНА ЛЕНИНА И
ОРДЕНА ОКТЯБРЬСКОЙ РЕВОЛЮЦИИ
АВИАЦИОННЫЙ ИНСТИТУТ имени СЕРГО
ОРДЖОНИКИДЗЕ
_______________
Кафедра 4 0 3
Р А С Ч Е Т Н О - П О Я С Н И Т Е Л Ь Н А Я З А П И С К А
к курсовой работе
по дисциплине
Вычислительные системы и
микропроцессорная техника”
Выполнял
студент группы 04-415 ______________ Телятников И.А.
Консультировал _______________ Герасимов А.Л.
Москва
1996 г.
1. ЗАДАНИЕ НА ПРОЕКТИРОВАНИЕ
На вход устройства подается
код X{1:16}. Спроектировать устройство, формирующее
код Y{1:16}, количество нулей
которого равно количеству
единиц кода X. Все
нули располагаются в младших
разрядах кода Y. Остальные
разряды кода Y заполняются единицами.
Примем, что
источник входного кода
гарантирует правильность выставленной информации во время
действия стробирующего импульса
СТРОБ, а само
устройство подтверждает
выдачу выходного кода
генерацией импульса считывания
УСЧИТ.
Синхронизацию
выберем внешнюю с
частотой ГТИ - 5 МГц.
Будем считать,
что смена кодов
X и Y осуществляется по
положительному фронту ГТИ,
длительность импульсов СТРОБ
и УСЧИТ равна
периоду тактовой последовательности и положительные фронты
этих импульсов появляются
вслед за положительным фронтом импульсов ГТИ.
Примем, что в
разрабатываемом устройстве не
требуется внутренняя индикация,
и не будем накладывать ограничений
на потребляемую мощность.
2. КОМБИНАЦИОННАЯ РЕАЛИЗАЦИЯ
УСТРОЙСТВА.
При построении
устройства в виде комбинационной схемы
надо решить задачу
синтеза системы шестнадцати
логических функций 16
переменных. Решение задачи
с использованием логических
элементов приведет к
очень объемной реализации.
В связи с
этим рассмотрим два
варианта решения: с
использованием ПЗУ для
записи значений искомых
логических функций или с
позиций операционного синтеза,
построив устройство, реализующее
цепочку простых преобразований.
2.1. КОМБИНАЦИОННАЯ РЕАЛИЗАЦИЯ
С ПЗУ.
В качестве ПЗУ
будем использовать РПЗУ
с ультрафиолетовым
стиранием К573РФ7. Организация
этих РПЗУ 32Кх8.
Для реализации операционной части устройства потребуется
4 микросхемы К573РФ7
и одна микросхема К155ЛА3. Управляющая
часть, формирующая сигнал
УСЧИТ, будет представлять собой устройство задержки
импульса СТРОБ на
время, необходимое для
выборки адреса. Такое
устройство можно использовать в системах, в
которых допустимое время
формирования выходного кода
не превышает 500 нс:
действительно, задержка выходного
кода t может быть вычислена по формуле:
t=t(РПЗУ)+t(CS)=t(K573РФ7)+t(К155ЛА3)=450+22=472
нс, где
t(РПЗУ) - время выборки
адреса,
t(CS) - задержка
формирования сигнала CS.
Функциональная схема
устройства представлена на
рис. 2.1.
Входной код
Х{1:15} используется в качестве
адреса и подается
параллельно на все
микросхемы РПЗУ (ПР1-ПР4). Разряд
Х{16} используется для
выбора пары микросхем (ПР1, ПР3 или
ПР2, ПР4). Микросхемы ПР1, ПР2
хранят младшие 8
бит выходного кода
(Y{1:8}), а ПР3, ПР4 - старшие (Y{9:16}). Сигнал
УСЧИТ образуется путем
задержки сигнала СТРОБ
на максимально возможное
время формирования выходного
кода. Для частоты
ГТИ в 5 МГц потребуется задержка
на три такта.
Программирование
микросхем ПР1 - ПР4
будем проводить, соответственно, по таблицам 2.1 - 2.4.
Таблица 2.1. Кодировка ПЗУ ПР1
Таблица 2.2. Кодировка ПЗУ ПР2
Таблица 2.3. Кодировка ПЗУ ПР3
Таблица 2.4. Кодировка ПЗУ ПР4
Управляющая часть
устройства, представляющая собой
схему задержки входного
сигнала СТРОБ для
получения сигнала УСЧИТ, реализована
на основе двоичного
счетчика, подсчитывающего число
тактов задержки. Принципиальная схема управляющей части представлена на рис. 2. 2, а
временная диаграмма работы
- на рис. 2. 3.
На элементе DD1 (Рис. 2. 2) реализована схема
формирования сигнала разрешения
счета (РАЗР), а на
DD3.1 - схема определения
конца счета. Элемент
DD3. 2 используется для
получения заданной полярности
выходного сигнала.
Принципиальная
схема операционной части
устройства, построенная на
основе функциональной схемы
рис. 2.1, изображена на
рис. 2. 4.
Граф - схемы
алгоритмов и графы
переходов для этих
схем не приводятся
в связи с
простотой реализации и
будут представлены для
регистровой реализации устройства.
2. 2. КОМБИНАЦИОННАЯ РЕАЛИЗАЦИЯ
НА ОСНОВЕ ОПЕРАЦИОННОГО СИНТЕЗА.
Рассмотренное в предыдущем
подразделе устройство при
всей его простоте
обладает двумя недостатками - большим временем
формирования выходного кода
и относительной дороговизной применяемых микросхем.
С позиций операционного синтеза
функциональная схема устройства может
представлять из себя
набор из двух
преобразователей входного кода
в число содержащихся в нем единиц,
сумматора, получающего число
единиц во входном
коде и преобразователя
полученного числа в
выходной позиционный код.
Функциональная
схема устройства представлена на рис. 2. 5.
Разбив входной
код на две части (разряды
Х{1:8} и X{9:16}) можно использовать ППЗУ с
организацией 256х4 бит
(К556РТ4) для создания
преобразователей “код-число единиц” (ПР1, ПР2). Сумму
будем формировать как
выходной код сумматора
и разряд переноса.
Полученный 5 - разрядный двоичный
код будем использовать для получения на
преобразователе “число - позиционный код” (ПР3 - ПР6) выходного
кода. Выбор 4
микросхем для этого
преобразователя обусловлен разрядностью выходного кода.
Такое
устройство можно использовать в системах, в
которых допустимое время
формирования выходного кода
не превышает 200 нс:
действительно, задержка выходного
кода t может быть вычислена по формуле:
t=t(ППЗУ)+t(SM)+t(ППЗУ)=2*t(K556РТ4)+t(К155ИМ3)= =70+40+70=180 нс, где
t(ППЗУ) - задержка в
ППЗУ, t(SM) - задержка
сумматора.
Управляющая
часть устройства, представляющая собой схему задержки
входного сигнала СТРОБ
для получения сигнала УСЧИТ, реализована по
схеме, аналогичной предыдущей. Сигнал УСЧИТ образуется путем
задержки сигнала СТРОБ
на максимально возможное
время формирования выходного
кода. Для частоты
ГТИ в 5 МГц потребуется задержка
на один такт.
Программирование
микросхем ПР1, ПР2 будем
проводить, соответственно, по
таблицам 2.5, 2.6, а ПР3-ПР6 - по таблицам 2.7 - 2.10.
Таблица 2.5. Кодировка ПЗУ ПР1 Таблица 2.6. Кодировка ПЗУ ПР2
Таблица 2.7. Кодировка ПЗУ ПР3
Таблица 2.8. Кодировка ПЗУ ПР4
Таблица 2.9. Кодировка ПЗУ ПР5
Таблица 2.10. Кодировка ПЗУ ПР6
Принципиальная схема управляющей части представлена на
рис. 2.6, а временная
диаграмма работы -
на рис. 2. 7.
На элементе DD1 (Рис. 2. 2)
реализована схема формирования сигнала разрешения счета (РАЗР), а на DD3.1 -
схема определения конца
счета. Элемент DD3. 2
используется для получения
заданной полярности выходного
сигнала.
Принципиальная
схема операционной части
устройства, построенная на
основе функциональной схемы
рис. 2.5, изображена на
рис. 2. 8.
3. РЕГИСТРОВАЯ
РЕАЛИЗАЦИЯ УСТРОЙСТВА.
Комбинационная реализация
устройства, построенная на основе операционного синтеза, обладая (по
сравнению со схемой
на РПЗУ) лучшим
быстродействием, обладает недостатком - объем устройства растет
пропорционально длине входного
кода.
За основу построения
регистрового варианта устройства
положим идею преобразования входного параллельного кода
в последовательный с
последующим преобразованием последовательного кода в выходной
параллельный. Такое преобразование должно начинаться с
момента прихода входного
кода и сигнала СТРОБ и
заканчиваться наступлением
момента отсутствия во входном
коде единичных значений
с генерацией импульса
считывания УСЧИТ. Задача
преобразования распадается на
две подзадачи: преобразование входного
параллельного кода в
последовательный и получение
выходного параллельного позиционного кода по последовательному.
Первую задачу можно
решать двумя путями: использовать мультиплексор или сдвиговый регистр.
Для первого варианта
входной код надо
фиксировать на все
время преобразования. Для
второго варианта достаточно
выставить входной код
на время сигнала
СТРОБ.
Для выполнения второй
задачи целесообразно формировать
признак очищения входного
регистра от единиц.
Само формирование выходного
кода можно выполнять
на сдвиговом регистре.
Появление каждой единицы
во входном коде
будет приводить к
сдвигу в выходном
регистре с последовательным вводом в него
нуля. Такое построение позволяет
ускорить процесс обработки,
поскольку последние нули
во входном коде
преобразованию не подвергаются.
3.1. РАЗРАБОТКА БЛОК-СХЕМЫ
АЛГОРИТМА И СОСТАВЛЕНИЕ
ОПЕРАЦИОННОГО ОПИСАНИЯ.
Блок-схема
алгоритма по выбранному
варианту изображена на
рис. 3.1. Соответствующее этой
блок-схеме операционное описание
синтезируемого устройства представлено на рис. 3. 2. Сигналы
УЗВХ и УЗВЫ эквивалентны и
их можно заменить
сигналом УЗАП. Проверку
на ноль регистра РГВХ
можно осуществить с
помощью операции ИЛИ-НЕ. Текст микропрограммы, учитывающей вышесказанное, представлен на рис. 3. 3. Регистр входного кода (РГВХ)
сдвигается влево, в
старший разряд при
этом заносится ноль.
Выходной регистр сдвигается
вправо, в младший
разряд которого также
заносится ноль.
Микропрограмма 1
Микропрограмма ПРЕОБРАЗОВАНИЕ1
Переменные:
входные : Х{1:16}, СТРОБ;
внутренние: РГВХ{1:16}, РГВЫ{1:16};
выходные : Y{1:16}=РГВЫ{1:16}, УСЧИТ;
Признаки
:
Р1=СТРОБ;
Р2=(РГВХ{1:16}=0);
Р3=РГВХ{Х1};
Процедура
М1 если
¬Р1, то
М1;
УЗВХ: РГВХ=Х;
УЗВЫ: РГВЫ{1:16}=1;
М2 если Р2,
то М4;
если ¬Р3, то
М3;
УСВЫ: РГВЫ=0.РГВЫ{1:15};
М3 УСВХ: РГВХ=РГВХ{2:16}.0;
идти к
М2;
М4 УСЧИТ: ;
конец .
Рис. 3. 2.
Микропрограмма 1.
Микропрограмма 2
Микропрограмма ПРЕОБРАЗОВАНИЕ1
Переменные:
входные : Х{1:16}, СТРОБ;
внутренние: РГВХ{1:16}, РГВЫ{1:16};
выходные : Y{1:16}=РГВЫ{1:16}, УСЧИТ;
Признаки
:
Р1=СТРОБ;
Р2=¯РГВХ{1:16};
Р3=РГВХ{Х1};
Процедура
М1 если
¬Р1, то
М1;
УЗАП: РГВХ=Х; РГВЫ{1:16}=1;
М2 если Р2,
то М4;
если ¬Р3, то М3;
УСВЫ: РГВЫ=0.РГВЫ{1:15};
М3 УСВХ: РГВХ=РГВХ{2:16}.0;
идти к
М2;
М4 УСЧИТ: ;
конец .
Рис. 3. 3.
Микропрограмма 2.
3. 2. ФУНКЦИОНАЛЬНАЯ СХЕМА РЕГИСТРОВОЙ
РЕАЛИЗАЦИИ.
Функциональная
схема операционного автомата,
составленная в соответствии с микропрограммой 2, изображена
на рис. 3. 4.
3. 2. 1. УПРАВЛЯЮЩИЙ
АВТОМАТ С ЖЕСТКОЙ
ЛОГИКОЙ.
Управляющий
автомат с жесткой
логикой будем реализовывать в виде конечного
автомата. На рис. 3. 5
представлены граф - схемы алгоритмов
для автоматов Мура (a)
и Мили (б), соответствующие микропрограмме на рис. 3. 3. Графы
переходов для автоматов
Мура и Мили, полученные из
граф-схем алгоритмов, изображены
на рис. 3. 6. Будем
строить автомат Мили,
поскольку он имеет
два состояния и
реализуется на одном
JK-триггере.
Таблица
3.1.
На основании таблицы переходов
и выходов УА (таблица
3.1) после доопределения запрещенных
комбинаций получим выражения
для управляющих сигналов
и функцию возбуждения триггера:
УЗАП=Р1*¬ Q;
УСВХ=¬Р2*Q;
УСЧИТ=Р2*Q;
УСВЫ=Р3*УСВХ;
J= Р1;
K=P2.
Функциональная схема
УА представлена на
рис.3.4а.
Рис 3.4.а. Функциональная
схема УА регистровой
реализации устройства
Таблица
3.2.
Таблица
3.3.
3. 2. 2 УПРАВЛЯЮЩИЙ
АВТОМАТ С ПРОГРАММИРУЕМОЙ ЛОГИКОЙ.
Каноническая форма
микропрограммы
синтезируемого устройства приведена
в таблице 3. 2.
При использовании
принудительной адресации строки
4 и 5, 6 и
7, 8 и 9 можно
объединить. Тогда каноническая форма операционного описания
для случая принуди-тельной адресации примет вид,
представленный в таблице
3. 3.
Формат
микрокоманды для принудительной адресации представлен на
рис. 3. 7. Для естественной адресации
микрокоманды представляются в
двух форматах, показанных
на рис. 3. 8 . Первый
разряд микрокоманды определяет
признак: 0 - операционная, 1 - управляющая микрокоманда. По каноническим операционным описаниям
получаем кодовые выражения
микропрограмм ( таблицы 3.4, 3.5).
Для хранения микропрограммы с естественной адресацией
требуется 80 бит (табл.3.4), а для УА с принудительной адресацией - 70 бит (табл.3.5).
Принимаем принудительный способ
адресации. Функциональная схема
УА с принудительной
адресацией представлена на
рис. 3. 9.
Рис. 3.7. Формат
микрокоманды с принудительной адресацией.
Рис.
3.8. Форматы микрокоманд с естественной адресацией.
Таблица
3.4.
Таблица
3.5.
Управляющие сигналы
формируются регистром микрокоманды (РМК), в
который микрокоманда переписывается из ПЗУ микрокоманд
по адресу, находящемуся в счетчике адреса (СЧА). Начальный адрес (000)
устанавливается сигналом СБРОС ,
и УА ожидает прихода сигнала
СТРОБ для продолжения
работы. При построении
принципиальной схемы выбираем
УА с жесткой логикой, поскольку
он имеет более
простую организацию, чем
УА с программируемой логикой. Принципиальная схема УА с микропрограммным управлением
представлена на рис.3.9а.
Рис.3.9а.
Принципиальная схема микропрограммного УА.
Рис.3.9а.
Принципиальная схема микропрограммного
УА (Продолжение).
3. 3. ПРИНЦИПИАЛЬНАЯ СХЕМА РЕГИСТРОВОЙ
РЕАЛИЗАЦИИ.
Примем в качестве
элементной базы микросхемы
серии К155, так
как они обеспечивают устойчивую работу на
частоте 5 МГц.
Принципиальная схема
устройства, построенная на
основе функциональной схемы,
представленной на рис. 3. 4,
и таблицы переходов
и выходов УА (табл. 3.1), приведена на рис. 3.10,
а временные диаграммы
ее работы - на рис. 3.11.
Входной регистр и
регистр преобразования построены
на парах сдвиговых
регистров К155ИР13. При
двух единицах на
входах S0, S1 в
регистры заносится параллельный код. При S0=0,
а S1=1 осуществляется сдвиг влево. При инверсии сигналов производится обратный сдвиг. Для регистра
преобразования сигнал УСВЫ
будем тактировать:
УСВЫ=(УСВХ*Р3)t=(¬УСВХ¯¬P3)/t.
Устройство требует
для своего построения
11 корпусов микросхем.
4. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ
ФУНКЦИИ УСТРОЙСТВА.
Алгоритм программы, реализующей функции
заданного устройства, приведен
на рис. 4. Программа
реализующая данный алгоритм
приведена в таблице 4.
Таблица
4.
|
|
|